Running a company, not just its HR
Employees, departments, offices and roles, alongside attendance, leave, overtime, shifts and concerns, on the web and on a phone.
Context
Every company running staff has the same monthly obligations: attendance, annual leave, public holidays, overtime and payroll. The platform is one deployment serving many companies at once, each with its own policies, its own people and no visibility of the others, with plans that scale by headcount as a company grows rather than forcing a migration to different software.
The problem
The work is not hard, there is just a lot of it and it lives in too many places. Attendance sits on paper or in a spreadsheet and gets collected after the fact. Annual leave is requested by email, with entitlement, carry-over and public holidays tracked by hand, which is why the disagreements are always about how many days someone has left. Overtime is reconstructed at the end of the month from memory and notes. Nobody can answer who is in today, how much leave someone has left or what overtime is building up without going and counting, and when the three sources disagree, someone has to decide which one is right.
What we did
We made the things that have to agree come out of one system instead of three. Attendance is recorded as it happens rather than collected afterwards: staff clock in against a code on a screen by the entrance, which is re-issued on a timer so a photographed code is worthless within the minute and the register reflects who was actually there. Annual leave, public holidays, overtime and shift rules are configured per company rather than assumed, because the alternative is a settings page that fits the first customer and nobody after them. Because all of it sits on the same data, payroll becomes an export rather than an investigation.
What we built
The company and its people, the hours they work, the time they take off and the things they raise, on the web and on a mobile app, serving many companies from one deployment.
Attendance that records itself
Staff clock in and out by scanning a code at the entrance, from the web or their phone. A code belongs to an office and can carry a geofence, so a scan has to happen within a set radius of the building. The register builds itself and exports for payroll rather than being retyped.
Annual leave on each company’s own rules
Entitlement, accrual, carry-over limits, notice periods, maximum consecutive days and whether a request needs documents, all configured per company, so the system matches the contract staff actually signed.
Public holidays handled once
Company holiday calendars feed entitlement and attendance automatically, instead of being remembered separately by whoever is doing the maths.
Overtime and time made up
Overtime accrues against a policy as it happens, and hours made up rather than paid are tracked alongside it, the case most systems quietly ignore.
Shifts, not one fixed day
Shift templates assigned to staff, so expected hours follow the rota rather than a nine-to-five that suits nobody. Companies also set their own work start and end times, grace period before someone counts as late, timezone and currency.
A route for raising concerns
Staff raise a concern under a category: harassment, discrimination, safety, workload, management, policy, compensation or other. Each carries a severity and can be submitted anonymously. Routing rules send a category to a named person automatically, and the thread holds comments, an assignee, a status and a resolution.
Getting a company in without a project
Bulk employee import from a spreadsheet with a sample file and a per-row result, or a direct import from Google Workspace. Invitations, departments and offices are set up in the admin, and onboarding progress is tracked so a half-finished setup is visible.
A mobile app for the people not at a desk
An Expo app over a versioned API covering clock in and out, today’s attendance, leave balances, requests and clashes, public holidays and a personal dashboard. Device tokens and notification preferences drive push, so a leave decision reaches the person who asked.
Plans, subscriptions and billing
Starter, growth, business and enterprise plans, each with its own feature set, held as subscriptions with line items. Companies see their invoices and reach a billing portal from inside the app, and a company that grows moves plan rather than moving software.
One deployment, no leakage between companies
Every record carries a company and every query is scoped to it, so one installation serves many companies with no visibility between them. A separate platform console manages companies, plans and internal staff, with its own login and mandatory two-factor authentication.
An audit log of what changed
Changes are recorded with who made them and when, so an attendance correction or a leave approval can be traced later rather than argued about.
Answers without counting
Management sees who is in, who is often late and what overtime is building up while it is happening, rather than discovering it on payroll day.
Results
Attendance, leave, public holidays and overtime sit on the same data, so the answers are on a screen rather than at the end of a count. Entitlement disputes end because both sides read the same balance. Management sees lateness and overtime while they build, and the figures payroll needs come out as an export rather than being assembled by hand.
More work
All case studiesGot a project that looks like this?
Tell us what you're trying to build, or what has stalled. We'll tell you honestly whether we're the right people for it.

