Services / Product Engineering

Web applications.Built to run the way your operation actually works.

Portals, internal tools, dashboards and workflow systems that hold up under daily use. We design the workflows, enforce the permissions, integrate with your systems of record and hand over something your team can operate.

Explore the tech stack

Practical architecture. Real integrations. No guarantees on adoption.

The business case

Software that carries the process, not just displays it.

A good web application is judged by whether the work gets done faster, with fewer errors and a record you can trust. That depends on matching the software to how your team actually operates, not on the number of features.

When this service fits

You have a defined process or user group, someone who can make product decisions, and access to the systems the application must work with. We can build the first version or extend an existing application.

When something else fits better

If you are validating an early product idea, an MVP first release may be the better frame. If you are building a product to sell to many tenants, SaaS product development is. We help you pick before we build.

Applications we build

Different systems. Same standard of engineering.

The right starting scope depends on your users, processes and risk. These are example situations, not pre-packaged promises or claims about past results.

Customer & partner portals

Give a defined group a secure, purposeful place to work: statements, applications, orders or case progress. One clear job per portal, with roles and audit trails that match how the relationship actually runs.

Learn: can the intended users complete their work without support intervention?

Internal operations & admin tools

Replace scattered spreadsheets and copy-paste handoffs with a permissioned tool that owns the workflow, the data and the exceptions in one place.

Learn: does the tool reduce manual effort and error rates measurably for the operating team?

Operational dashboards

Turn live operational data into views people can act on: status, queues, SLAs and drill-downs. Designed for decisions, not decoration.

Learn: do the right people see the right signal early enough to act?

Workflow & approval applications

Move a process that currently lives in email into a system with states, assignments, notifications and a record of who approved what, when.

Learn: is every step traceable and are cycle times genuinely shorter?

Integration-heavy business systems

Connect a web application to the systems of record it depends on: ERP, CRM, payments, messaging or logistics APIs, with reconciliation and failure handling built in.

Learn: does data stay consistent across systems under real failure conditions?

AI-enabled web applications

Add AI where it supports the application's job: drafting, summarising, classifying or answering questions over approved data, with validation and human review for consequential output.

Learn: is the AI feature reliable enough on representative inputs to be worth its latency and cost?

How the application works

Systems of record in. Role-based screens out. Every action on the record.

The application reads from and writes back to the systems you already trust, serves each role only what it should see, and keeps an audit trail of what changed and who changed it.

What we always include

Server-enforced permissions, input validation, designed failure and recovery states, and an audit record. These are foundations, not upgrades to negotiate later.

What we keep out

Speculative features, duplicate systems of truth and infrastructure for load you do not have. Deferred work stays visible with a reason to revisit it.

Scoping the application

Define the job before the screens.

A web application succeeds when it matches how work actually happens. We start with the users, the process and the constraints, not a feature wishlist.

Users, roles and permissions

Name every role that touches the application and what each may see or do. Server-enforced access control is designed with the data model, not bolted on later.

The process as it runs today

Map the real workflow, including the manual workarounds. Automating a broken process makes it faster at being broken; we agree what changes and what stays.

Systems of record

Identify which system owns each kind of truth. The web application reads and writes through explicit boundaries, so it never becomes a second, competing database.

Scope and non-goals

Agree a visible in-scope, deferred and excluded list. Interfaces, integrations, reporting and mobile behaviour are named explicitly, so estimates rest on something real.

Experience & interface design

Interfaces people can operate without training sessions.

We design around the daily user's actual tasks: entry, search, action, exception. Density, terminology and keyboard paths follow the work, not a template.

Task-first layouts

Primary workflows get the shortest path. Secondary administration and configuration are separated so operational screens stay uncluttered.

Every state designed

Empty, loading, validation, failure and recovery states are part of the scope. The states users hit on a bad day matter more than the happy path.

Accessible by construction

Semantic controls, keyboard operation, focus management and readable contrast are built in. Formal accessibility conformance requires a separately agreed assessment.

Operational views

Support and admin staff get the views they need: lookup, override, history and audit. An application nobody can administer becomes a support burden.

Engineering foundations

Architecture sized to the workload, not the trend.

Most web applications need sound fundamentals more than exotic infrastructure. We choose a structure your team can run, secure and extend.

Data model and validation

Schema, migrations, input validation and state transitions are defined and tested. Money, quantities and identifiers get appropriate types and duplicate protection.

Authentication and authorisation

