Apron — Shift Management Platform

Fullstack developer — from database (Supabase) through design and logic to deployment.

Apron

Overview

A comprehensive B2B staffing platform connecting companies with temporary workers in Denmark, built with modern web technologies and strict business rules. I lead the project as fullstack developer: database design and implementation in Supabase, business logic, UI/UX, and production deployment.

The platform solves a concrete business need: companies post shifts, workers browse and apply, and the system enforces rules such as rate locking and cancellation penalties so that both sides have clear, auditable terms. The product is used in production and has to handle real users, payments, and compliance (including GDPR), so reliability and data integrity were priorities from the start.

Technology Stack

  • Framework: Next.js 14+ (App Router)
  • Database: Supabase (PostgreSQL + PostGIS for location search)
  • Authentication: Supabase Auth
  • Styling: Tailwind CSS + Shadcn UI
  • Language: TypeScript (Strict Mode)
  • State: React Server Components + Server Actions
  • Validation: Zod schemas
  • Edge Functions: Deno (CPR encryption/decryption)

Key Features

  • Manager system: company contact persons with privacy-protected details
  • Public Job Board with guest access and SEO-friendly URLs
  • Rate locking: worker hourly rate frozen at acceptance, immutable for payment
  • 24-hour cancellation penalty: automated penalty if company cancels <24h before shift
  • Relational skills system (shifts ↔ skills, workers ↔ skills) with verification
  • PostGIS-based location search and distance calculation
  • Timesheets, payments, penalties, audit trail; GDPR compliance
  • Multilingual (English/Danish), responsive mobile-first design

Role in the project

Fullstack developer from the ground up: Supabase schema and RLS, Next.js app (company dashboard, worker job board, applications, timesheets, billing), business rules (rate locking, penalties, skills), and deployment.

I was responsible for the full lifecycle: defining the data model and security (RLS policies), implementing the API and server actions, building the company and worker interfaces, and setting up the deployment pipeline. The stack was chosen for speed of development and scalability — Supabase for backend and auth, Next.js App Router for a modern React experience with server components, and TypeScript throughout for type safety and maintainability.

Outcomes

Apron is live and in use. The system supports the full flow from shift creation to worker application, timesheet approval, and billing. The combination of rate locking, cancellation rules, and skills matching gives both companies and workers clear expectations and reduces disputes. The codebase is structured so that new features (e.g. additional roles, integrations) can be added without rewriting core logic.

View live app → View on GitHub →

← Back to Projects