Plato environments
Every copy of Plato, where its code comes from, and which database it talks to. Updated 28 Oct 2026.
How it fits together
Each website talks to one database only. Carl's builds rewrite every database address to that site's own database and refuse to publish if any other remains.
Services and where data lives
The outside services Plato uses, what each one is for, and what changes next. Plato's structure (catalogue, customers, venues, inputs) is on the Plato structure map ↗.
Supabase database and sign-in
- What
- One database per environment (above): every table, sign-in, the rules, the server functions (scanning, notifications)
- Next
- Database backups from Supabase (daily; point-in-time on a paid plan)
Supabase Storage intended for all files
- Today
- COSHH safety data sheets only. Every other photo (invoices, labels, products, dishes, checks, logos) sits inside the database as text
- Next
- All photos and invoice originals as files in private per-venue folders, a link in the database; logos in a public folder (3.2 list)
Second backup copy third party: to be decided
- Why
- Supabase's database backups don't cover the file store, and a copy outside Supabase protects against a problem with Supabase itself
- Plan
- Nightly encrypted copy of the database and the files with a second provider (e.g. Cloudflare R2, Backblaze or Amazon S3), versioned, restore tested
- Stop
- Backups in git and photos on a personal Drive, before real customer data
Cloudflare Pages websites
- What
- Hosts each environment's website (Olly's account for live, demo, dev; Carl's for Carl dev and the sandbox)
Anthropic (Claude API) AI reading
- What
- Reads photos and PDFs for every scan: invoices (onboarding and delivery check), labels, recipes, menus, COSHH. Called only from Supabase, its key never reaches a browser
- Cost
- Per scan; usage recorded per company and venue (3.1 on). Next: record which tool each scan came from
Food data lookups
- Open Food Facts
- Free public food database: barcode and name search for nutrition. To be reduced once the Plato catalogue holds checked data
- UK CoFID
- The government's food table, copied in (not looked up live): nutrition for plain foods in Fill nutrition and the Plato catalogue
Notifications email and push
- Resend, from the notify server function
- Push
- Web push to phones and browsers
Smaller third parties
- QR codes
- api.qrserver.com draws the QR code images (could be made in Plato instead)
- Fonts
- Google Fonts
- Code
- GitHub: carlhuelin/plato (Carl), otrjersey/plato (Olly)
How work moves between Carl and Olly
Carl keeps his own copy of Plato (a fork) with his own databases. Olly's work flows in regularly; Carl's work flows back as pull requests that Olly merges.
- Sync. Olly's latest
mainis brought into Carl's copy every day or two, so the two never drift far apart. - Build. Carl works on a branch and tries it on the sandbox, which has its own database, so nothing reaches Olly.
- Rehearse (a manual push). Before a handover, the work is pushed to Carl dev, a copy of Olly's dev, exactly as it will on dev.
- Hand over (a manual push). Carl pushes the finished branch to Olly's repository as a pull request. Olly merges it; dev updates, and its database changes run on TEST at that moment.
- Promote. Live and demo get it when Olly says so, with its database changes in the same promotion.
Olly's own changes skip steps 1 to 4: a short branch, merged the same day, straight onto dev.
Module versions
Which version of each module each Plato website is running.
| Module | Live | Demo | Olly's dev | Sandbox | Carl dev |
|---|---|---|---|---|---|
| Hub | 1.63 | 1.65 | 1.70 | 3.2 beta | 3.1 beta |
| Pantry & ordering | 1.94 | 1.98 | 1.99.5 | 3.2 beta | 3.1 beta |
| Recipes & menus | 2.31 | 2.35 | 2.36.3 | 3.2 beta | 3.1 beta |
| Food safety | 1.41 | 1.41 | 1.42 | 3.2 beta | 3.1 beta |
| Training & COSHH | 1.16 | 1.16 | 1.18 | 3.2 beta | 3.1 beta |
| Financials | 0.3 | 0.3 | 0.4 | 3.2 beta | 3.1 beta |
| Company admin | N/A | N/A | N/A | 3.2 beta | 3.1 beta |
| Plato platform | N/A | N/A | N/A | 3.2 beta | 3.1 beta |
| Help | N/A | N/A | N/A | 3.2 beta | 3.1 beta |
Read from each website when this page was published, 30 Oct 2026 08:06. Carl dev gets its own column once its website exists.
Plato
Live real kitchens
Off The Rails and La Piscine use this every day. Changes only when Olly promotes from dev.
- Website
otrorders.pages.dev(rename to plato-live planned)- Database
- LIVE · daily backups
- Code
- otrjersey/plato
main, as last promoted - Sign-in
- Name + PIN (old route)
Demo showing people
A copy of Off The Rails' data for demonstrations. Promoted on Olly's word, like live.
- Website
plato-demo.pages.dev- Database
- DEMO
- Code
- otrjersey/plato
main, as last promoted
Olly dev / Test Olly's testing
Updates itself about a minute after anything lands on main. Olly tests here before promoting.
- Website
plato-dev.pages.dev- Database
- TEST
- Code
- otrjersey/plato
main(branches get preview addresses) - Alerts
- Phone and email alerts set up
Carl dev Carl · Plato 3.1 beta
A copy of Olly's dev, logins included, in Carl's own Supabase, with 3.0 and 3.1 together: the dress rehearsal of the single push to Olly's dev.
- Website
plato-dev-carl.pages.dev· Plato adminplato-dev-carl-admin.pages.dev- Database
- Carl dev · 22 Oct copy of dev, database steps R37-001 to R37-075 applied (27 Oct); allergens switched to the new storage; two Off The Rails products whose old allergen data didn't agree (12oz Coffee Cup Feel Good, Moving Mountains Burgers) are Allergens not checked. Backed up first (27 Oct, on Carl's Mac)
- Version
- 3.1: multi-customer (3.0) plus the allergen work and everything after it, to the 3.1 cut-off
- Code
- carlhuelin/plato
carl/r37-account-layerat the3.1-cutoffmarker - Sign-in
- Email + password; PINs unlock kitchen devices
- Alerts
- Functions copied; no keys set yet
Sandbox Carl · Plato 3.2 beta
The account layer (R37): companies, venues, email sign-in, kitchen devices, Company admin and the Plato platform (on its own address). Olly's latest work merged in on 21 Oct. Newest: food allergens Stage 1 (the allergen list and bulk-review words from the database; Plato platform → Allergen words).
- Website
plato-sandbox-carl.pages.dev· Plato adminplato-sandbox-carl-admin.pages.dev- Database
- Sandbox · 22 Sep copy of live + test companies
- Version
- 3.2: everything after the 3.1 cut-off (fixes from Olly's testing, bulk review, allergens may change, QR logo and name, and on)
- Code
- carlhuelin/plato
carl/3.2 - Sign-in
- Email + password; PINs unlock kitchen devices
- Alerts
- Not set up here (tested on dev at the handover)
Other Off The Rails apps
Lunchbox
Now its own repository (otrjersey/lunchbox), separate from Plato.
- Website
otr-lunchbox.pages.dev- Database
- Lunchbox & events
Events
Event lunches; notes moved to Packed Lunch.
- Website
otr-events.pages.dev- Database
- Lunchbox & events
Launch HQ
Project planner, outside Plato, on its own database.
- Website
otrprojectplanner.pages.dev- Database
- Its own, separate from Plato