Single-page portfolio site that dynamically displays AI prototypes from Supabase. Each card opens an inline iframe to the prototype's Vercel deployment.
- Create a Supabase project at supabase.com
- Open the SQL Editor and run
supabase-setup.sql— this creates theprojectsandemailstables with RLS policies and seeds two starter projects - Copy your project URL and anon key from Settings → API
cp .env.local.example .env.local
# Fill in NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY
npm install
npm run dev- Push this folder to a GitHub repo
- Import the repo in Vercel
- Add the two env vars (
NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEY) in Vercel project settings - Deploy
Insert a row into the projects table via Supabase dashboard or SQL:
insert into projects (title, description, emoji, category, tags, vercel_url, sort_order)
values ('My New App', 'Description here', '🚀', 'tool', array['ai', 'demo'], 'https://my-app.vercel.app', 3);The site revalidates every 60 seconds — new projects appear within a minute.
- SSR with ISR —
page.tsxfetches projects server-side, revalidates every 60s - Client-side interactivity — filter bar, modal, and email form are client components
- No CSS included — semantic HTML with class names only; design is applied separately
- RLS security — anon users can read projects and insert emails; mutations require service_role