staffing app · MVP walkthrough
Private staff scheduling · MVP v1

Staff your events without handing over the whole book.

This is a working first version (MVP) of a custom scheduling app for Coast — enough to run a real month end to end and pressure-test the idea. The office runs the roster from one board; staff only ever see their own shifts. Seeded with real September data so you can click through the actual flow, not a mockup.

Early build — core flow live, more to come
73
Active staff on the roster
41 Server · 23 Chef · 7 Bar · 2 Mgr
25
September events loaded
Sep 1 – Sep 30, 2026
2,254
Guests across the month
real event counts
1,405
Availability entries
every staffer, every day
Two sides, one system

The office sees everything. Staff see only themselves.

The same app renders a completely different world depending on who logs in — that split is the entire point.

Office / Manager view

Run the whole book

manager@coast.com
  • Event board — every September event, guest counts, roles needed vs. filled.
  • Add staff to an event — pick from anyone active and available that day.
  • Send invites — one click notifies everyone selected, in-app and by email.
  • Roster & availability — days free, shifts booked, per-person at a glance.
  • Activity feed — a running history of who was invited, accepted, or declined.
Staff view

Just your shifts

any staff member — e.g. Alex Staffer
  • Dashboard — upcoming shifts, hours booked, and anything awaiting a reply.
  • Accept / Decline — respond to an invite in one tap, from the app or the email.
  • Shift details — call time, attire, venue, plus a Get directions link.
  • Set availability — mark the days they can work on a monthly calendar.
  • Zero leakage — no event list, no other staff, no client book. Ever.
The booking flow

From open shift to confirmed staffer in five steps.

01

Availability

Staff mark the days they can work.

02

Assign

Office adds available people to an event.

03

Invite

One click sends the offer by email + in-app.

04

Respond

Staff accept or decline in one tap.

05

Confirmed

Shift lands on their dashboard with details.

Why we built it instead of buying it

Privacy is enforced in the database — not just hidden in the UI.

Off-the-shelf tools force full transparency: everyone sees every event. Coast needs the opposite. Here, the database itself refuses to hand a staff member any event row that isn't theirs. There's no screen to misconfigure and no client list to leak.

# Postgres row-level security
policy staff_see_own_shifts
  on assignments
  using ( profile_id = auth.uid()
    and status in ('invited','accepted') );
# events table → staff get zero rows
What's inside

Everything the office needs, nothing the staff shouldn't have.

✉︎

Real email invites

Branded shift offers with a calendar attachment and one-click Accept / Decline links that work straight from the inbox.

Hours & directions

Each staffer's dashboard totals their booked hours and links every confirmed shift out to Google Maps directions.

Availability calendar

Staff paint the days they can work; the office only ever sees available people when filling a role.

Roles vs. filled

Every event tracks Servers, Bartenders, Chefs and Captains needed against what's confirmed, so nothing gets under-staffed.

Live activity feed

A running log of invites sent, accepts and declines gives the office a paper trail of the whole month.

Locked-down access

Admins run the book; staff are boxed into their own shifts by the database itself — not by a toggle someone can flip.

Roster by role

Servers14
Captains6
Bartenders5
Chefs4

29 active staff, seeded from Coast's real September event-staff sheet.

Assignments this month

Confirmed (accepted)30
Invited (awaiting reply)34
Draft (office still filling)35
Accepted Invited Draft

99 assignments across 15 events — a lifelike mix so every view has real history.

Try it yourself

Three logins, both sides of the app.

All passwords are Coast2026. Open the live app and sign in as any of these.

Email delivery is tested and live. Real invites have been confirmed landing in a live inbox — branded offer, calendar attachment, and working Accept / Decline links, straight from the inbox.

💡

Full walk-through: Sign in as manager@coast.com → open any September event → under Add Servers, add Alex Staffer → click Send invites. The branded offer email goes out. Then sign in as Alex, accept it, and watch the shift appear on her dashboard with hours and directions.

Where it stands

What's working today — and what an MVP still leaves open.

This build proves the core loop end to end. It's deliberately lean; the list on the right is what we'd shape next based on how it feels to actually use.

Working in this version

  • Office event board with roles needed vs. filled
  • Add available staff to an event & send invites
  • Email invites with one-click Accept / Decline
  • Staff dashboard — shifts, hours, directions
  • Monthly availability & database-level privacy
  • Total Party Planner sync — confirmed events flow in automatically; proposals & tastings are held out until confirmed

On the roadmap

  • Text / push notifications, not just email
  • Shift swaps & waitlists when someone declines
  • Pay rates, hours totals & payroll export
  • Manager mobile app & day-of check-in
  • Reporting: fill rates, reliability, no-shows