Proven identity providers, session handling and server-side permission checks on every request. Client-side hiding is never the security model.

APIs and integration boundaries

Typed contracts for every consumer, with timeouts, retries, idempotency and reconciliation for external systems. Vendor availability is treated as a design input, not an assumption.

Testable, reviewable code

Focused automated tests on business rules and critical journeys, code review and reproducible environments. Delivery choices are documented for the engineers who follow.

Data, reporting & integrations

The application is only as good as what flows through it.

We treat data movement as first-class scope: where data comes from, who owns it, how errors surface and how consistency is verified after every sync.

Managed integrations

Each external connection has an owner, credentials in a proper store, rate-limit handling and a documented failure mode. Approval processes outside our control are surfaced early.

Background work and queues

Long-running jobs, notifications and scheduled tasks run through managed queues with retry and dead-letter visibility, never inside a request that users wait on.

Audit trails

Who changed what, when and why, stored where it cannot be quietly edited. Sufficient for support, disputes and the governance requirements you operate under.

Reporting that gets used

Operational reports are defined with the people who will read them, with agreed definitions for every metric. Vanity dashboards are deliberately left out.

AI features with boundaries

AI assists the user. It does not quietly own the decision.

Where AI earns its place in a web application, we treat it as a bounded component with its own inputs, outputs, limits and evaluation.

Permissioned context

The model sees only data the user is entitled to see. Retrieval and tool access respect the same authorisation layer as the rest of the application.

Validated output

Structured output, schema checks and business-rule validation before anything is committed. Consequential actions need explicit human confirmation.

Representative evaluation

Approved examples and adversarial cases define acceptance before release. A demo impression is not an evaluation.

Cost and fallback

Latency and usage budgets are measured, with a defined path when the model is unavailable or wrong. A simple deterministic flow often beats an unreliable smart one.

Security, performance & operations

Ready for real users, real load and bad days.

A web application must survive exposure to the internet and the people who depend on it. We build the controls and the evidence, and hand over the ability to operate.

Application security basics

Secrets management, dependency hygiene, input handling, least-privilege access and protected endpoints reviewed before release. Specialist penetration testing is a separate scope.

Privacy-aware data handling

Personal and sensitive data classified, minimised and stored appropriately, with retention and access aligned to your obligations. Jurisdiction-specific legal advice stays with qualified advisers.

Performance under real load

Representative workloads tested, slow paths identified and caching applied where it is measurable. Performance targets are agreed against actual usage, not generic benchmarks.

Monitoring and incident path

Structured logs, error tracking, uptime checks and alerts routed to a named owner. The recovery procedure is written before the incident, not during it.

Technology & frameworks

A stack your team can run after we leave.

We work inside your existing environment where it is sound, or select a small, maintainable stack for the build. These are options, not a requirement to use every technology on the list.

Experience & design

FigmaDesign systemsUsability testing

Prototypes and a reusable interface foundation for the agreed workflows, tested with representative users where available.

Frontend

ReactTypeScriptTanStack StartNext.jsTailwind CSS

One suitable application framework chosen with you, based on rendering needs, hosting model and your team's environment.

Backend & APIs

Node.jsTypeScriptPythonFastAPIRESTOpenAPI

Typed interfaces and explicit business rules. A separate service only where workload or integration boundaries genuinely justify it.

Data & storage

PostgreSQLRedisObject storageManaged migrations

Relational data with account-aware access by default; caching and queues only where the workload justifies them.

Identity & access

OIDC / OAuth 2.0Managed authenticationRole-based access control

Proven providers and server-enforced authorisation, integrated with your existing identity systems where they exist.

Integrations

WebhooksVendor APIsStripeERP / CRM connectors

Chosen against provider availability, supported markets and credentials. Reconciliation and failure handling are part of the build, not an afterthought.

AI capabilities

OpenAIAnthropic ClaudeGeminiPydanticAIpgvector

Optional tools selected against task evidence and data-handling requirements. Not every application needs a model.

Quality & operations

PlaywrightVitestpytestOpenTelemetrySentryCI/CD

Workflow tests, telemetry and repeatable releases, with appropriate redaction and access control on diagnostic data.

Hosting & deployment

AWSAzureGoogle CloudCloudflareDockerKubernetes

Your existing cloud or a suitable managed platform, chosen for data location, operational capacity and cost rather than fashion.

Provider selection depends on licensing, approved data processing, availability and operational needs. We prefer fewer moving parts over an architecture your team cannot comfortably run.

