-
-
Achievements → Earn badges for exploring, reviewing, and building your food legacy — 22 to collect.
-
See it before you order it (sushi) → Real photos, real flame ratings, real spice levels — from people who actually ate there.
-
See it before you order it (avocado toast) → Every dish gets a flame rating and spice level — posted by real diners, not the restaurant.
-
Discover your next favourite meal (Discovery grid) → Browse 5,000+ real dishes shared by the community — sorted Global, Nearby, or Recent.
-
Community leaderboard → See this week's top contributors and climb the board by posting your own dish reviews.
-
Surprise Me → Can't decide what to eat? Dinary rolls the dice and picks a dish for you nearby.
-
Profile stats → Track your posts, followers, and points as you build your food diary and level up.
Inspiration
Every restaurant review app tells you a place is 4.2 stars — but never which dish is actually worth ordering. We kept getting burned: a restaurant would have great reviews overall, but the one dish we picked was mediocre. We wanted something dish-first, not restaurant-first — rate the food you actually ate, not the venue as a whole.
That idea became Dinary: a food diary and discovery app where every review is one dish, one photo, one flame rating out of 100.
What it does
Dinary lets people photograph the dishes they eat, rate them, and build a personal, searchable visual food diary. Those reviews feed into a community discovery feed, so other users can find the best individual dishes near them — not just highly-rated restaurants in general. Features include:
- Dish-level flame ratings (0–100) instead of restaurant-wide star ratings
- A personal visual food diary of everything you've eaten
- A "Nearby" discovery feed powered by real diner reviews
- Discovery of independent and mobile food vendors (trucks, carts, stalls) that are underrepresented on mainstream platforms
- A "Taste Match" score showing how closely another user's palate aligns with yours
- An achievement/badge system (First Flame → The Regular → Tastemaker) that rewards consistent reviewing
For Shipaton, we added a "Partner Restaurant" subscription tier, built on RevenueCat, giving restaurants a way to claim and manage their presence on Dinary.
How we built it
Dinary is built on Expo (React Native) for iOS, with a Neon Postgres (PostGIS-enabled) backend hosted on Vercel. Restaurant data comes from the Google Places API, photo storage runs on Amazon S3, and every uploaded photo is automatically screened via Amazon Rekognition before it's published — verifying it's actually food and filtering unsafe content. Push notifications run through Expo's push service, and we use Sentry and PostHog for crash reporting and product analytics (with a user opt-out).
For monetization, we integrated the RevenueCat SDK to power an auto-renewable subscription — the Partner Restaurant plan — letting restaurant owners claim their listing and access additional tools on Dinary.
The app launched publicly on the App Store in September 2026, carrying over 3,000 real user-generated dish reviews from our open beta, which ran from June 2026 onward.
Challenges we ran into
Getting Apple's review guidelines right took real iteration — we were initially rejected over privacy purpose-string clarity and permission-request flow (guideline 5.1.1), and later over a missing Terms of Use link on our new subscription tier (guideline 3.1.2). Each rejection meant a fast turnaround: diagnosing the exact guideline, fixing the listing and in-app flow, and resubmitting — all while racing the Shipaton deadline. We also requested an expedited review from Apple in the final stretch, which came through with hours to spare.
Being a non-technical founder alongside a technical co-founder meant a lot of the compliance, App Store Connect, and submission work fell to me directly — learning App Store Connect's privacy forms, tax/banking setup, and review process from scratch under deadline pressure was its own challenge entirely separate from the engineering side.
Accomplishments that we're proud of
- Shipped a fully custom, dish-first discovery app from idea to public App Store launch in about a year, as a non-technical + technical founding pair
- Carried over 3,000 genuine user-generated posts into launch from our open beta — a real, populated feed from day one, not an empty app
- Successfully integrated RevenueCat to power a working subscription product under serious deadline pressure, including navigating two separate App Store rejections and getting an expedited review approved same-day
What we learned
How deep Apple's review process actually goes — privacy purpose strings, permission-flow scrutiny, EULA/Terms requirements for subscriptions — and how to iterate quickly against specific guideline citations rather than guessing. We also learned a lot about structuring IAP/subscription data safety disclosures correctly the first time, which we'll carry into future updates.
What's next for Dinary
- Launching on Google Play (Android) to reach users beyond iOS
- Expanding the Partner Restaurant subscription with more tools for restaurant owners
- Growing the creator/UGC program to bring more dish reviews into the GTA market
- Continuing to build out personalization — recommendations based on Taste Match and dining history## Inspiration
Built With
- amazon-rekognition
- amazon-web-services
- expo-push-notifications
- expo.io
- google-places
- google-sign-in
- ios
- neon
- postgis
- postgresql
- posthog
- react-native
- resend
- revenuecat
- sentry
- sign-in-with-apple
- typescript
- upstash-redis
- vercel
Log in or sign up for Devpost to join the conversation.