Skip to content

Project Status Dashboard ​

Where we are, what's next, and what's blocking us. Updated as phases are completed.

Last updated: 2026-03-06


Phase Progress ​

Completed ​

PhaseNameWhat Was Built
1FoundationGo scaffold, chi router, PostgreSQL + Redis, migrations, health check, middleware stack, all 3 frontend app scaffolds (Next.js 16), shared UI/API client packages, domain-based org routing with custom domains, DNS verification, Redis caching

In Progress ​

PhaseNameStatus
2Auth & Multi-TenancyCode complete — validating. E2E blocked on Clerk API keys.

E2E Validation Pending

Phase 2 (Auth & Multi-Tenancy) is code-complete but E2E testing is blocked on Clerk API keys. See Blockers.

Up Next ​

PhaseNameWhat to Build
3Core Domain ModelsSpecialties, Specialists, Patients, Services — the data layer everything depends on

Planned ​

PhaseNameNotes
4Scheduling & AppointmentsDepends on Phase 3. Most complex feature.
5Forms & Custom FieldsCan parallel with Phase 4
6Documents & PDF GenerationDepends on Phase 5
7Treatment Plans & Exercise LibraryRegulatory boundary starts here
8Automations & WebhooksDepends on Phase 4, 5
9Telemetry ServiceCan parallel with Phases 4-8
10Compliance & Security HardeningOngoing concern
11Dashboard & StatsDepends on Phases 4, 5, 9
12Testing (dedicated)Ongoing
13Frontend Integration ContractDepends on Phases 4, 5

Current Focus: Phase 2 Validation → Phase 3 ​

Phase 2 — Remaining validation ​

TaskStatus
First login, user auto-provisioned in API databaseBlocked (Clerk keys)
Sign in, Clerk token, GET /v1/me returns correct user + org contextBlocked (Clerk keys)
Org switching from Clinic app, subsequent API calls return scoped dataBlocked (Clerk keys)
Superadmin endpoint (POST /v1/organizations), 403 for non-superadmin rolesBlocked (Clerk keys)
Blocked user with valid Clerk token, 403 from APIBlocked (Clerk keys)

Phase 3 — Core Domain Models (next) ​

The data layer for the primary entities that appointments, forms, and scheduling depend on.

TaskFeatureStatus
specialties table + RLS + CRUD APISpecialtiesNot started
specialists table + RLS + CRUD APISpecialistsNot started
Weekly availability + date overrides + timezoneSpecialistsNot started
patients table + patient_org_profiles + RLSPatientsNot started
Patient onboarding + guest registrationPatientsNot started
services table + plan types + CRUD APIServicesNot started
products table for physical productsServicesNot started

Exit criteria: All core entities have working CRUD APIs, RLS policies, and pass integration tests.


Blockers ​

BlockerImpactAction Needed
Clerk API keys not configuredE2E validation of Phase 2 cannot runSet up Clerk project and add keys to .env

Pending Decisions ​

These decisions need to be made before or during the relevant phase.

DecisionNeeded BeforeOptionsStatus
PDF rendering enginePhase 6ChromeDP, wkhtmltopdf, GotenbergOpen
i18n scopePhase 7See TranslationsOpen
Email/SMS providerPhase 8AWS SES, SendGrid, Postmark / Twilio, AWS SNSOpen
Payment integrationPhase 11Stripe, local Romanian provider, deferredOpen
Mobile app approachPhase 13React Native, Flutter, responsive web onlyOpen

Known Documentation Gaps ​

The apps/docs/gaps/ tree was retired on 2026-08-02; the four items that were real, decided-or-open and recorded nowhere else were salvaged into platform-completion.md → Salvaged documentation debt. The list below is the historical inventory and is no longer tracked as a unit.

Pre-Launch (Critical) ​

  1. Testing Strategy & Guidelines
  2. CI/CD Pipeline & Deployment
  3. Frontend Integration Contract
  4. Data Migration Plan
  5. Developer Onboarding Guide

Pre-Scale (Important) ​

  1. Error Handling Standards
  2. API Versioning Strategy
  3. Caching Strategy
  4. Rate Limiting Details
  5. Email & SMS Templates

The full gap list is no longer in the docs tree — see git history for apps/docs/gaps/.


Build Timeline ​

Phase:  1  2  3  4  5  6  7  8  9  10 11 12 13
        |--1--|  Done (Foundation)
           |--2--|  Validating (Auth & Multi-Tenancy)
              |-----3-----|  <-- NEXT
                      |--------4--------|
                      |-----5-----|
                                  |--6--|
                            |------7------|
                                  |-----8-----|
              |------9 (parallel)-------------|
                                           |10|
                                              |11|
        |---12 (ongoing)--------------------------------------|
                                                 |--13--|