Case study — the 1-minute version
How I built and run a scheduling app on my own
By Gurjinder Johal, full-stack developer. Shiftova is a staff scheduling and time-clock app for restaurants. I designed, built and run all of it, and it's live and in daily use.
32 / 32
database tables locked down by security rules
13
server functions for payments, notifications and email
476
automated tests on the business rules
How it's built
- The app. One React Native codebase in TypeScript for iOS and Android, with separate modes for managers, employees and a shared time-clock tablet.
- The database. PostgreSQL on Supabase, with security rules on every table, so each person only ever sees what they're allowed to, whichever screen asks.
- The server side. Small server functions for payments (Stripe), push notifications and email, started by the app, by database changes, or on a schedule.
Phone app (iOS & Android)
React Native + Expo, one TypeScript codebase. Manager, employee and kiosk modes. Overtime, payroll and forecast logic run here as tested functions.
Supabase (hosted PostgreSQL)
Sign-in and invites; 32 tables with row-level security on every one; 48 database functions and 41 triggers; 70 versioned migrations.
13 server functions + 5 scheduled jobs
Payments (checkout, billing portal, Stripe webhook, nightly reconcile), people (invites, account changes, kiosk), messaging (push, chat, incident emails), and scheduled reminders, alerts and data retention.
Third-party services
Stripe, Apple and Google push notifications (through Expo), Resend email.
Decisions I'd point to
- Security in the database, not the app. Even a bug in a screen can't show someone another person's pay rate.
- Business rules as tested functions. Overtime law for 13 provinces and territories and 50 states and DC, holiday pay and payroll, all covered by automated tests.
- Payments enforced by the database. A lapsed subscription blocks changes, but the customer never loses their records.
The honest part
It's a one-developer product, so there's no second reviewer, no automated build pipeline yet, and fixes wait for an app-store review. Those are the next things I'd add.
Skills used
About me
I'm a full-stack developer with a computer science degree and 10+ years building software and analytics for a restaurant franchise business. I also run Nechako Digital, the studio behind this site. I'm looking for a full-stack, backend or data role.
Also see the sales-forecasting case study from the same app.