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 5 sources
What the host can and can't do: Workers limits 5 sources
The database behind it: Supabase pricing 5 sources
Matching words to flavours: embedding models 5 sources
Locking down the in-store screen: kiosk mode 5 sources

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.