Delivery approach

From a defined scope to an application in service.

You work with engineers inside the delivery process, supported by the wider team. Reviews, demonstrations and scope decisions stay connected to the operating goal.

  1. 01

    Frame the application

    Define users, the workflow it supports, systems of record and constraints. Surface vendor, data and approval dependencies before committing to scope.

    Output: Scope brief, role and permission map, dependency list.

  2. 02

    Design and de-risk

    Prototype the uncertain screens and prove difficult integrations against real sandbox behaviour. Agree the architecture and a prioritised backlog.

    Output: Reviewed prototype, technical plan and delivery estimate.

  3. 03

    Build in working increments

    Implement the application in reviewable slices with regular demonstrations. Permissions, data and integrations land with the features that need them.

    Output: Working increments in a controlled environment.

  4. 04

    Verify and release

    Test critical journeys, permissions and integrations, exercise failure and recovery paths, and prepare operations. The product owner makes the release decision with the evidence in hand.

    Output: Release candidate, test evidence and operating notes.

  5. 05

    Hand over and support the transition

    Transfer code, documentation, access and monitoring with a walkthrough for the team who will run it. Agree next steps based on observed usage.

    Output: Handover package and a prioritised follow-up backlog.

What your team brings

A decision-maker, process knowledge, system owners and the credentials or approvals the integrations need. For sensitive data, bring security, privacy and compliance stakeholders into scoping early.

Decisions without surprises

We show working increments, keep constraints visible and document tradeoffs. Acceptance and release decisions have named owners; a deadline does not turn an unresolved risk into an acceptable one.

Handover & ownership

Your application. Your code. A team that can run it.

Your code belongs to you from day one. The handover makes the application understandable to the people who will maintain and operate it.

A working web application

The agreed workflows, roles, integrations and administration views, with acceptance criteria met and limitations documented.

Code and delivery assets

Source code, configuration, migrations, tests and release setup in your repositories. Third-party components remain subject to their licences.

Operating documentation

Architecture notes, integration runbooks, monitoring setup and recovery procedures the operations team can actually follow.

An evidence-based next plan

A prioritised backlog grounded in observed usage and support evidence, rather than speculative features.

Delivery does not include unlimited maintenance or a service-level commitment. We can agree ongoing development and operational support, or hand over fully to your own team.

Related engineering services

Choose the support your next stage needs.

Web application development focuses on systems that run your operation. Product launches, dedicated capacity and specialist AI work can support what comes next.

Questions before starting

The practical details.

How is this different from building an MVP or a SaaS product?

An MVP is a first release built to learn whether an idea deserves investment. A SaaS product is a multi-tenant offering you sell to many customers. A web application service covers bespoke systems built to run a specific operation — internal tools, portals, dashboards and workflow applications — whether or not they become products later. We help you choose the right framing first.

Can you build on top of our existing systems?

Yes. We start by reviewing the current architecture, databases, APIs and identity systems. Integrating with the systems of record you already trust is usually better than duplicating data, and we make the boundaries explicit either way.

How do you handle access control for sensitive data?

Permissions are enforced server-side on every request, designed together with the data model. Role definitions come from how your organisation actually operates. Client-side hiding is treated as user experience, never as security.

What about our data residency and compliance requirements?

We design hosting, storage and access around your stated obligations and document the choices. We are not a law firm; jurisdiction-specific legal and regulatory advice belongs with qualified advisers, and we build to the requirements they define.

Can you integrate AI features into the application?

Yes, where they earn their place. We evaluate the task with representative examples, keep model access within the application's permission model, validate outputs and keep consequential decisions with a human. Cost, latency and fallback behaviour are measured, not assumed.

How long does a web application take to build?

It depends on the number of workflows, integrations, existing systems and decision turnaround on your side. We estimate after reviewing scope and dependencies. A paid two-week first sprint can deliver an agreed, useful increment; it is not a promise to finish the whole application in two weeks.

Who owns the code and the infrastructure?

Your code belongs to you from day one. Repositories, hosting and vendor accounts are set up under your ownership with agreed access, and handover includes documentation and a walkthrough. Third-party licences and data rights are respected.

What happens after launch?

We hand over operating materials and review initial usage evidence together. Further development, maintenance, incident support and service levels are separately agreed — you can continue with us or run it with your own team.

Start with the workflow

Bring the process.
Let's build the system that carries it.

Tell us who uses the application, what it must do and which systems it needs to work with. We'll agree a practical first sprint.