A team task management web app built with Next.js and Supabase.
- Three user roles — Super Management, Management, and Workers
- Multi-team support — managers can belong to multiple teams simultaneously
- Task lifecycle — create, assign, track, and complete tasks with priority and due dates
- Worker accounts — management creates worker accounts with forced password change on first login
- Team scoping — managers only see tasks and workers within their teams
| Role | Can Do |
|---|---|
| Super Management | Create teams, create managers, assign managers to teams, see all data |
| Management | Create tasks and workers within their teams, view team dashboards |
| Worker | View assigned tasks, update status (In Progress / Complete / Can't Complete) |
- Next.js 16 — App Router, Turbopack
- Supabase — PostgreSQL database + Auth
- Tailwind CSS v4
- TypeScript
- Node.js 18+
- A Supabase project
npm installCopy .env.local.example to .env.local and fill in your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
Run the SQL schema in your Supabase SQL editor (see supabase/ directory).
npm run devOpen http://localhost:3000.
Navigate to /setup to create the Super Management account. This can only be done once.
/setup— create the Super Management account/management/teams/new— create one or more teams/management/team/new— create managers and assign them to a team- Team detail page — use "Add Existing" to assign a manager to additional teams
/management/workers/new— add workers, select their team/management/tasks/new— create tasks, select team and assign to a worker
npm run buildfails due to a bug in Next.js 16.2.6 (InvariantError: Expected workStore to be initialized). Dev mode works fine. Watch for a fix in 16.2.7+.