Web Apps & SaaS
Authenticated products, dashboards and subscription platforms.
A website tells people what you do. An application does the work. We build web apps that replace shared spreadsheets, email threads and manual handoffs.
A web application is software you use in the browser. Users sign in, it stores data, it controls who may do what, and it changes records. A website mainly shares information. An application does work for the people signed into it, so the way the data is organized shapes the build.
A good fit for
We map who does what, the stages a record moves through, and the decisions people make.
We plan the data, permissions and connections together, and decide which pages stay public.
Screens come from one design system, including the empty, loading, error and access-denied states.
We build in releases that each work alone, with sign-in, roles and activity history from the first.
We test failure paths, permissions, keyboard use and speed with realistic amounts of data.
We release through staging, with monitoring in place and a rehearsed rollback route.
We agree what is measured and how change requests work, so improvement is planned.
Problem
What we do
We move it into one place with a history, permissions and records that stay consistent.
Problem
What we do
One designed data model removes the duplicate entry and the weekly reconciliation.
Problem
What we do
The app keeps the current state in one place, so questions are answered without asking someone.
| Option | When it is right | What you accept |
|---|---|---|
| Off-the-shelf product | The process is standard and fits with simple setup. | Subscription cost, and working the way the product works. |
| Product plus light custom work | The core fits, but reporting or one integration is missing. | Two systems to keep in step, plus the product roadmap. |
| Custom application | The process is specific, central and stable enough to encode. | Build cost, plus owning maintenance, hosting and change. |
| Keep the spreadsheet | Low volume, one editor, and the friction costs little. | No history, no permissions, and a ceiling as volume grows. |
Longer than a website and shorter than most people expect for a first release, because we deliberately ship one complete path through the process rather than a fraction of everything. The honest range depends on the number of roles, the number of states a record moves through, and how many external systems are involved.
Yes, as a Progressive Web App: it installs to the home screen, works offline to a degree and can send web push notifications, all from one web codebase. Native iOS and Android development is a separate capability, and we will tell you plainly whether it is in scope rather than implying it.
Usually, provided the other system exposes an API, a webhook, a database connection or an export. What matters more than the technology is what happens when the other side is slow, unavailable or returns something unexpected — we specify that behavior rather than leaving it to fail quietly.
You do. The repository is yours, the hosting and third-party accounts are in your name, and the data model and deployment path are documented so another developer can take it over. Ongoing maintenance is a separate, explicit arrangement rather than a dependency built quietly into delivery.
Often, yes, starting with an assessment rather than a promise: we look at the code, the data model, the dependencies and the deployment path, and tell you what can be built on and what has to be replaced. Where a rewrite is genuinely cheaper than continuing, we say that plainly.
Short answers are above. Open a panel below for the specifics: how we decide, what is included and the deeper questions.
People sign in, see only their own or their role data, and change records other people depend on. That is an application, and the data model is where the build starts.
If nobody needs to sign in and no data has to persist between visits, an application is capability you will pay for and never use. Business websites or custom website development is the right route.
Once you are selling access to multiple customer organizations rather than running it for one, tenancy, plans and billing become first-class concerns. That is multi-tenant SaaS development.
A website publishes information to visitors, and most of its value lies in being found and read. A web application does work for signed-in users: it stores state, enforces permissions and changes data. The two need different architectures, and treating an application as a website produces a login bolted onto a brochure site.
The practical test is whether anything has to be remembered about a person between visits, and whether two users should see different things. If the answer to both is no, it is a website. If yes, the data model and the permission model become the center of the build and the page structure follows them.
Authentication establishes who someone is; authorization decides what they may do. Both are enforced on the server for every request. Credentials are hashed, sessions are handled server-side, and roles map to explicit rules rather than to hidden interface elements — a hidden button is not a permission.
Applications are designed with appropriate security practices, and we will not claim more than that: no system is unbreakable, and a supplier who guarantees security is telling you something untrue. What we do commit to is that access rules are explicit, checked server-side, logged where it matters, and documented so they can be reviewed rather than trusted.
Yes, and for applications holding sensitive data it should be in scope from the first release rather than added later. The specific method — authenticator app, email code, hardware key — is decided with you during scoping.
No. Authenticated routes are kept out of the index deliberately, while the public marketing, documentation and pricing pages stay server-rendered and indexable. Treating both halves the same way is a common and expensive mistake.
By cutting the build into releases that each stand on their own. The first release covers one complete path through the process — not a fraction of every feature — so it can be used, and what is learned from real use informs the next release rather than being guessed at the start.
The failure mode this avoids is a twelve-month build that meets a specification written before anyone had used anything. Software is a set of assumptions about how people work, and the only reliable way to test those assumptions is to put a usable version in front of them early.
Applications are discussed as if they were one thing. They are four, and knowing which layer a requirement belongs to is what makes a scope conversation productive rather than circular.
What users see and operate: screens, forms, tables and the states around them. It asks for data and sends changes; it never decides what is allowed.
The rules of the business: what a record can become, who may change it, what has to be true before it saves. This runs on the server, where it cannot be bypassed.
The store and the model behind it — the relationships, constraints and history that keep records consistent even when several people work at once.
APIs, webhooks and scheduled jobs connecting the application to the services you already run, each with its failure cases handled rather than assumed away.
State lives in one place with a history attached. Questions about what is outstanding or what happened are answered by the application rather than by the person who remembers.
Access is enforced on the server and logged, so what each role can see and do is a rule rather than an agreement — which is what makes delegation safe.
A designed data model removes the duplicate entry and the weekly reconciliation, which is usually where the actual saving is.
Marketing pages, documentation and pricing stay server-rendered and indexable while the application itself stays out of the index. Both halves get the treatment they need.
Jobs, cases, stock, applications or approvals moving through states, with several people working the same queue and needing to see the same truth.
Work that has to be submitted, reviewed and approved by different people, where who did what and when is part of the requirement.
Something validated in a spreadsheet or a no-code tool that now needs real accounts, real permissions and data integrity to carry paying users.
Tell us what you need and when you need it. We reply with a clear scope and the next steps.