Inspiration
A trip often starts with a saved reel. Then the useful details scatter: a restaurant in Instagram, a flight in email, a hotel confirmation in WhatsApp, and a rough itinerary in Notes. By the time you leave, you have already done the same organizing work several times.
Noma brings that journey into one place. Save the inspiration, turn it into a plan, keep the bookings with the right trip, and remember where you went.
What it does
Noma is a travel tracker and AI trip planner for iPhone.
- Turn reels into trips. Share an Instagram reel or paste its link. Noma identifies the places shown and puts them on a map, ready to save or use in a trip.
- Plan by talking. Describe your dates, budget, interests, and pace. Refine the itinerary in conversation, with the plan and its supporting details kept together.
- Bring your bookings along. Add PDFs and screenshots, or connect WhatsApp and forward tickets into a private inbox before assigning them to a trip.
- Keep each day organized. Flights, stays, activities, reservations, and documents belong to the trip where you need them.
- Build your travel passport. Record countries, cities, and favorite places. Add photos and notes, and see your travel history grow on the map.
- Share a specific trip. Invite your travel companions or send a view-only link while keeping the rest of your travel library private.
How we built it
The app uses React Native, Expo, and TypeScript. Convex stores places, trips, and documents and connects the interface to server-side AI workflows. Better Auth handles accounts. Native maps use Mapbox, with Google Places supporting place discovery. AI planning runs through server-side model integrations, and Meta's WhatsApp Cloud API supports ticket intake.
RevenueCat powers Noma Pro's native subscription experience. Monthly and annual packages unlock the same Pro entitlement. The app reads RevenueCat customer information to decide access, associates purchases with the signed-in user, and supports purchase restoration. Hosted RevenueCat paywalls let us manage the offer separately from the app release.
The design
Noma borrows familiar details from travel objects: a passport cover, country stamps, ticket-like information, and the small codes and dates you see on a boarding pass. Rounded typography and indigo tones tie the map, passport, and trip screens together.
Those details have a job. The map gives places context. The passport makes a growing travel history easy to read. A chronological itinerary brings bookings and plans into the order you will use them. AI conversations stay attached to their trip, so a useful answer has somewhere to go.
Challenges and lessons
The difficult part was turning messy travel inputs into information someone can use. A reel needs identifiable places. A booking image needs a trip to belong to. An AI suggestion needs to become part of a plan that the traveler can inspect and change.
That shaped the product around reviewable steps: save a discovered place, assign an imported ticket, and refine a trip through conversation. It also made account boundaries and purchase recovery part of the core experience. A traveler needs to return to the same trips and subscription after signing in again.
The main lesson was that the handoffs matter as much as the individual features. Finding a place is useful. Being able to carry it through planning, bookings, and memories is what makes Noma worth keeping.
What we are proud of
Noma is available on the US App Store. It connects a concrete starting point, a saved travel reel, to a trip you can organize and a private record you can revisit. The passport and travel-inspired interface give that practical workflow a personality of its own.
What's next
Our next focus is improving place and booking extraction from real traveler feedback, making the first completed itinerary easier to reach, and measuring how the subscription experience converts and retains users. We also want to bring the experience to more travelers as Android store distribution becomes ready.
Built With
- convex
- expo.io
- react-native
- revenuecat
- typescript
Log in or sign up for Devpost to join the conversation.