Loading
Loading
Standards
Anyone can describe how they work on a first call. This is the version that is written down before the call, applies to every engagement, and can be checked against the code while you watch. Where a standard has a real limit, the limit is on this page too.
Delivery
These are the standards our own products are built to. An engagement inherits them because it is built on the same scaffolding, not because they were written for a proposal.
A fixed scope document — deliverables, milestones, price, payment structure — agreed before any code is written. The price does not move unless the scope does, and a scope change is priced and accepted in writing before it is built.
A real build on a real device, every week, from week one. Not a status report and not a demo environment. It exists so a project cannot fail quietly for two months — the first chance to say 'this is not what we wanted' is week one.
Type checking, unit tests, linting, and an import-hygiene check run automatically on every push and every pull request. A gate that has not run is treated as a gate that failed.
We found this exact failure in our own repository on 1 August 2026 — the gates were filtered to a branch that did not exist, so they had never executed. It is written up on the retainer page rather than quietly fixed.
Automated WCAG 2.1 A/AA checks run against every public route with zero tolerance — one violation fails the build. Where the automated tools cannot see a criterion, the gap is recorded in the test file itself so nobody mistakes green for complete.
Automated tooling covers roughly a third of WCAG. It is a floor, not a certificate, and we say so in the suite.
Mobile builds are scored against Apple's Guideline 4.3 and Play's uniqueness rules on a published rubric, with a numeric threshold that has to be cleared before anything is submitted. Rejection is a schedule risk, so it is handled during the build rather than discovered at review.
Conventional commits, one concern per commit, and a written rationale in the commit body for anything non-obvious. You are buying a codebase somebody else will maintain one day — the reasoning has to survive the engagement.
Ownership
Every item here is designed so that ending the engagement is a decision rather than an event.
Repositories, cloud, app-store and third-party accounts are yours from the start, not migrated at the end. You can revoke access this afternoon and keep shipping.
Build lanes, OTA update lanes, store submission, monitoring and alerting are configuration in your repository — reviewable, runnable, and transferable without us. Nothing load-bearing lives in somebody's head or in a private dashboard.
Intellectual property in the work product is assigned to you at handover. No license, no hosting lock-in, no per-seat fee afterwards, and no component you have to keep paying us to use.
Three-month minimum, then month to month, with 30 days' notice on either side and no auto-escalating rate. Ending one includes a documented handover of the pipeline and its operational history.
Security and data
The honest answers to the questions a security review asks, including the ones where the answer is no.
We work in your accounts under your identity provider, with the narrowest role that does the job, and we ask for production credentials only where the work genuinely requires them. Access is enumerated in the scope document so you know exactly what was granted.
We do not copy client source or customer data into our own infrastructure for convenience, and we do not retain either after an engagement ends beyond what a signed agreement requires us to keep.
White-label delivery under your brand stays under your brand. We do not publish, reference, or list work done under an NDA, and we will sign yours rather than ask you to accept ours.
No analytics, no advertising trackers, no tracking pixels, no marketing cookies, and no third-party scripts. Fonts are self-hosted at build time, so loading this page does not make a request to anyone else. That is why there is no cookie banner — there is nothing to consent to.
No SOC 2, no ISO 27001, no Cyber Essentials. If your procurement process requires one, we are not the right vendor for you today — and you should find that out here rather than four weeks into a review.
Said plainly because a vendor who is vague about this costs you the four weeks.
Commitments
What a company refuses to do under commercial pressure is more informative than what it says it values, so these are phrased as refusals. Every one of them costs us something, which is the only reason any of them is worth reading.
Every standard above is enforced in a repository we can put on screen. Bring the two you care about most and we will show you the configuration that enforces them, the last time each one failed, and what happened next. Rates are on pricing; the terms that govern an engagement are in the signed scope, not on this site.
We reply within one business day.