Tightknit is a neighborhood time-banking app where people trade hours instead of money. Users can post requests, volunteer to help, chat with neighbors, mark tasks complete together, and track their hour balance.
- Next.js 16 (App Router) + React 19 + TypeScript
- Supabase Auth + Postgres + Realtime
- Tailwind CSS 4 + custom route-level styles
- Sign up or sign in.
- Complete onboarding (location + "superpower" skill).
- Browse nearby open requests on
Home. - Post a request with a duration on
Ask. - Offer help from a request detail page and start a chat.
- Both participants acknowledge completion to finalize and apply hour updates.
- Manage profile, radius, hour gifting, and post history from
You.
app/auth/*: auth screens (sign up, sign in, password reset, callbacks)app/onboarding/*: location and superpower onboardingapp/(main)/home: nearby request feed and hour balanceapp/(main)/ask: create a new help requestapp/(main)/request/[id]: request detail + "I can help" actionapp/(main)/messages: conversation listapp/(main)/messages/[room_id]: real-time chat + completion acknowledgementapp/(main)/you: profile, radius, gifting hours, and history
Create a .env.local file in the project root:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_or_publishable_keyThese are required by:
lib/supabase/client.ts(browser client)lib/supabase/server.tsandmiddleware.ts(server/middleware auth handling)
npm install
npm run devThen open http://localhost:3000.
- The app relies on Supabase tables and RPC/functions referenced throughout the main routes (for example profile search, gifting hours, and listing completion acknowledgement).
- Apply migrations to your Supabase project before testing full flows.
npm run dev- start local dev servernpm run build- build for productionnpm run start- run production buildnpm run lint- run ESLint