MotionTech, LLC · Research and Recommendations
Your Allergen Assistant
How we researched the safest, most reliable way to build and run your in-store allergen chatbot, and what we recommend.
What the research was for
To decide the best way to build and run your in-store allergen chatbot: where it lives, how it keeps every allergen answer safe and correct, and how to build it on a foundation that stays reliable and inexpensive to run.
What we looked at
29 sources across several focused passes, ranging from official documentation (Cloudflare, Vercel, Supabase, Voyage AI, Next.js, Apple) to vendor blogs, independent comparison articles, and 2026 pricing and benchmark write-ups. Five decisions to settle, the same five we make recommendations on below:
- 01How it answers allergen questions safely
- 02The database behind it
- 03Keeping your data separate, and able to grow
- 04Where to host it
- 05Locking down the in-store screen
What we found
The most important decision: allergen facts come from your own records, looked up exactly. The AI never guesses them.
How it answers allergen questions safely
The tempting shortcut is to let the AI "search" your whole menu and answer from whatever it finds. For allergens that is unsafe, because this kind of search is built to be approximate, not exact. It always returns whatever is closest. So it can give back only part of the picture, it can read "contains almonds" and "contains no almonds" as nearly the same thing, and it never comes back empty: even when the right flavor is not in the records, it still offers its nearest guess. That is not good enough when the answer decides whether someone can safely eat.
So we keep two kinds of information in two kinds of database, and use each where it is strongest.
- General knowledge goes in a vector database. Flavor descriptions, background, and notes are stored in a vector database, which searches by meaning rather than exact words. It is good at understanding a loosely worded question and matching "the choc chip one" to the right flavor.
- Allergen facts go in a structured table. The safety-critical facts live in an exact, row-by-row database, where every flavor has a listed set of allergens that is looked up precisely and never guessed.
The assistant draws on both, and that is the point. The vector database works out what the customer is asking and which flavor they mean, even from vague wording. The structured table then supplies the exact allergen facts for that flavor. You get the best of both: the flexibility of general knowledge to understand the question, and the precision of specific, verified facts to answer it. If the records do not cover the question, the assistant says so and points to a person, rather than filling the gap itself. This split was also the biggest thing the research changed: the first instinct was to put everything in one large vector database, and the research showed that is not safe for allergens, so the exact facts moved into a structured table of their own.
The one database behind it
Your flavors, the allergen records, staff logins, and chat history all sit in one managed database (Supabase). Keeping them together means the menu and the allergen facts can never drift out of sync, and there is one system to run instead of several parts to keep aligned.
Keeping your data separate, and able to grow
Inside that database, your shop's information is completely walled off. The separation is enforced by the database itself, so nothing can reach records it should not. We test that boundary before launch to confirm it holds. The same design also lets the setup grow: if we add another shop later, it lives in its own sealed section of the same database, never mixed with yours. That keeps everything consolidated and easy to organize, while staying safe and separate, and Supabase is built to work this way.
Where it's hosted
Cloudflare will host the assistant, and it works out cheaper than Vercel, the usual alternative: roughly $5 a month for the whole account against about $20 a month per seat on Vercel, for the same result. The potential trade-off: the small piece that lets the app run on Cloudflare is still new. Everything beneath it is mature and proven, and only that connecting layer is young, which for a single shop is a footnote rather than a risk.
Locking down the in-store screen
The screen customers use should run this one app and nothing else. A Mac can be limited to a single app through a built-in kiosk mode, so it cannot be closed, browsed away from, or tampered with. An iPad can do the same even more cleanly if you are open to that.
What we recommend
01 Answers come from your records, not guesses
The AI finds which flavor is meant (matched with Voyage 4); your structured records supply the actual allergen answer.
02 One database for everything
Flavors, allergen records, logins, and history in a single managed database (Supabase). No syncing between parts, and one system to maintain rather than several.
03 Sealed off, and ready to grow
Each shop's data is completely walled off inside one database, enforced by the database itself and tested before launch. The same design lets us add another shop later in its own sealed section, so the setup stays organized and scales cleanly, without ever mixing data.
04 Host it on Cloudflare
Cheaper to run than Vercel for a setup like this, and reliable. We compared the options, and it balanced cost and control the best.
05 Lock the in-store screen to just this app
Single App Mode turns the Mac into a kiosk that only runs the assistant. Or use an iPad, which locks down even more cleanly if you're flexible on hardware.
Sources
Grouped by decision. Open any drawer to see the specific pages behind that call, and click through to read any of them.
How it answers allergen questions safely
- Surfaced Voyage 4 (January 2026)buildmvpfast.com
- Voyage AI official blog: benchmarks, pricing, dimensionsblog.voyageai.com
- MongoDB announcement: quantization and vector-DB cost mathmongodb.com
- Head-to-head vs OpenAI 3-smallagentset.ai
- Price-per-token table across vendorspecollective.com
- Vector search retrieves similar items, not exact matchesoracle.com
- pgvector: embeddings stored alongside relational data in Postgressupabase.com
The database behind it
Keeping your data separate, and able to grow
Where to host it
- Cloudflare Workers: pricingdevelopers.cloudflare.com
- Cloudflare Workers: platform limitsdevelopers.cloudflare.com
- OpenNext for Cloudflare (Node runtime, version support, pre-1.0 status)opennext.js.org
- Next.js Adapter API: why Cloudflare hosting is now officialnextjs.org
- Cloudflare's Next.js framework guide (deploy steps)developers.cloudflare.com
- Workers limits 2026, verified against Cloudflare docsmarkaicode.com
- CPU-time changelog (5-minute limit)developers.cloudflare.com
- Subrequests limit changelogdevelopers.cloudflare.com
- Workers development guide 2026digitalapplied.com
- Vercel Pro plan pricing (per-seat), the compared alternativevercel.com
Locking down the in-store screen
One standing note: the pricing and benchmark figures come partly from third-party summaries. We'll reconfirm each against the official Supabase, Voyage, and Cloudflare pages the day we build, since these numbers move.