-
-
The review list after one session: a new reminder, one marked done and an email draft.
-
Tap Listen and talk naturally. The microphone is on only while you choose to listen.
-
Email drafts from what you said. Heedly never sends anything on its own.
-
Reminders missing a time or place get flagged with a one-tap fix.
-
Heedly: it listens for what you say you'll do and remembers it for you.
Inspiration
The idea started with one line from a teammate: "remind me to return this when I'm near UPS." We say things like that all day and most of them are gone by the time we're actually standing near a UPS. Reminder apps already exist but they all make you stop, open the app and type the reminder in just the right way, which is exactly the moment you don't have. We wanted something that listens while you talk and remembers the parts you'd want remembered.
What it does
Heedly listens while you talk and picks out the things you commit to. Say "I need to call the dentist tomorrow at 9am and I have to buy milk on the way home" and it saves two reminders: a call at 9am tomorrow and milk that fires when you're near a grocery store.
It keeps up as plans change. "Actually move the dentist call to Friday at 2pm" moves that reminder, and "I already bought the milk" checks the other one off. When someone else talks about their plans ("my brother is going to fix his car") Heedly leaves it alone, since only your own commitments count.
When you stop listening, Heedly reads everything you said as a whole and gives you a short review list of what it caught and changed, so you can check it and fix anything it got wrong. If a reminder is missing something, like a time or a place, or a "home" it doesn't know the location of yet, the review list flags it and gives you a one-tap fix. Heedly can also draft an email from what you said, but it never sends one on its own: every draft waits for your approval.
Reminders fire on time, place or both. The app checks what's around you and your own saved places like home and work, then weighs how close the deadline is and how near you are before it buzzes you. You can set quiet hours, and anything due then waits until they end.
How we built it
- NVIDIA Nemotron 3 Super on Nebius Token Factory (
nvidia/nemotron-3-super-120b-a12b) does the understanding. What you said goes to Nemotron through Token Factory's OpenAI-compatible API in JSON mode, together with your open reminders listed by short reference only. It returns new commitments, updates and completions as JSON, and we check every field before anything is saved. - Backend: Python with FastAPI and SQLModel on Postgres (Supabase), deployed on Vercel in the same region as the database.
- Phone app: Expo (React Native with TypeScript) for iOS, Android and the web. Continuous speech recognition builds the transcript on screen while you talk, and when you stop the whole thing goes to Nemotron at once, so corrections like "actually make it Friday" are read in context. It also handles local notifications and location checks, with nearby places from OpenStreetMap.
- Tests: over 800 automated tests (backend, app and real-browser runs of the whole flow), plus a set of real spoken phrases we run against Nemotron itself.
Challenges we ran into
- Most of what an always-on phone hears is chatter. Filler like "yeah okay" never reaches the model, and the prompt treats speech as something to understand, never as instructions to follow.
- Nothing said should be lost. If the model is slow or unreachable, the chunk is queued and retried later, and every request finishes inside the 15 seconds the phone waits.
- Token Factory has no spending cap, so we built our own: daily and per-minute limits, plus a limit for each phone so no single device can use up the day.
- Same input, different answers. Even at temperature 0 Nemotron sometimes varied between runs, so we test it with real phrases and treat its output as something to check, not trust.
- Speech engines cut you off mid-sentence. Our first version sent each phrase as the engine finished it, and a pause for breath turned "move the dentist ... to Friday" into two useless halves. Reading the whole transcript at the end fixed that and let Nemotron see corrections in context.
Accomplishments that we're proud of
- Your data stays yours. No audio ever reaches our server, you can turn off keeping the words or have them deleted after a set number of days, and each phone gets its own private space so one person's reminders never mix with another's.
- One sentence can create, move and finish reminders, and the review list shows exactly what changed.
What we learned
Building for a microphone that stays on changed how we thought about almost everything. Most of what it hears isn't meant for it so the hard part wasn't getting Nemotron to understand a reminder. It was getting it to leave alone everything that isn't one, including other people's plans. We also learned to treat the model's output as something we check instead of something we trust, since the same sentence could come back slightly different even at temperature 0. And we learned that people only trust an assistant that listens if they can see exactly what it caught, which is why the review list at the end became the center of the app instead of an extra screen.
What's next for Heedly
- Real calendar and email sending, still behind your approval.
- Reminders for leaving a place, not only arriving.
- Smarter timing that learns when you actually act on a reminder.
Built With
- expo.io
- fastapi
- nebius-token-factory
- nvidia-nemotron
- openstreetmap
- postgresql
- python
- react-native
- sqlmodel
- supabase
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.