-
-
Start the conversation by sharing your location via Find My
-
Your location is retrieved and nearby dining out spots are suggested as a poll
-
Food suggestions at the selected place are made based on your diet data
-
The nutrition data of selected food is logged in for you as well as Apple maps of selected location are shared
-
A one time secure link connection to Apple health
-
Connection via Apple shortcuts
-
Our daily nutrition data is logged into Apple Health as well as pulled from it to give improved suggestions over time
-
Nutrition data from food not dined-out is also extracted and logged in so suggestions meet our daily diet goals
-
System Architecture
Snacxx: the group meal planning agent in your iMessage that knows what everyone can eat
Snacxx is an iMessage agent, built on Photon Spectrum, that plans meals for you and your friends and already knows what each of you can eat. Tell it who you want to eat with and it texts each person, finds a time everyone can make and a place that fits everyone's diet, allergies, budget and location, and sends the whole group a card. Eating alone? Text "i'm hungry" and it picks a dish nearby that fits you.
Inspiration
44% of Americans have dietary restrictions, and 83% overspend their monthly budget, mostly on dining out.
Food apps today suggest restaurants based on how close they are. They don't look at you. None of them takes your diet, your allergies, your calorie and protein goals and how active you've been today, and then points you to a dish nearby that fits all of it and your budget.
Group outings are harder still. No app finds a place that matches everyone's diet, budget and location, settles on a time that works for all of them, and schedules it.
Snacxx does both, inside iMessage.
🏆 Main track: AI/ML
An AI agent that handles your nutrition and dining, alone or with friends, in one chat. It knows your allergies, diet, goals and budget, picks the dish and the place, logs the meal and settles group plans. A code-level guard, not the AI, decides what's safe to eat. It's live on AWS, and real people have used it over iMessage.
Sponsor track: Photon: Agents in iMessage
No other entry makes iMessage do this much work. Snacxx uses every Photon feature, and each one is essential.
- Features chained into one outcome. One text starts a private chat with each friend. Multi-select polls collect times and places, Find My picks the fairest spot, and a contact card brings in someone new. One finished card arrives at the end.
- Group planning with no group chat. Photon's shared line doesn't allow group chats, so the agent talks to everyone privately and never replies per tap.
- Custom cards built with the Spectrum library. Today's Pie tracks calories, protein and monthly budget as a pizza that fills as you eat. The event-confirmation card shows place, time, who's coming and each walk.
- It feels like a friend. Typing indicators, reactions and voice notes in and out.
Sponsor track: MLH: Best Use of ElevenLabs
Send a voice message and Scribe (speech-to-text) turns it into a request. Flash v2.5 (text-to-speech) sends the answer back as a voice note, so you can plan and log meals without typing.
Sponsor track: Shock Tracker: Zero Data
Health data stays in our own AWS account. In a group plan, friends only see the merged restrictions needed to pick a place, never your personal numbers. Chat state expires automatically.
What it does, and the Photon feature behind each step
| You text | Snacxx replies | Photon feature | How it works |
|---|---|---|---|
| "i'm hungry" | A quick remark on where you are, the 3 nearest places you can eat at with walk times, then a poll of those 3 | Find My location, native polls | Reads your Find My location. If you aren't sharing, it sends a share card once and waits for your tap. It then keeps only the places with food that fits your allergies, diet and budget. |
| Tap a place in the poll | Two dish picks with prices, then a poll to choose one | Native polls, typing indicator | Reads your tap, filters that menu for your restrictions, and picks the two best matches. |
| Tap a dish | A quick reaction with calories and protein, then "want directions?" | Native polls | The Apple Maps walking link is sent only after you say yes. |
| "schedule dinner today with sam and maya" | "on it, texting them." Each friend gets a poll of times and a poll of places. Everyone gets a card with the place, time, who's coming and their walk. | Direct messages, multi-select polls, Find My location, link cards | Texts each person in their own private chat, waits until they stop tapping, picks the time most people can do and the place that fits everyone's restrictions with the fairest walk. |
| A photo of your food | A 👀 reaction, then a short read: calories, protein, the biggest item | Photo attachments, tapback reactions | Claude looks at the photo and estimates each item on the plate. |
| A voice note | A voice note back | Voice messages | The note is transcribed, answered, and spoken back. |
| "i had a burrito" or "how's my day" | The Today's Pie card: calories, protein and budget left today | App cards, updated in place | Logs the meal and updates the same card all day, so the chat doesn't fill up with new messages. |
| "connect apple health" | A private setup link, then "ok you're connected" once your phone syncs | Proactive messages | An Apple Shortcut writes your logged meals to Apple Health and sends back today's active calories and steps. |
| A friend's contact card | A 👍 reaction and "ok, texted sam" | Contact cards, user registration | Signs your friend up and sends them an intro, so they can be part of your plans. They can reply STOP at any time. |
How it works

