← Work

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.

ReactNext.jsTypeScriptPostgreSQL
Rota — scheduling interface showing weekly employee rota

Weekly schedule view with employee assignments and shift management.

Overview

Rota is a scheduling platform for creating and managing employee rotas. It focuses on doing one thing well — making it fast to build, edit, and share weekly schedules for small teams in restaurant and hospitality environments.

The platform uses a multi-tenant architecture so each organisation's data is cleanly isolated, with role-based access giving managers full control while staff only see what's relevant to them.

  • Create and publish weekly rotas in minutes.
  • Multi-tenant: each organisation's data is fully isolated.
  • Role-based access for managers and staff.
  • Designed specifically for small hospitality teams.

The Problem

Most scheduling in small hospitality teams happens in spreadsheets or through enterprise HRMS tools designed for much larger operations. Spreadsheets break down quickly as teams grow or shifts change frequently. Enterprise tools come with complexity that small operations simply don't need.

There's a clear gap for something purpose-built — fast to use, simple to understand, and designed around the actual workflow of a small team rather than an enterprise procurement checklist.

Staff shifts view

Staff view of shifts.

Design Decisions

The scheduling interface prioritises speed — creating a new rota should take minutes, not half an hour. Every interaction was designed to reduce the number of steps between deciding what the schedule should look like and saving it.

Multi-tenant isolation was a core architectural decision from the first database query. Each organisation operates completely independently, which simplifies permission logic and makes the system significantly easier to reason about over time.

Holiday Requests — employee request form

Holiday requests — employee submission view.

Swap Requests — shift swap management

Swap requests — shift exchange between staff.

Implementation

Built with Next.js and TypeScript on the frontend for fast client-side rendering of schedule views. PostgreSQL handles the multi-tenant data model with strict row-level isolation between organisations.

Role-based access is enforced on both the frontend (UI visibility) and server (data access). Session authentication keeps the login flow simple without requiring a third-party auth provider.

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.

Rota — full platform overview

Full platform view — schedule builder, team overview, and role-based navigation.

What I Learned

  • Operational software has very different UX requirements than consumer apps — reliability and clarity matter far more than novelty.
  • Multi-tenant data architecture has to be planned before writing the first query. Retrofitting it later is painful and error-prone.
  • Focusing on a single core workflow and doing it well is harder than it sounds — there's constant pressure to add features that dilute the original purpose.