Challenge
Clevergig helps Dutch hospitality venues, events companies, and retailers plan shifts, clock hours, and pay staff. Before us, operators still lived in Excel - and staffing agencies who resold the product had to build their own integrations from scratch. Clevergig needed both the platform to scale past single-venue deployments and a partner surface that distribution partners could adopt in a day
Discovery
We shadowed three operators across a restaurant group, a stadium events team, and a flower-festival organizer. The common thread: 20% of shifts get last-minute-changed. If the software can't handle a cancellation in under 5 minutes, operators fall back to WhatsApp and spreadsheets. That became the design constraint
What we shipped
Scheduling engine
- Per-role constraints: certifications, visa status, max-hours rules
- Dutch labour-law checks built in: rest periods, 18+ work restrictions, night-shift compensation
- Drag-and-drop week planner on Hotwire - real-time collaborative editing, no SPA needed
Worker mobile app (React Native)
- Clock-in/out with geofencing, offline-capable for venues with spotty WiFi
- Shift swap marketplace: worker offers shift, notifications push to eligible colleagues
- Earnings view with real-time payroll preview - fewer HR questions per week
Partner iframe
- White-label theming via CSS variables - full colour/logo customization with zero code
- postMessage API for event handoff to host app (auth, deep-link, analytics)
- Staffing agencies embed the full flow in under a day - 12 integrations shipped in the first 6 weeks
Payroll integrations
- One-click exports for Nmbrs, Loket, and AFAS - the three dominant Dutch payroll platforms
- Monthly close reduced from 2 days of reconciliation to a 10-minute review
Why this stack
Rails because the scheduling domain is deeply relational - constraints, labour rules, overlapping shifts. Hotwire for the planner because SPA complexity wasn't buying us anything vs. server-rendered Turbo frames. React Native for the worker app to share the codebase across iOS and Android without maintaining two teams. PostgreSQL ranges + exclusion constraints to make double-booking literally impossible at the DB level
Outcome
- 10k+ workers scheduled weekly across hundreds of venues
- 12 partner integrations live in the first 6 weeks post-launch
- Shift-fill time dropped from hours to minutes for last-minute cancellations
- Monthly payroll close: 2 days → 10 minutes
"Our operators no longer open a spreadsheet - they plan a week of shifts in 20 minutes. That's the measurable product difference Aimeice made"