Supabase stays. It is the most sensible current home for Lucia’s structured operational data unless and until Lucia outgrows it for a real reason.
Runbook phase mapping
- Phase 1 — account access, project ownership, key references
- Phase 5 — staging database alignment, key cleanup, and environment wiring
Primary runbook page: 08 - Live Transition Runbook
Why Supabase is still in the stack
Supabase is not the problem.
For Lucia right now, Supabase gives:
- managed Postgres
- structured operational storage
- backups
- auth adjacency if needed
- sane developer velocity
That is enough for serious staging and likely enough for early real production too.
Lucia role
Supabase should be the source of truth for:
- bookings
- guests
- concierge requests
- operational state
- structured memory tables later
- audit / truth-state records later
What should not live only in Supabase
- ephemeral in-process session continuity
- short-lived distress/session state without durability planning
- anything that depends on single-process memory and pretends to be persistent
That is where Redis enters.
Database zones to think about
| Area | Purpose |
|---|
| operational tables | bookings, guests, payments, concierge, tasks |
| truth-state tables | requested / confirmed / in-progress / done |
| memory tables later | long-horizon Lucia memory, controlled retrieval |
| telemetry / audit later | action logs, event states, confirmations |
Setup checklist
Stage 1 — confirm posture
Stage 2 — harden usage
Stage 3 — future readiness
Credentials + account reference
Account access
| Item | Value |
|---|
| Account email | |
| Organization | |
| Dashboard URL | |
| Project name | |
| Project ID / ref | |
| Region | |
| MFA method | |
Core project references
| Item | Value |
|---|
| Project URL | |
| Project ref | |
| Database host | |
| Database name | |
| Postgres connection string | |
| Direct connection string | |
| Pooled connection string | |
Keys and secrets
| Secret / Token | Value or 1Password Reference | Notes | Rotated |
|---|
| anon key | | client-safe only when appropriate | |
| service role key | | engine-only | |
| JWT secret | | if relevant | |
| storage access key | | optional | |
Environment variable tracker
| Variable | Value / Reference | Used In |
|---|
SUPABASE_URL | | Engine |
SUPABASE_ANON_KEY | | Admin/client only if needed |
SUPABASE_SERVICE_ROLE_KEY | | Engine only |
DATABASE_URL | | Engine / tooling |
DIRECT_URL | | optional |
Schema / table notes
Current Lucia tables
Planned future tables
Notes / gotchas
- Supabase is good enough for this phase.
- Do not rip out a working database because “serious” sounds cooler.
- Replace it only when the product truly outgrows it.
Related pages