MixOpsMeals · how it works
one-sheet ↗ open portal ↗
MEAL PORTAL · USER GUIDE

The complete walkthrough — every page, every role, every button.

Three roles share one workflow: coordinators plan meals and open them for orders, crew tap a share link and submit, facility hospitality tracks every meal to stage. This guide walks each surface with a schematic mockup of the actual page, key buttons called out, and answers to the most common "wait, where do I…" questions.

Coordinator
meals.mixops.io/p
Plans sessions · opens for orders · advances status · hands off to hospitality.
Crew
meals.mixops.io/o/<token>
Taps the share link · places + amends orders · checks history at /v/<token>.
Share token (no login)
Facility hospitality
meals.mixops.io/f
5-lane kanban · tracks every incoming meal · advances cards to stage.
01 · COORDINATOR

Planning + opening a session

The plan page (meals.mixops.io/p) is your home base. Pick a production, scroll to the day, hit + new session, and the modal that pops up has every field you need — restaurant, venue, deadline, menu link, notes — without any "create → navigate → edit" dance. Plan-page access is gated to the production creator + members with the coordinator role. Anyone else gets bounced to their personal-history page with a friendly "coordinator access needed" explanation.

meals.mixops.io/p
1
2
3
4
YOUR SHOW · EP 1 · THU JUN 5 · STAGE 4

Pinches

Share order page ↗ Print poster ↗ Edit Submit to hospitality →
STATUS
Poll · Draft · Open · Submit
Orders · 12 placed
×2S. Park · vegan bowl⚑ no cilantro
×1M. Han · pollo asado
×1A. Diaz · veg burrito⚑ GF
Calendar
JUN
5
PAGE · COORDINATOR PLAN

Plan a meal · open it · hand it off

  1. 1 Top action row. Share order page, print a stage poster, edit the session, or — when ready — hit Submit to hospitality. The first three copy a URL or open a flow; the last one advances status and hands off.
  2. 2 Status bar (4 stages). Poll → Draft → Open → Submit. Click any stage to jump directly. Backward jumps prompt a confirm. The "advance" button to the right always reads what the next action does, e.g. Open for orders →.
  3. 3 Live orders panel. Updates as crew submit — allergy / mod flags surface as chips. Click any line to amend or remove. Counts roll up to the top.
  4. 4 Week strip + calendar. Bottom of the page — fast navigation across days. Click a date to load that day's session; arrow keys navigate too.
  5. Reach it: meals.mixops.io/p. Login + coordinator role.

The "+ new session" modal

