Build apps with PostgreSQL
Every Goodspeed app runs on PostgreSQL via Supabase: generated migration files, row-level security policies, and typed query results. Goodspeed generates PostgreSQL as a standard part of every app, so the output is a working codebase from day one, not a scaffold you have to finish yourself.
WHAT GETS GENERATED
Built into every PostgreSQL build
Every app Goodspeed generates with PostgreSQL includes these production-ready patterns, wired together from the first build.
| Item | Description | Strength |
|---|---|---|
| supabase/migrations/ generated schema | SQL migration files create the app's tables with proper foreign keys, indexes, and constraints. The DevAgent generates one migration per app, covering every data entity in the spec. | Schema |
| Row-level security policies per table | RLS policies enforce tenant isolation at the database level: users can only read and write their own rows without any application-layer guard needed. | Security |
| supabase gen types TypeScript output | supabase gen types --project-id generates a Database type from the live schema. All Supabase query calls reference this type so missing columns are type errors. | Types |
| Indexes for query performance | Generated migrations include indexes on foreign keys and common filter columns (user_id, created_at, status) so queries stay fast as row counts grow. | Performance |
| Full-text search via pg_trgm | When the app has a search feature, the generated migration enables pg_trgm and creates a GIN index on the searchable column for fast ILIKE queries. | Search |
Source: gas-template repository · Database
REAL GENERATED CODE
A snippet from a PostgreSQL app the studio shipped
This pattern comes directly from the gas-template codebase, the foundation every Goodspeed app is generated on. The studio generates PostgreSQL code like this for every app in the pipeline, not just a hello-world scaffold.
RLS migration
-- supabase/migrations/0001_initial.sql create table public.items ( id uuid primary key default gen_random_uuid(), user_id uuid references auth.users not null, title text not null, created_at timestamptz default now() ); alter table public.items enable row level security; create policy "Users see own items" on public.items for all using (auth.uid() = user_id);
Today's log
USE CASES BUILT ON POSTGRESQL
Where this stack ships
These app types use PostgreSQL as part of the generated stack. Each link goes to a full spec page with capabilities, scored ideas, and a pipeline walkthrough.
- Build a Fitness Tracker appBuilding a fitness tracker means wiring together daily logging, progress charts, Apple Health, and push reminders. Goodspeed generates all of that in a single build, not a patchwork of tutorials. The FITNESS TRACKER APP
- Build a Social App appBuilding a social app from scratch means solving hard infrastructure problems: real-time feeds, fan-out writes, notification delivery, and content moderation hooks. Goodspeed generates a complete sociSOCIAL APP
- Build a Habit Tracker appHabit trackers live or die on the loop: cue, routine, reward. Goodspeed generates a complete React Native habit tracker with streaks, reminders, and progress visualization, backed by Supabase so your HABIT TRACKER APP