This policy covers cookies and similar device storage (together, “cookies”). The three surfaces of MesaFlow use very different amounts of it, so they are listed separately below. The short version: the public website asks for your consent because it can; the signed-in platform and the guest menu use only what they need to function, and so do not.
1. What cookies are
Cookies are small files a site stores on your device. Similar technologies include localStorage and sessionStoragewhich behave the same way for privacy purposes and are treated the same here. A strictly necessary item is one the Service cannot work without; anything else needs your consent.
2. Which part applies to you
| Surface | Consent banner? | See |
|---|---|---|
| Public website (landing page, demo, enquiry) | Yes | Part A |
| Staff platform (dashboard, owner console, waiter, kitchen, provider panel) | No — strictly necessary only | Part B |
| Guest menu at a table | No — strictly necessary only | Part C |
Part A — Public website (Visitors)
| Name | Category | Purpose | Lifetime |
|---|---|---|---|
mf_cookie_consent | Strictly necessary | Remembers that you accepted or rejected non-essential cookies, so the banner stops asking. | Until cleared |
theme | Preferences | Remembers a light or dark choice so the page does not flash the wrong one on load. | Until cleared |
mf_ui_locale | Preferences | Remembers the language you picked for the site. | Until cleared |
| Analytics and performance | Analytics | Aggregate page views and page-speed timings, so we can see which pages are slow or unread. Set only after you accept. | Session to 12 months |
Your choice. The banner on your first visit lets you accept or reject the non-essential categories. Rejecting leaves the site fully usable. To change your mind later, clear the mf_cookie_consent value in your browser’s site data for this domain — the banner returns on the next page load and your new answer replaces the old one.
Part B — Staff platform (Operators)
Once you sign in, everything stored is strictly necessary to keep you signed in, keep you on the right restaurant, and remember how you left the interface. There is no analytics or advertising storage behind the sign-in, which is why there is no banner there.
| Name | Kind | Purpose |
|---|---|---|
better-auth.session_token | httpOnly cookie | Renews your session without asking for the password again. Not readable by scripts. Rotated on every use; reuse of an old one revokes the whole family. |
better-auth.session_data | Cookie + localStorage | The short-lived token authorising each API call. |
mf_active_restaurant | Cookie | Markers telling the app a session may be recoverable, so it does not sign you out on a cold load. |
mf_is_owner, mf_owner_scope, mf_owner_last_restaurant | Cookie + localStorage | Owner console access and which venue you were last working in. |
better-auth.session_token | Cookie | Provider administrator session, and the marker shown while acting on behalf of a restaurant. |
mf_staff_locale, mf_provider_locale, mf_i18n_*, mf_app_langs | localStorage | Interface language for staff and provider screens. |
theme, mf_themes, mf_saved_colors, mf_pagebg | localStorage | Appearance settings and saved brand colours. |
mf_bottomnav_collapsed, mf_hotkeys, mf_hotkeys_no_anim, mf.scheme.tools.* | localStorage | Interface state: collapsed navigation, keyboard shortcut bindings, and floor-plan editor tool settings. |
mf_product_defaults, mf_pp*, mf_logo, mf_hero, mf_header | localStorage | Your working defaults in the menu and product-card designer, so a half-finished design survives a reload. |
Clearing these signs you out and resets your interface preferences; it does not delete any restaurant data, which lives on the server.
Part C — Guest menu (Guests)
A guest menu sets no analytics and no advertising storage at all. It keeps two things on your own phone, and both are strictly necessary for the menu to behave like a normal page:
| Name | Purpose | Lifetime |
|---|---|---|
mf_cart_<table> | Your basket for that table, so closing the page or locking your phone does not lose your order. | Until you order or clear it |
mf_guest_lang_<restaurant> | The menu language you chose at that restaurant. | Until cleared |
Neither is shared with other restaurants, and neither identifies you. Clearing your browser data removes both.
3. What we never use, anywhere
No advertising cookies, no third-party ad or social pixels, no cross-site tracking, and no sale of data to advertisers. Guests are not followed between restaurants or across the web.
4. Managing cookies in your browser
Every major browser can block or delete cookies and site data, usually under Privacy or Site settings. Blocking strictly necessary items breaks the thing they exist for: on the staff platform you will be signed out repeatedly, and on a guest menu your basket will empty on each reload.
5. Changes and contact
We update this policy when our use of storage changes; the “Last updated” date reflects the current version. See the Privacy Policy for how we handle personal data and the Terms of Use for the rules per audience, or write to privacy@mesaflow.app.