GATES
The eight gates
draft ▸ wire ▸ unlock
G0Foundation & accessthe base every other gate stands on~3–4 wks
draft
Design system (squared), shared shell, and the sign-in screens for each role.
design-systemapp-shellAPP-01INS-01
wire
Supabase project, core schema, multi-tenant RLS, auth roles, and the feature-flag system itself.
tenantsprofiles·rolesRLS policiesfeature_flagsaudit_log
unlocksA user signs in, lands in the right role, sees only their tenant — and a flag can lock or unlock any feature.
G1School ops core — livethe enrollment + tracking demo, made real~4–5 wks
draft
Already drafted as the working demo — refit to squared and the real catalog.
OPS-01OPS-02OPS-03OPS-04OPS-05OPS-06
wire
The curriculum, cohorts, enrollments and per-track progress persist; the enroll workflow runs server-side.
coursesmodulescohortsenrollmentsenroll-student()
unlocksStaff enrolls a real student into a real cohort; progress persists; the dashboard reflects live data.
G2Marketing + applicant pipelinethe tools that build enrollment~5–6 wks
draft
Public school-first site on real content, plus the full intake-to-offer pipeline.
MKT-01…11ENR-01…09
wire
Public forms write to the DB; staff move applicants through stages; the waitlist auto-offers lab seats.
applicantsinfo_sessionsofferswaitlistsubmit-application()promote-waitlist()
unlocksThe public applies; staff process the funnel to an offer; accepting an offer creates an enrollment.
G3Student app + onboardinggetting through the program~5–7 wks
draft
Onboarding, dashboard, course & online player, lab sessions, schedule, submissions, certificate.
APP-02…12
wire
Submissions to Storage, progress per track, attendance, and certificate issuance on completion.
submissionsStorageattendancecertificatesissue-certificate()
unlocksA student logs in, finishes an online module and a lab session, submits a project, and earns a certificate.
G4Instructor apprun cohorts, grade, author~4–6 wks
draft
Instructor onboarding, dashboard, cohort detail, attendance, review, curriculum builder.
INS-02…08
wire
Attendance + grading persist; curriculum authoring writes courses/modules; instructor quals on file.
reviewsinstructor_qualstake-attendance()review-submission()publish-module()
unlocksAn instructor takes attendance, reviews a submission, and publishes a module to a cohort.
G5Scheduling — equipment-awarethe hard constraint~4–5 wks
draft
Term planner, equipment/resource manager, schedule builder, conflict view, master calendar.
SCH-01…05
wire
Equipment and rooms as bookable resources; sessions generated from the 12-week pattern; conflicts blocked.
resourcessessionsbookingsgenerate-sessions()check-conflicts()
unlocksStaff plan a term across all six trades and the system blocks an equipment double-booking.
G6Accreditation layer — WASCevidence, self-study, reporting~5–6 wks
draft
SLOs, standards crosswalk, evidence repository, self-study, action plan, CI dashboard, report generator.
ACC-01…08
wire
Standards + SLO tables, a mapping table, and an evidence flag added to existing records; reports build from live data.
standardsslosstandard_mappingsevidenceaction_plangenerate-report()
unlocksA course maps to standards + SLOs, a submission is flagged as evidence, and an annual report drafts itself from live data.
G7Funding, verification & scaleclose the loop, open the doors~4–5 wks
draft
Instructors mgmt, reporting, donations, public certificate verification, settings, donate page.
OPS-07…11MKT-09
wire
Donations + tuition credits, a public verify endpoint, and tenant onboarding for a second campus.
donationstuition_creditsrecord-donation()verify-certificate()onboard-tenant()
unlocksA donation ties to tuition credit, a certificate verifies publicly, and a second tenant runs fully isolated.
DELIVERY
How the gates bill & accept
G0 + G1 = the foundation milestone — Supabase stood up and the ops core live — anchored at the $5,000 starting build. $750/mo managed infrastructure runs from G1 onward (hosting, monitoring, backups, security upkeep).
G2 → G7 are scoped and quoted per gate, each a clean acceptance milestone: the client reviews the gate against its exit criterion, signs off, and that gate's features unlock for their tenant. Gates are sized to map onto grant cycles, so the build can be funded the way tuition is — a school that seeks grants for student tuition can seek them gate by gate for the platform too.
Why front-end-first matters for a client delivery: the seeded prototype (Plan A) is something Custom Image can show a board or a funder before the backend exists — it de-risks every gate. Plan B then lights each screen up without changing what was approved. Nothing the client signed off on gets rebuilt; it just goes live.