MotionTech · Research & 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.
01 The question
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.
02 The research
What we looked at
Around 35 sources across six focused passes, weighted toward official documentation (Cloudflare, Voyage AI, Next.js, Apple) and cross-checked against independent 2026 pricing and benchmarks. Six decisions to settle:
- 01Where to host it
- 02What the host can and can't do
- 03The database behind it
- 04Matching a customer's words to a flavour
- 05Locking down the in-store screen
- 06Whether the setup is solid enough to trust
03 What we found
The findings
The most important decision: allergen facts come from your own records, looked up exactly. The AI never guesses them.
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 flavour 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. Flavour 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 flavour.
- Allergen facts go in a structured table. The safety-critical facts live in an exact, row-by-row database, where every flavour 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 flavour they mean, even from vague wording. The structured table then supplies the exact allergen facts for that flavour. 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 one decision shapes almost everything below: wherever a choice traded certainty for convenience, we kept certainty.
Where it lives
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 trade-off to be honest about: 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.
One database holds it all
Your flavours, 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. It is also where both halves of the split above live: the flexible search and the exact records are features of the same database, so nothing has to be stitched together between systems.
Sealed off, and ready to grow
Inside that database, your shop's information is completely walled off. The separation is enforced by the database itself, one level below the app, before any search runs, 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 organise, while staying safe and separate, and Supabase is built to work this way.
What the research changed
The biggest change was to our starting point. The first instinct was to put everything in one large vector database and let it answer by meaning. The research showed that is not safe for allergens, for the reasons above, so the design changed: general knowledge stays in the vector database, but the exact allergen facts moved into a structured, row-by-row table. That split, general knowledge in one place and verified facts in another, is the single most important thing the research changed.
04 The plan
What we recommend
01 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.
02 One database for everything
Flavours, allergen records, logins, and history in a single managed database (Supabase). No syncing between parts, and one system to maintain rather than several.
03 Answers come from your records, not guesses
The AI finds which flavour is meant (matched with Voyage 4); your structured records supply the actual allergen answer.
04 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 organised and scales cleanly, without ever mixing data.
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.
The evidence
Sources
Grouped by decision. Open any drawer to see the specific pages behind that call, and click through to read any of them.
Where to host it: Cloudflare vs Vercel
- Cloudflare Workers: platform limitsdevelopers.cloudflare.com
- Cloudflare Workers: pricingdevelopers.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
What the host can and can't do: Workers limits
The database behind it: Supabase pricing
Matching words to flavours: embedding models
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.