Storage model
Each project will receive a stable UUID. File contents are persisted in a Supabase Postgres table using JSONB for metadata and a compressed text column for code. Large assets will live in Supabase storage buckets referenced by the project record.