
StepLadder
Founder
Therapist-facing tool for assigning structured between-session work and reviewing patient execution before the next appointment.
- Role
- Founder · product + eng
Problem
Therapy does not fail in-session. It fails between sessions.
Homework is often verbal or a PDF. Patients forget it, avoid it, or complete it wrong—then clinicians get “kind of” instead of data. Content libraries hand out worksheets; they don't close the loop.
Architecture
Therapist Next.js App Postgres │ │ │ │ POST /assignments │ │ │──────────────────────────▶│ INSERT assignment │ │ │─────────────────────────▶│ │ │◀─────────────────────────│ │◀──── 201 + id ────────────│ │ │ │ │ Patient │ │ │ GET /homework/:id │ │ │──────────────────────────▶│ SELECT steps + schema │ │◀──── guided UI ───────────│◀─────────────────────────│ │ │ │ │ PATCH /progress │ UPSERT SUDS / complete │ │──────────────────────────▶│─────────────────────────▶│ │ │ │ Therapist │ │ │ GET /review/:patient │ aggregate signals │ │──────────────────────────▶│─────────────────────────▶│ │◀──── review payload ──────│◀─────────────────────────│
┌─────────────┐ 1 * ┌──────────────┐ 1 * ┌─────────────┐
│ Therapist │─────────▶│ Assignment │─────────▶│ Step │
└─────────────┘ │ modality │ │ prompt │
│ patient_id │ │ order │
└──────┬───────┘ └──────┬──────┘
│ 1 │ 1
│ │
▼ * ▼ *
┌──────────────┐ ┌─────────────┐
│ Progress │ │ Signal │
│ status │ │ SUDS / etc │
└──────────────┘ └─────────────┘Stack
- Next.js 14
- React 18
- TypeScript
- Supabase client
- PostgreSQL
- Docker
What we built
- Shared TypeScript types for assignments/steps across App Router UI and route handlers
- Guided patient runtime that posts behavioral + emotional signals (e.g. SUDS, completion)
- Therapist review surface aggregating traces before the next session—not PDF dumps
Outcome
The wedge is adherence and correct execution outside the room—the layer where therapy often fails and where structured product design can matter most. Scope stays supportive of licensed care, not a replacement for it.