A small app for teams and friends to track and showcase work, with voting (boost) on posts.
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS + shadcn-style UI (Radix)
- Backend/Auth: Supabase
- Deployment: Vercel-ready
-
Install dependencies
npm install
-
Environment variables Copy
.env.local.exampleto.env.localand set:NEXT_PUBLIC_SUPABASE_URL— your Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY— your Supabase anon (public) key
-
Database In the Supabase Dashboard → SQL Editor, run the migration:
- Open
supabase/migrations/20250213000000_create_showcase_posts.sql - Paste and run it in your project
- Open
-
Run locally
npm run dev
Open http://localhost:3000. Use Add post (sign-in required for posting); the feed and boost work without auth.
- Registry:
modules/registry.json— raid-showcase entry with tags andlayout: "wide". - Module UI:
app/modules/raid-showcase/page.tsxandmodules/raid-showcase/components/(Feed, SubmitPostDialog, SummaryWidget). - API:
app/api/modules/raid-showcase/— GET (feed), POST (create), GET summary, POST boost.
Creating a post requires a signed-in user. The client sends Authorization: Bearer <access_token> from supabase.auth.getSession(). Configure Supabase Auth (e.g. email or OAuth) in your project so users can sign in.
To sign up and sign in without waiting for a confirmation email:
- Open Supabase Dashboard → your project.
- Go to Authentication → Providers → Email.
- Turn off “Confirm email”.
- Save.
After that, new sign-ups get a session immediately and are redirected to the showcase. Turn “Confirm email” back on for production if you want verified emails.