Use our product
Leaveo, self-service. Free forever for up to five active people, paid per active user above that, assisted setup for larger or migrating organisations.
Capabilities
Everything below is capability we exercise on our own platform, not a list of technologies we have read about. Where something is built but not yet released, we say so.
The authoritative half of the product.
We build stateless APIs over a managed relational database, with tenancy enforced in the authorization layer rather than hoped for in queries. Business rules, working-day arithmetic, entitlement math and audit history live on the server, where they can be tested once and trusted everywhere.
Scheduled and durable work runs through database-leased workers with an inbox/outbox pattern, so a retry never double-charges and a crash never loses an event.
Three deployable surfaces, one design system.
Single-page applications built on React and TypeScript, compiled to immutable static artifacts that any edge or web server can hand out. Our platform ships three of them — a public marketing surface, the customer application, and a separate operator console — so a change to one cannot widen the blast radius of another.
Chrome comes from shared primitives: one modal built on the native dialog element, one toast system, one icon set, one token file that owns every colour and spacing value. Feature code composes; it does not redefine.
Arabic as a first-class language, not a mirrored screenshot.
Language is a persisted user preference resolved on the server, so a person's choice follows them across devices and sessions instead of living in one browser. Every user-facing string goes through a translation layer with feature-namespaced keys, and key parity between locales is enforced by a verification step in the build rather than by review.
Layout uses logical CSS properties so direction flips cleanly, and user-entered data — names, teams, leave types — is rendered with automatic direction detection instead of being translated or reordered.
The part most products get wrong quietly.
Hosted checkout with a payment provider, signature-verified webhooks, and an idempotent event pipeline so a replayed or out-of-order notification cannot corrupt subscription state. Seat quantity reconciles to the authoritative active-user count; pending invitations reserve capacity without being billed.
We model the unglamorous cases explicitly: first payment failure gets a recovery period before restriction, cancellation preserves paid-through access, downgrades apply at renewal after limit checks, and an operator fallback exists for every self-service path.
Built on our platform; released per plan as they pass their gates.
Calendar synchronisation behind a single provider adapter — Google Calendar and Microsoft Graph — plus a plain ICS subscription feed that works with anything, including Apple Calendar, without an OAuth dance. Refresh tokens are encrypted at rest, state is single-use and hashed, and a scheduled poller retries failures per event rather than abandoning a whole batch.
Team chat delivery through Slack and Microsoft Teams incoming webhooks for channel digests and approval announcements, and a Slack application for personal direct messages, with users matched by verified email.
A pyramid with a written rule for every layer.
The server is the authority for validation, so business rules are proven once with parameterised API tests asserting real problem responses. Component tests cover only what genuinely lives in the client — password confirmation, modal guards, interaction affordances — instead of mirroring every server constraint into a second, weaker copy.
End-to-end tests are deliberately sparse, tagged into an enforced smoke and regression taxonomy, and reserved for journeys where a user genuinely cannot proceed without visible feedback. Every requirement is traced to the tests covering it, and the release gate reads that trace.
Boring on purpose.
Infrastructure defined as code with locked providers, reviewed plans and per-environment remote state. The API ships as one immutable Linux image addressed by digest; web artifacts publish independently. Database migration runs as its own role with a DDL credential while the running application holds only DML rights.
Releases are ordered so old and new processes coexist against an expanded schema, feature controls enable behaviour after the code is already out, and contraction happens a release later. Recovery is rehearsed: point-in-time restore, an independently administered encrypted copy, and a restore drill on a schedule with recorded recovery objectives.
Default to less.
Customer sessions and operator sessions are separate realms with separate logins, token audiences and cookies — the operator console is not linked from public navigation and does not share a session with anyone's workspace. Public content and both sign-in paths work fully with analytics declined.
Optional measurement stays off until the current policy version is accepted, choices are stored as versioned receipts, and event payloads are minimised by design: no names, no email addresses, no raw addresses, no leave content, no balances.
How we engage
Leaveo, self-service. Free forever for up to five active people, paid per active user above that, assisted setup for larger or migrating organisations.
You own the market and the customers; we own the engineering line — architecture, delivery, quality and operations — until it can be handed over cleanly.
A migration that has to be reversible, a billing integration that has to be idempotent, an application that has to work in Arabic. Scoped, evidenced, finished.