Inspiration

Most food apps want me to weigh things, count things and log meals after the fact. I wanted something closer to a sticker album. You take one photo and the plate becomes something you keep.

What it does

Point the camera at a plate. ate names the dish, cuts it out of the photo as a sticker and files it in your collection by cuisine. Eat the same dish again and the new memory stacks under the same card. Each dish page shows where the dish comes from and its usual calorie range per serving. Meals saved with a place show up as pins on a food map. Finishing a cuisine or a themed set earns a stamp or an enamel pin, and you arrange them on the pages of your own food passport.

The collection doesn't have to start empty. On first launch ate looks through the photos already on your phone, finds the plates on the device and turns them into stickers. You can also share any food photo to ate from Google Photos or another app.

There's no feed and no public profile. Only you see your collection.

How I built it

ate is an Android app built with Kotlin and Jetpack Compose. Gemini 3.5 Flash Lite names each dish through a Supabase edge function, where the quotas and abuse checks live. ML Kit cuts the food out on the device, so the finished transparent sticker does not need to be uploaded to a server. When the cut misses, you can tap the dish or draw around it to fix it.

The app uses RevenueCat Ads to keep extra scans available without a subscription. Everyone gets ten scans in a rolling 24 hours. After that, a rewarded video can unlock one more. AdMob and RevenueCat verify the reward on the server before the app grants the scan.

Challenges I ran into

The first problem was the empty collection. People signed up, opened the camera and left because they were not eating right then. Looking at that drop changed the first run of the app: it now starts with the food photos people already have, and sharing from their gallery works whenever they come across another one.

The second problem was making a photo feel like an object worth keeping. Plates come with tables, hands and messy backgrounds. Cutting out the food on the device, giving it a clean white edge and letting someone correct a missed cut made the collection feel closer to a sticker album than a camera roll.

I also had to make the extra scan honest. A video can finish before the verified credit reaches the server. The screen now waits for confirmation or says that the scan is still being counted instead of promising a reward it cannot use yet.

Accomplishments I am proud of

The gallery import gives a new user a collection made from meals they have already eaten. They can add to it with the camera or share a photo from another app. Repeat meals stay together instead of filling the album with duplicates.

The collection has grown beyond a grid of cards. Cuisines and themed sets open as sheets over it, and completed ones become stamps and pins that you can arrange on passport pages. The map adds another way to revisit meals by place. These all come from the same simple act of saving a plate.

What I learned

The camera was not always the right place to begin. People already had the memories ate was asking them to create. Letting them start with those photos made the idea easier to understand and gave the collection meaning before the first new scan.

I also learned that small moments of trust matter. A cutout needs a way to be corrected, and a reward needs to exist on the server before the screen says it is ready.

What's next for ate

Next I want to turn the collection into a richer personal history: food stats, monthly recaps you can share, and a home screen widget that shows your progress. I also plan to launch an ate Premium subscription with unlimited scans through RevenueCat, while keeping free daily scans and rewarded scans available. Farther out are a Taste DNA profile and ways to explore and compare food passports with friends.

Built With

Share this project:

Updates

Submission history