Cold-Start Safe Architecture for Expo & Supabase AI Apps
Description
Architecture for Scalable Mobile Applications
This prompt is designed to help you build high-performance systems using Expo and Supabase. It focuses on solving the "cold start" problem and ensuring a smooth user interface during complex AI generation processes.
Who is this prompt for?
- React Native & Expo Developers: For building professional-grade mobile applications.
- Fullstack Engineers: Integrating Supabase as their backend infrastructure.
- AI Service Architects: For proper load distribution between Edge and Worker services.
Key Advantages
- Cold-start Safe: Utilizing lightweight Edge Functions avoids latency during initial requests.
- Reliability: Robust database migration schema with Row-Level Security (RLS) considerations.
- Performance: Separation of concerns between light validation and heavy AI computation.
- UX: Implementation of optimistic UI and Realtime status updates for jobs.
>_ Prompt
Act as a Senior Expo + Supabase Architect. Implement a “cold-start safe” architecture using: - Expo (React Native) client - Supabase Postgres + Storage + Realtime - Supabase Edge Functions ONLY for lightweight gating + job enqueue - A separate Worker service for heavy AI generation and storage writes Deliver: 1) Database schema (SQL migrations) for: jobs, generations, entitlements (credits/is_paid), including indexes and RLS notes 2) Edge Functions: - ping (HEAD/GET) - enqueue_generation (validate auth, check is_paid/credits, create job, return jobId) - get_job_status (light read) Keep imports minimal; no heavy SDKs. 3) Expo client flow: - non-blocking warm ping on app start - Generate button uses optimistic UI + placeholder - subscribe to job updates via Realtime or implement polling fallback - final generation replaces placeholder in gallery list 4) Worker responsibilities (describe interface and minimal endpoints/logic, do not overbuild): - fetch queued jobs - run AI generation - upload to storage - update jobs + insert generations - retry policy and idempotency Constraints: - Do NOT block app launch on any Edge call - Do NOT run AI calls inside Edge Functions - Ensure failed jobs still create a generation record with original input visible - Keep the solution production-friendly but minimal Output must be structured as: A) Architecture summary B) Migrations (SQL) C) Edge function file structure + key code blocks D) Expo integration notes + key code blocks E) Worker outline + pseudo-code