Workforce Scheduling
Rota
A scheduling platform for creating and managing employee rotas. Built for small teams that need something faster than a spreadsheet and simpler than enterprise workforce software.

Weekly schedule view with employee assignments and shift management.
Overview
The platform is multi-tenant: each organisation's rotas, staff, and shifts stay fully isolated, with managers getting full control and staff seeing only what applies to them.
- —Create and publish weekly rotas in minutes.
- —Each organisation's data is fully isolated (multi-tenant).
- —Role-based access for managers and staff.
- —Built for small hospitality teams, not enterprise HRMS.

Staff view of shifts.
Build
The editor is built for speed: creating a rota takes minutes, not the half hour it takes in a spreadsheet, with every interaction cutting steps between deciding a schedule and publishing it.
Next.js and TypeScript handle the frontend. PostgreSQL enforces multi-tenant isolation at the row level, with role-based access checked on both the UI and the API. Session auth keeps the login flow simple without a third-party provider.

Holiday requests — employee submission view.

Swap requests — shift exchange between staff.
Frontend
React · Next.js · TypeScript
Schedule views, rota editor, and role-conditional UI for managers and staff.
Backend
Next.js API Routes
Business logic, role enforcement, and data access with organisation-scoped queries.
Database
PostgreSQL
Multi-tenant schema with organisations, employees, rotas, and shift records.
Auth
Session-based
Role-based access control with separate permissions for managers and staff.

Full platform view — schedule builder, team overview, and role-based navigation.
Multi-tenant isolation was the one decision that had to be right from the first database query. Retrofitting row-level isolation after the fact would have meant rewriting almost every query in the app.