Inspiration
Long checkout lines are hard for customers and overwhelm retail workers, especially in stores with small teams. Shoppers with just a few items often find themselves stuck behind full carts, leading to frustration and walkouts. Many small businesses can’t afford bulky self-checkout systems due to cost or space limitations, forcing them to rely on manual checkouts. We saw an opportunity to help these retailers and the customers who just want to grab a few things and go by putting self-checkout in everyone’s pocket.
What it does
Grabbit is a mobile app that turns any phone into a self-checkout system, designed specifically for customers with small, quick purchases. Shoppers scan barcodes as they shop, see a running total, and pay directly in-app using Stripe. After payment, they receive a digital receipt and show it to store staff at exit for verification. No hardware, no long lines just a smoother, faster checkout experience for stores and shoppers alike.
How we built it
We built the app using Swift and SwiftUI for the frontend. Stripe’s iOS SDK powers our checkout process, while Firebase Firestore stores user-specific receipts and Firebase Auth handles authentication. We use Auth0 to log users in and retrieve their credentials. The camera scanner was developed using AVFoundation and VisionKit to detect barcodes in real time, while MapKit and CoreLocation help users locate and select nearby stores. A Node.js backend hosted on Glitch is used to create Stripe PaymentIntents.
Challenges we ran into
This was our first time using Xcode and the learning curve was steep. From understanding its interface to learning how to push and commit code using its Git integration, everything was pretty new. On top of that, integrating services like Stripe, Auth0, and Firebase into a SwiftUI app required lots of debugging and reading of documentation. Despite the hurdles, we’re glad to have learned a lot and kept pushing through.
Accomplishments that we're proud of
Making it through our first (and hopefully first of many) hackathon was a huge win. We learned completely new tech stacks like SwiftUI, Firebase, and Stripe while building a full product from scratch. We pushed through bugs, stayed up late, worked together, and most importantly had fun throughout the process.
What we learned
We learned how to manage complex app state using @EnvironmentObject, build secure payment flows using Stripe, and store structured user data in Firestore. We deepened our understanding of integrating third-party services like Auth0 and Firebase, especially around authentication and data storage. Working with AVFoundation taught us a lot about camera control and barcode recognition on iOS. We also learned to debug tricky async UI issues and optimize SwiftUI views for performance.
What's next for Grabbit
We plan to integrate a lightweight machine learning model that learns each user’s preferences over time suggesting frequently bought items and even surfacing personalized discounts based on purchase history. We also want to build a companion experience for store staff, allowing them to see real-time incoming receipts from Grabbit users to verify purchases easily and prevent fake digital receipts. This closes the loop for both customers and retailers, creating trust on both ends of the checkout flow.
Log in or sign up for Devpost to join the conversation.