Phase Status

Completed in this pass

  • Hugo marketing theme implemented with GooseHub visual language
  • Light and dark mode support via CSS variables + persistent toggle
  • Public pages added: home, pricing, FAQ, terms, privacy, provisioning success
  • Pricing content is data-driven via data/pricing.toml
  • Hosted plan forms post to a checkout API endpoint
  • Provisioning API scaffold added under services/provisioning-api
  • Stripe checkout + webhook handlers wired with env-driven configuration
  • Provisioning status endpoint added
  • Account page added with Stripe billing portal entry
  • Docs page linked in site navigation
  • Stripe webhook handler expanded for subscription lifecycle events
  • Basic webhook idempotency guard added
  • Export-by-email scaffold added for cancellation/lapse flows
  • Backup scheduler scaffold added for nightly backup jobs
  • Postgres-backed persistent store added for tenants/provisioning/exports/webhook events
  • Local Postgres docker-compose and Makefile workflow added for easier testing
  • Magic-link customer account auth flow added with encrypted account tables
  • Microsoft SMTP-compatible mailer configuration scaffolded
  • Admin seed script and endpoint tests added for auth/account flow
  • Development auth debug endpoint added
  • Customer portal moved to dedicated Node.js account subdomain routes (/, /overview, /billing, /exports, /security)
  • Customer portal route pages now load route-specific live account/billing/export/security data
  • Tenant activity and account audit event storage added for account timeline visibility
  • Export delivery now triggers GooseHub tenant /api/internal/exports and emails tenant-hosted signed download links

Not completed yet

  • Subscription lifecycle automation (renewal failure, suspend, cancel)
  • Real email provider wiring for exports
  • Customer-facing account dashboard data view