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
Categories:
Models:
Output format: