Planning material — fictional examples, no production behavior

Client Portal Readiness Checkpoint — 2026-07-21

Status

Working checkpoint — point-in-time assessment, not a production-readiness claim. This document records where the client portal exploration stopped on 2026-07-21 and the recommended place to resume. It supplements the revised plan; it does not approve hosted deployment, real client data, or public release.

Current verdict

The repository is ready for low-risk feature exploration against a local Next.js and Supabase stack. It is not yet ready for production client data, hosted Vercel and Supabase environments, or public MVP release.

Area Assessment
Local feature development Ready, with testing-foundation work first
Governed AI-assisted changes Operational with human planning and merge gates
Hosted staging Not yet ready
Real client data Not ready
Public MVP release Not ready

Evidence reviewed

At this checkpoint:

These results establish a useful architecture demonstration. They do not yet establish that tenant isolation and client workflows will remain correct as the schema and application grow.

Primary readiness gap

The most important missing foundation is automated application and database integration coverage. Most existing tests exercise the governed Codex workflow; application coverage is limited.

Before accumulating client-facing features, automated tests should prove:

Continuous integration should start an isolated Supabase stack, apply migrations, lint the database, create at least two tenants, and fail if either tenant can observe the other’s records.

Architecture work before feature expansion

The server-rendered workspace and JSON:API handler currently reach Supabase through separate query paths. They should share an application service rather than duplicate authorization, query, and error-handling behavior.

The intended shape is:

Server-rendered page ─┐
                      ├→ Engagement application service → Supabase
JSON:API handler ─────┘

The Server Component does not need to make an HTTP request to its own API. The shared service should provide the reusable application boundary, while JSON:API serialization remains at the transport boundary.

Near-term supporting improvements include:

Gates before hosted staging

Before connecting live Vercel and Supabase projects:

Hosted staging should begin without real client data and should preserve the ability to run the same workflows locally.

Gates before public MVP release

Treat public visibility as its own governed milestone. Before release:

No demo identity, client record, private resource identifier, or operational credential should become part of the public history.

Use one bounded, human-approved issue for each outcome:

  1. Add Supabase integration and cross-tenant RLS tests to CI.
  2. Introduce a shared engagement application service and consistent errors.
  3. Add environment validation and a one-command local verification path.
  4. Design invitation-only onboarding and organization membership management.
  5. Add engagement detail and activity history.
  6. Add comments and change requests.
  7. Add explicit human approval tasks.
  8. Add private file references with narrowly scoped access.
  9. Establish hosted staging on independently owned Vercel and Supabase projects.
  10. Complete public-release hardening and an MVP readiness review.

Stripe synchronization, agreement-provider integration, and AI-assisted client workflows should remain deferred until the collaboration surface and tenant tests are stable.

Resume here

Create and plan the next client-portal engineering issue with this outcome:

Add local Supabase integration tests that rebuild the database, create two organizations and users, prove same-tenant access, prove cross-tenant denial, exercise the authenticated engagements JSON:API endpoint, and run the database checks in continuous integration.

Review that issue’s plan specifically for test isolation, deterministic fixtures, CI runtime cost, and whether the tests exercise both application authorization and PostgreSQL row-level security. Do not begin broader feature work until this foundation is merged and reliably green.