This is what it does
Try it
ShiftSwapper Pro is shift swapping for hourly staff with a manager in the loop. Start by pressing “Offer for swap” on one of the scheduled shifts — then request it as a peer and approve it as the manager.
Runs in your browser — nothing to install
- What it does: an employee offers a scheduled shift, a peer requests it, a manager approves it, and the earnings view recomputes from the pay rate the manager set.
- What to try: offer a shift, request it from another employee account, then approve it as the manager — and try to approve your own request, which is refused.
- What it runs on: the product’s own GUI over an in-browser mock backend that mirrors the edge functions’ rules and error copy. No Expo, no database, no keys.
- What it does not do yet: nothing persists outside that browser tab. No database has ever been provisioned, so no row-level security policy has run, no sign-in is authenticated, and there is no checkout or price you can be charged.
Status
What is real, and what is a source contract
- The suite passes and the numbers are measured: 45 cases in all — 15 on the swap state machine, 7 on the earnings arithmetic and the missing-rate guard, 12 that read the migrations and assert the predicates written in them, and 11 for the matchmaking engine. The first 34 run under the Node test runner with no database, no Docker and no Deno.
- The 12 SQL cases are a source contract. They read the migration files; they do not execute a policy, and a passing run is not evidence that a policy behaves correctly.
- No database has ever been provisioned. No hosted Postgres project exists, no migration has been applied to a live database, and no edge function has been deployed. The row-level security policies have never run against one.
- The earnings view is arithmetic over a manager-set rate. Holiday and overtime rules are placeholders, so nothing here should be presented to anyone as payroll-accurate. The sales plan also markets a cross-location labor pool that the shipped request path deliberately refuses — the code is the one that runs.
Under the hood
What it is built on
- Stack
- React Native / Expo with React Navigation and Victory Native for the app; Supabase for Postgres, row-level security and the edge functions; a TypeScript package for matchmaking.
- Runs where
- The app runs through Expo Go or an EAS preview build. The demo above opens from the page with no server. The backend is six migrations plus five edge functions, all written and none applied or deployed.
- Data
- Shifts, swap requests, earnings, reliability scores and feedback across six migrations with row-level security. No hosted project exists, so the policies have never executed against one.
- Blocked on
- A provisioned database — the policies are a source contract until one exists — and a route to a location manager who will run a pilot.
Ask about a pilot
Whether the loop fits how your location already schedules, or what the app does with pay data — ask before you commit anything. Nothing is on sale.