One screen, all the fields. Restaurant at the top (with the cuisine rolodex on hand if you'd rather pick by genre). Then date, venue, deadline, optional menu link, optional notes. Save and you land straight in the new session — no extra navigation, no "go edit it now to add the deadline."

TIP · TEMPLATES
If you run the same shape repeatedly — "Thursday lunch, Pinches, Stage 4, deadline 11:45" — save it as a template. Next time, one click and the modal fills in.
NEW · STATUS PROPAGATES IN REAL TIME
When you advance a stage on the plan page, crew on the order page (/o/<token>) and anyone on the production-wide page (/a/<token>) see the new status within ~10 seconds — or instantly when they tab back to that page. No manual refresh needed on any surface.
02 · COORDINATOR

Polling crew · spin the wheel

Can't decide what to order? Drop the session into Poll mode. Crew get a voting UI instead of the order form, and you get a vote-weighted spin wheel to pick the winner. Two-stage flow: pick a cuisine genre, then spin through restaurants in that genre (the cuisine rolodex has Culver City options pre-seeded; add more anywhere).

meals.mixops.io/p · poll mode
1
2
3
POLL · YOUR SHOW · EP 1 · STAGE 4

What's lunch today?

14Mexican⌽ leading
9Sandwiches
6Sushi
4Salads
Spin the wheel → Share poll link ↗ · 33 votes in
PAGE · POLL + SPIN

Crew vote · you spin · winner locks in

  1. 1 Live vote tally. Each row is a cuisine genre or a specific shop. Updates in real time as crew vote. They can also suggest new options if their pick isn't there.
  2. 2 Spin the wheel. Vote-weighted — Mexican with 14 votes has a 14/33 slice of the wheel. The spin is animated, lands on the winner, and you get a confirm modal before locking in. Two-stage: stage 1 picks a genre, stage 2 narrows to a specific shop within that genre.
  3. 3 Share the poll link. Same share-token as the order link — you can paste either, the order page detects poll mode and shows the voting UI instead of the order form.
  4. Locking the winner flips status from Poll to Draft (or Open if you skip Draft). The order page auto-rerenders for crew already on it — no need to send a new link.
03 · CREW

The order page

Crew don't sign in. The coordinator's share link IS the credential — one URL per session. Tap it on your phone, type what you want, submit. The page auto-refreshes status every ~10 seconds so when the coordinator advances a stage, you see it — no manual reload.

meals.mixops.io/o/<token>
1
2
3
4
LUNCH · STAGE 4 · DEADLINE 11:45

Pinches menu ↗

STATUS
Poll · Draft · Open · Submit
Submit order → · amendable until 11:45
PAGE · CREW ORDER

Tap the link · submit · done

  1. 1 Restaurant + menu link. If the coordinator added a menu link, tap to see the vendor's actual menu. Order is free text though — copy/paste from the menu or just type what you want.
  2. 2 Read-only status pill. Tells you where the session is. Open = orders accepted. Submit = handed to hospitality, no more orders. Updates every ~10 seconds on its own; instant when you tab back to the page.
  3. 3 Three fields. Name (remembered on device next time), items (free text), notes (allergies / mods). The notes field surfaces as a flag on the coordinator's order count — call out anything they need to relay to the kitchen.
  4. 4 Submit. You'll see a confirmation. Re-open the same URL any time before deadline to amend. After hand-off, amendments forward to the coordinator's pending panel for approval.
  5. Reach it: tap the coordinator's link (meals.mixops.io/o/<token>). No login. Same link works for everyone on the session — share freely.
TIP · QR CODES
The coordinator can print a stage poster (meals.mixops.io/poster/<token>) with a giant QR code. Tape it to the stage door — crew scan with their camera and land directly on the order page.
04 · CREW

Personal history · my orders

Every meal you've placed across the production, in one list. Useful for expenses, tracking weekly orders, or just curiosity. Looked up by your email — no login required, same token as the order link.

meals.mixops.io/v/<token>
1
2
YOUR ORDERS · YOUR SHOW · EP 1

Every meal you've placed

Jun 5Lunch · Pinches · veg burrito · ⚑ no cilantro
Jun 4Lunch · Honey Hi · roasted veg plate
Jun 3Dinner · Tartine · pizza marg · ⚑ GF
Jun 3Lunch · Sqirl · sorrel rice bowl
PAGE · PERSONAL HISTORY

All your meals · one URL

  1. 1 Email-keyed lookup. Type the email you used when ordering. The page surfaces every order placed under that email across this production.
  2. 2 Past orders, newest first. Date, session, restaurant, what you ordered, any notes. Useful for filing expenses or remembering what you liked.
  3. Reach it: take any coordinator order link and swap /o/ for /v/. Same token, different view.
05 · CREW / DIRECTOR / HOSPITALITY

Production-wide orderer

One bookmark-able URL that shows every upcoming session in the production, with per-session status chips. Anyone with the production token can place orders across multiple sessions in one sitting. Auto-refreshes every ~10 seconds.

meals.mixops.io/a/<production_token>
1
2
PRODUCTION SCHEDULE · YOUR SHOW · EP 1

Every session, one URL

Jun 5Lunch · Pinches · Stage 4 · 18 placedSUBMIT
Jun 5Dinner · TBD · Stage 4 · 0 placedDRAFT
Jun 6Lunch · Honey Hi · Stage 4 · 14 placedOPEN
Jun 7Lunch · TBD · Stage 4 · votingPOLL
Jun 8Lunch · Tartine · Stage 4 · openOPEN
PAGE · PRODUCTION-ALL

One link, whole production

  1. 1 Per-session status chip. Amber = poll, sand = draft, ink = open, stone = submit. Scan the list and immediately see what's takeable, what's still cooking. Updates auto-magically.
  2. 2 Order for any session by tapping its row. Your name + email are remembered across sessions, so you only type them once and can fly through the week.
  3. Stable URL. The coordinator mints it once (Share production link button on the plan page), sends it to the director / hospitality / executives. New sessions auto-appear — the URL doesn't change.
  4. Reach it: meals.mixops.io/a/<production_token>. No login. Same posture as the order page.
06 · FACILITY HOSPITALITY

The hospitality kanban

Once a session is submitted, the kanban picks it up. 5 lanes, earth-tone progression — Placed → En route → Arrived → Out to stage → Done. Earth tones get warmer/more urgent as cards move right. Runners + hospitality coordinate the last mile to stage from here.

meals.mixops.io/f
1
2
FACILITY · STUDIO NAME · THU JUN 5

All meals incoming today

Placed
3
Pinches
Stage 4 · 18 mls
Honey Hi
Stage 6 · 12 mls
En route
1
Tartine
ADR · ⚑1
Arrived
2
Sqirl
Stage 3
Petitgrain
Stage 7 · ⚑3
Out
1
Hippo
Mix Bay A
Done
2
Coffee Comm.
Stage 6
PAGE · FACILITY KANBAN

Track every meal to stage

  1. 1 5 lanes, urgency by tone. Sage (Placed) → Hay (En route) → Honey (Arrived) → Terracotta (Out, most urgent) → Stone (Done). Click any card to see crew + allergies. Click Advance to move it forward.
  2. 2 "Coming up later" strip under the kanban shows sessions still on the planner side (draft/open). Helps hospitality prep ahead — see what's incoming before the coordinator hands off.
  3. Reach it: meals.mixops.io/f. MixOps login required + facility membership (the existing facility owner adds you via facility_members).

Who advances the status

07 · STATUS · ALL ROLES

Status flow · the 4 stages

Every session moves through 4 planner stages before it hands off to the hospitality kanban. The plan page shows these as a clickable stepper. Crew see a read-only pill. Production-all shows a per-session chip. All three surfaces tell the same story — they're reading the same field through the same lens.

Poll
Sounding out crew · spin wheel · pick the shop
Draft
Shape decided · not yet visible to crew for orders
Open
Share link live · crew submit + amend
Submit
Handed to hospitality · kanban takes over

Stages can be jumped (click any stage on the plan page). Backward jumps prompt a confirm. After Submit, the hospitality side adds 5 more stages — Placed, En route, Arrived, Out to stage, Done — that live on the kanban.

REAL-TIME · NO REFRESH
Status changes on the plan page propagate to crew surfaces (/o/<token>, /a/<token>) within ~10 seconds via a background poll, AND instantly when the user tabs back to a page. Crew tabs that were already open update on their own — no manual reload, no "ping the team to refresh."
08 · AMENDMENTS

Handling amendments

Crew change their minds. The flow depends on whether the session has been submitted to hospitality yet.

Before Submit — auto-accept

Session in Draft or Open, deadline not passed: crew re-open the share link and edit their order directly. The aggregate updates. Coordinator sees the change in their orders panel on next poll tick (~10s).

After Submit — forward to coordinator

Once a session moves to Submit, the order form on /o/<token> disappears — replaced with "submitted to hospitality, no more orders." If a crew member sends a late amendment via text/Slack, the coordinator has three choices in their pending panel:

CUT-OVER · NO GRACE PERIOD
The switch flips the moment status hits Submit. There's no "still self-serve for 5 minutes after" buffer. Coordinators: make sure crew know to land orders before you hit the submit button.
09 · TROUBLESHOOTING

Common Qs · "wait, where do I…"

The things people ask the most, with a concrete answer for each.

I went to /p and got "coordinator access needed."

The plan page is gated to the production creator + members with role coordinator. If you're on a production as crew, you'll get bounced. Ask the production creator (or an existing coordinator) to upgrade your role via the Members panel.

You can still place orders via the share link the coordinator sends you (/o/<token>), and see your personal history at /v/<token>.

I scanned the QR / tapped the link and the page says "Loading…" forever.

Force-close the browser and re-open the link. If the same thing happens, try a different browser or your phone's data instead of wifi. The order page initializes within ~2 seconds normally; a hang past 8 seconds shows a retry button.

If it still hangs, the share link may be invalid (typo, or coordinator deleted the session). Ask for a fresh link.

Crew can't see the session — "session not open for orders."

You're probably still in Draft. Hit the status bar's advance button → "Open for orders". Once status is Open, crew on the share link see the order form. (If they already had the page open, they see it within ~10 seconds without refreshing.)

I clicked Submit by accident — can I undo it?

Yes. Click the Open stage on the status bar — you'll get a confirm dialog asking "reverse back to Open?" Confirm and the session re-opens for orders. Crew already on the page see it flip back within ~10 seconds.

The actual hospitality kanban side won't have done anything yet if you reverse quickly (within seconds of submitting), so no downstream cleanup needed.

How do I remove someone from the crew list?

On the plan page, scroll to the Crew panel. Each row has a remove control — click it, confirm. Past orders for that person are preserved in history (the name/items/notes denormalized at order time stay intact); the ghost profile just gets disconnected.

The production-all link — does it expire or change?

No. The production share token is stable for the life of the production. You can mint it once on the plan page (Share production link button), send it to the director / hospitality / execs, and they bookmark it. New sessions auto-appear in the list as they're created. The URL doesn't change.

If you ever DO need to rotate the token (e.g., it leaked), the coordinator can revoke + remint in the production settings.

What about Safari / iOS Firefox / privacy browsers?

All work. The meal portal is CSP-strict and uses inline modules + external assets that load behind content blockers gracefully (a blocked Google Fonts fetch falls back to system fonts; JS still runs).

The one historical caveat: if you have an aggressive content blocker AND your phone's browser was previously confused by a stale cache, force-close-and-reopen clears it.

Status didn't propagate to my page — what's wrong?

The poll runs every 10 seconds and also fires when you tab back to the page. If neither has happened (you've been on the page less than 10s and haven't tabbed away/back), it just hasn't ticked yet — wait a few seconds or briefly switch tabs.

If status genuinely hasn't propagated after 30+ seconds, check your network — phones on poor cell signal sometimes drop the background fetch silently. A full page refresh always works as a fallback.

Can I get the meal portal as an app on my phone?

No app needed — the share link works directly in your phone browser. If you want a homescreen icon, both iOS and Android support "Add to homescreen" from the browser menu; the page opens fullscreen like an app.

10 · GLOSSARY

Glossary

Session
One meal, one venue, one time. Scoped to a production.
Production
The show being worked on. Sessions belong to productions.
Facility
The physical space hosting the work. Can host multiple productions in parallel.
Coordinator
Production-side role planning meals. Post coordinator, supervisor, PA. Granted via production_members.role = 'coordinator'.
Crew
Anyone placing an order. No login required when using the share link.
Facility hospitality
Facility-side ops. Receives deliveries, runs to stage. Granted via facility_members.
Share token
The fragment in /o/<token>. One per session, acts as access credential. The /v/<token> personal-history URL takes the SAME token — the worker resolves it back to the production and surfaces every order by the viewer's email across that production.
Production token
Like the share token but scoped to the production not a single session. Used by /a/<production_token> · stable for the life of the production.
Template
Reusable session shape. Restaurant + venue + deadline saved together so you can spin one up in one click.
Amendment
Change to a placed order. Auto-accepts pre-Submit; forwards to the coordinator post-Submit.
Deadline
Cut-off for crew submit / amend. Coordinator sets it. Portal doesn't enforce vendor lead times — that's your call.
Status pill
The read-only 4-stage indicator on the order page. Updates in real time as the coordinator advances stages.
Status chip
The per-session color-coded label on the production-all page. Same 4 stages, condensed to one chip per row.