| Layer | Choice |
|---|---|
| Backend | Django 5.x (Python) |
| Styling | Tailwind CSS (django-tailwind or equivalent; CDN allowed for early scaffold) |
| Interactivity | HTMX + Alpine.js where useful — no heavy SPA for MVP |
| Database | PostgreSQL (SQLite OK for local scaffold only) |
| Auth | Django built-in + custom roles/permissions (django-allauth optional later) |
| Payments | Stripe subscriptions + webhooks + Customer Portal |
| Recordings storage | S3-compatible via django-storages + boto3 — prefer Cloudflare R2 |
| Hosting target | Railway, Render, or Fly.io |
Repo layout (code)
lauren/
config/ # Django project settings & urls
accounts/ # User + roles
practitioners/ # Directory + verification
catalogue/ # Sessions & timetable
memberships/ # Plans + Stripe entitlement
recordings/ # Gated library + consent
core/ # Marketing, legal stubs
templates/ static/
GitHub: Tyneside-Software/lauren (private). Write access for contractors is via the org team lauren-outsource — that repo only, never this public site-generator.
Where it runs
| Environment | Purpose |
|---|---|
This docs hub (tyneside.software/lauren/) |
Public plans only. Not the app. |
| Private deployed sandbox (next) | Live Lauren app for the outsource team to work against. Disconnected from tyneside.software. Not public, not indexed. Same host family as below (Railway / Render / Fly) unless we pick otherwise. |
lauren.tyneside.software |
Future public product. DNS and deploy only when we are ready to go live — not the contractor workbench. |