Next.js App Router + Supabase Auth + Postgres + Storage + Sightengine + public feed.
- Create a free project at supabase.com.
cp .env.local.example .env.localand fill keys.- Run migrations in order in the SQL Editor:
001_phase1_core_schema.sql002_phase2_storage_bucket.sql003_phase3_moderation.sql004_phase4_feed_search.sql
- Storage + Sightengine +
ADMIN_USER_IDSas in earlier phases. npm install && npm run dev
- Home
/masonry loads a first batch; scrolling near the bottom loads more (Network:/api/feed?offset=…) - Only
approvedimages appear (apending/reviewrow never shows in the feed) -
/search?q=<username>returns matching approved pins - Click a pin →
/images/<id>shows image + uploader; save to board works when logged in
Free plan has no Supabase image transforms — see docs/image-serving.md. We serve signed originals with responsive sizes. Ranking is newest-first only (no recommendations yet).
"# pinza"
"# pinza"