Every message you send in iMessage reaches Snacxx through Photon Spectrum, and everything Snacxx sends back goes out through Spectrum too: the polls, cards, voice notes, tapbacks and Find My requests. Snacxx itself is a single serverless function on AWS Lambda. When a message arrives it acknowledges it right away and then keeps working in the background, so it can wait minutes for you to tap a poll without anything timing out. Claude on Amazon Bedrock runs the conversation: it understands what you asked, decides which step comes next, and writes the reply in Snacxx's voice.
Behind that, the restaurant menu catalog is stored in Amazon S3 and loaded into Amazon Aurora, where Snacxx searches it and applies your allergy, diet and budget filters. Amazon DynamoDB is its memory: chats, restrictions, meals and group plans in progress. Amazon EventBridge wakes Snacxx every minute to move group plans forward while friends answer at their own pace. ElevenLabs handles voice in both directions, turning your voice notes into text and Snacxx's replies into speech. An Apple Shortcut on your iPhone connects Apple Health, writing the meals you log and sending back your steps and active calories.
Built with: Photon Spectrum · AWS Lambda · Amazon Bedrock (Claude) · Amazon Aurora · Amazon DynamoDB · Amazon S3 · Amazon EventBridge · ElevenLabs · Apple Shortcuts · Apple Health · Find My · Apple Maps · TypeScript
Why it fits what Photon is looking for
Photon asks for hybrid intelligence, which means people and AI doing a task together. In Snacxx the split is simple: you make every decision, the AI runs the conversation, and fixed rules make sure every dish it suggests fits your allergies, your diet and your budget. Here is how Snacxx does each of the four things Photon says a great project does.
1. Real human-in-the-loop collaboration
Snacxx never decides for you. When you say you're hungry, it sends a poll with the three nearest places and you tap one. It then sends a poll with two dishes from that place and you tap one. It sends walking directions only after you say yes. In a group plan, each friend taps every time that works for them, the time most people chose wins, and anyone who didn't choose it is asked "does 7:00 work?" before the plan is final.
2. Context-awareness that persists across time, channels, and teammates
- Across time: if you tell Snacxx you're allergic to peanuts, it applies that to every later search without asking again. Every meal you log during the day adds up on the same Today's Pie card.
- Across channels: you can text, tap a poll, send a voice note or send a food photo, and it is all one conversation. It also reads your steps and active calories from Apple Health.
- Across teammates: when you plan dinner, Snacxx messages each friend in their own chat, combines everyone's allergies, diets, budgets and locations, and sends everyone the same final card.
3. A delightful default that doesn't demand attention
Snacxx asks as little of you as it can. If you already share your location on Find My, it never asks where you are. When you are ticking several options in a poll, it waits until you finish and doesn't reply to each tap. When you send a food photo, it reacts with 👀 so you know it saw it, without sending a "working on it" message. If you answer a group plan before your friends do, it tells you once to hang tight. It is also built to stay silent in a group chat unless someone says its name.
4. Thoughtful safety and fallback behaviors that earn trust
Your allergies, diet and budget are checked by fixed rules before the AI sees any dish, so the AI cannot recommend something that doesn't fit. If a menu doesn't say what is in a dish, Snacxx hides that dish from anyone with an allergy. In a group plan it never tells anyone whose allergy, diet or budget ruled a place out. It never tells you a dish is "safe," and every allergy reply ends with "double check with them before you order." When something doesn't work, it has a backup: if a poll can't be sent it asks the same question as a text, and if you are too far from the restaurants it knows, it tells you so and doesn't guess.
How your data is collected and used
Everything Snacxx knows about you comes from your own text or tap.
| Data | How Snacxx gets it | How it is used |
|---|---|---|
| Allergies, diet, budget | You say it once, in chat | Dishes that don't fit are removed before the AI ever sees them. Never mentioned in a group or to friends in a plan. |
| Location | Your tap on a Find My share card | Nearest places and walk times. Kept 45 minutes. The AI is told a place name, never your coordinates. |
| Meals and goals | "i had a burrito," "set my goal to 1800" | The Today's Pie card, and a nudge toward lighter or higher-protein picks |
| Apple Health | Opt-in, through an Apple Shortcut you run | Your meals go into Health. Active calories and steps come back to adjust your day. Activity only, never medical records. |
| Friends | A contact card you share | One intro text. They can opt out with STOP. |
In a group plan, each person's restrictions are read from their own chat and combined. All anyone hears is "4 of 9 places work for everyone," never whose allergy ruled out the rest.
Safety and fallbacks
- Allergies and diets are enforced by rules, not by the AI. The AI only chooses among dishes that already passed.
- Unknown means hidden. If we don't know what's in a dish, it isn't shown to anyone with an allergy.
- It never calls a dish "safe." Every allergy reply ends with "double check with them before you order."
- It never replies twice to the same message, even if a delivery is retried.
- When something goes wrong, it says so. If a poll can't be sent, it asks in plain text. If you type an answer, it follows along. If you're too far away or nothing fits your restrictions, it tells you and does not guess.
Challenges we ran into
- Waiting for a person. A tap can take minutes, far longer than a normal request. Snacxx acknowledges each message immediately and keeps working in the background until you answer.
- Sounding like a friend and staying reliable. The AI would sometimes skip a step or repeat itself, so the key steps of the flow are decided by rules and the AI only adds the voice.
- Using personal data without exposing it. A group plan needs everyone's restrictions to choose a place, and nobody should learn anyone else's.
Accomplishments that we're proud of
- A full food decision where every choice is a tap
- Group planning across separate private chats that ends in one card for everyone
- An allergy filter the AI has no way around
- It is deployed and running today, and joining is as simple as sharing a contact card
What we learned
- A native control beats a clever sentence. A poll asks less of a person than any wording of the same question.
- Often the best thing an agent can do is send nothing.
- Give the AI the voice and give rules the facts.
What's next
- A dedicated Photon line, so Snacxx can sit inside real group chats
- More neighborhoods and restaurants
- Real walking routes in place of distance estimates
- A "what do you know about me?" reply that lists everything saved and lets you delete it
Try it
Give us your number, or have someone who already uses Snacxx share your contact card with it. Snacxx texts you first. Then:
- Text "i'm hungry" and tap through the two polls.
- Text "i'm allergic to peanuts", then "i'm hungry" again.
- Send a photo of your food.
- Text "schedule dinner today with [a friend who uses Snacxx]" and watch both phones.
Built With
- amazon-aurora-postgresql
- amazon-bedrock
- amazon-dynamodb
- amazon-eventbridge
- amazon-polly
- amazon-transcribe
- amazon-web-services
- aws-lambda
- aws-secrets-manager
- claude-haiku-4.5
- elevenlabs
- imessage
- node.js
- pgvector
- photon
- photon-spectrum
- typescript

Log in or sign up for Devpost to join the conversation.