Australian Workforce Management Solution
Roster scheduling, time tracking, and team management for shift-based businesses
Website β’ Live Demo β’ Documentation
CrewCircle is a workforce management platform built for Australian small and medium businesses. It helps you:
- π Create rosters in minutes with drag-and-drop scheduling
- β° Track time with GPS-verified clock in/out
- π₯ Manage teams with role-based access control
- π Generate reports for payroll and compliance
- π Notify employees instantly when rosters change
Data hosted in Sydney (AWS ap-southeast-2) for AU compliance and fast performance.
crewcircle/
βββ apps/
β βββ web/ # Next.js 16 web application
β β βββ src/
β β βββ app/ # Next.js App Router pages
β β βββ components/ # Shared React components
β β βββ features/ # Feature modules (roster, timesheets, team)
β β βββ lib/ # Libraries
β β β βββ clerk/ # Clerk authentication + user service
β β β βββ neon/ # NeonDB PostgreSQL client
β β βββ store/ # Zustand state management
β βββ mobile/ # React Native mobile app (Expo)
βββ packages/
β βββ validators/ # Zod validation schemas
βββ docs/ # Documentation and wiki
| Component | Technology |
|---|---|
| Frontend (Web) | Next.js 16, React 19, TypeScript |
| Mobile App | React Native, Expo |
| Database | NeonDB (PostgreSQL) |
| Authentication | Clerk |
| Styling | Tailwind CSS v4 |
| Payments | Stripe |
| Deployment | Vercel (Web), EAS (Mobile) |
- Node.js 20+
- Yarn package manager
- NeonDB account (PostgreSQL)
- Clerk account (authentication)
- Stripe account (payments)
# Install dependencies
yarn install
# Copy environment variables
cp .env.example .env.local
# Edit .env.local with your credentials# NeonDB (PostgreSQL)
DATABASE_URL=postgresql://user:password@host/database?sslmode=require
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx
CLERK_SECRET_KEY=sk_test_xxx
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/roster
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/roster
# Stripe Payments
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx
STRIPE_PRICE_ID=price_xxx
# App
NEXT_PUBLIC_SITE_URL=http://localhost:3000# Start web app
yarn dev
# Open http://localhost:3000Visit /demo to try the app without signing up. Select a demo user role to explore features.
- Drag-and-drop scheduling with visual calendar
- Automatic conflict detection
- Copy previous week's roster
- Publish rosters with one click
- GPS-verified clock in/out
- Track actual hours vs rostered
- Break tracking
- Employee invitation via email
- Role-based access (Owner, Manager, Employee)
- ABN validation for Australian businesses
- Automatic timesheet generation
- CSV export for payroll
- Labour cost tracking
- Free tier (up to 5 employees)
- Starter plan ($4 + GST / employee / month)
- Stripe-powered payments
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prodAdd environment variables in Vercel dashboard.
- Create project at neondb.tech
- Copy connection string
- Run migrations (schema in
docs/)
cd apps/web
# Run E2E tests
npx playwright test
# Run with UI
npx playwright test --uiSee docs/wiki/ for detailed guides:
Proprietary - All rights reserved by Sensible Analytics
Built with β€οΈ in Australia