Care operations
Tiny Staffing
Weekly scheduling for a therapy center: provider grids, caseloads and booking links for parents.
A therapy center's week is a grid of thirty-minute sessions across many providers and many children. Tiny Staffing replaces the whiteboard.
Providers see their own week, the office sees everyone's, and parents choose times from a texted link without creating an account.
- Status
- In use at the center it was built for. No public site.
- Stack
- Next.js, Convex, Tailwind
Why it exists
Parents need to book therapy times from a phone without calling the office, making an account or installing anything. Office staff and therapists need to see the result on the schedule.
Classroom seats and expiring medical paperwork used to be tracked by hand across spreadsheets. Here they live in one record with filtered views.
Try it
Pick up a child, then move or swap. Conflicts are refused. This is an illustrative prototype built for this site with fictional data, not the product itself.
Shift board · Illustrative prototype · fictional data
One run through it
Open the case
An admin creates a referral, then schedules the child directly or sends the family a link.
The parent books
From that link, a parent picks one therapist and the required times on different days.
It lands on the grid
The booking shows up amber on the therapist's week. Marking it started turns it green.
Plans change
Reassign moves a booked child to a new therapist or new times in one step. The status carries over, and no parent gets a surprise notification.
What it does
Provider week grid
Monday to Friday, eight to four, in thirty-minute cells, one grid per provider.
Move and swap
Pick up a child and every cell says what would happen: move here, swap, or blocked. The server rejects same-day doubles and overlapping services.
Case lifecycle
Link sent, waiting, authorized, started. The caseload view shows where every child is.
Blocked time
Lunch, paperwork and unavailable slots, with office-set groups locked.
Parent booking links
A family picks a therapist and times on different days from one link.
Why it's built this way
One set of booking rules
Staff and parents book under the same rules, so a reassign can't produce a grid that a parent booking couldn't.
Removing isn't deleting
Taking a session off the grid reopens the cell and keeps the case assigned. Only admins can delete a child.
No parent accounts
A family gets a link, picks times and is done. There's no login to forget.
How it fits together
- 01A Next.js web app with a Convex backend; scheduling conflicts are checked on the server, not just in the browser.
In plain terms
- Mandate
- How often a child is authorized to be seen. "2×30" means two thirty-minute sessions.
- Caseload
- The children a therapist is responsible for.
- Clearance
- Whether a child is authorized and medically current to hold a classroom seat.