Web application development
Portals, internal tools, dashboards and SaaS products. Built to be fast on a mediocre connection, operable by someone who did not write them, and yours to take elsewhere.
Where web projects usually come unstuck
Rarely at launch. The trouble starts around month nine, when a feature that should take two days takes two weeks because nobody can change one part without breaking another, and the only person who understood the data model has moved on.
The causes are consistent: business rules scattered across the interface instead of held in one place, no automated tests so every release is a manual gamble, and a database schema that was expedient in week three and load-bearing by month six.
None of this is exotic. It is avoided by writing tests for the parts that carry risk, keeping the domain logic in one layer, and being willing to fix the schema early while it is still cheap.
What we build
Customer portals
Account areas where your customers see their own data — orders, bookings, documents, invoices — with authentication, roles and audit trails that hold up to scrutiny.
Internal tools
The admin interfaces, back-office systems and operational dashboards that run the business. Unglamorous, high-leverage, and usually the fastest payback available.
SaaS products
Multi-tenant applications with subscription billing, usage metering and tenant isolation designed in from the start rather than retrofitted painfully later.
Dashboards and reporting
Interfaces over data that stay responsive on real volumes, with the query and caching work behind them done properly rather than hidden by a loading spinner.
Real-time features
Live updates, collaborative editing, notifications and presence, where the product genuinely benefits rather than because the technology is interesting.
Accessibility as standard
Keyboard navigation, screen reader support and WCAG 2.1 AA contrast built in during development. Retrofitting it later costs several times more.
Typical stack
Chosen per project, not by habit. If your team already runs something that works, we use it.
- Frontend
- TypeScript
- React
- Next.js
- Astro
- Tailwind CSS
- Backend
- Node.js
- Python
- REST and GraphQL
- background job queues
- Data
- PostgreSQL
- Redis
- S3-compatible object storage
- Delivery
- Docker
- GitHub Actions
- preview environments per pull request
How a web build runs
Deployed to a real environment from the first increment. Software that has never left a developer laptop is not evidence of progress, and the problems it hides all surface at once.
- 01
Scoping
User journeys, data model and architecture agreed, with a fixed price for the first phase. The document is yours regardless.
- 02
Increments
Two-week cycles, each ending with something deployed you can click through and react to.
- 03
Hardening
Load testing where volume warrants it, accessibility audit, security review, and monitoring wired up before launch.
- 04
Run
Support retainer with agreed response times, or handover with documentation and a transition period.
Common questions
How long does a web application take?
A focused internal tool can be live in six to eight weeks. A customer-facing product with billing, roles and integrations is usually three to six months to a solid first release. Scoping produces a real estimate for your specific case rather than a range like this one.
Do you design as well as build?
We design interfaces, yes — layout, interaction and accessibility. For a distinctive brand-led visual identity we work alongside a designer, either yours or one we introduce, because that is a different discipline and pretending otherwise shows in the result.
Can you take over an existing application?
Yes, and it is common. We start with a short audit so we can be honest about its condition and what changes will realistically cost, rather than discovering that in month two.
What about hosting?
Deployed to your cloud account — AWS, GCP, Azure, or something simpler like Render or Fly for smaller applications. Your account, your billing, your control. We are happy to manage it on a retainer, but the keys stay with you.
Will it work on mobile?
Responsive by default, tested on real devices rather than only a resized browser window. Whether you also need a native app is a separate question we are happy to argue both sides of.
Start with a scoping call.
Thirty minutes, no obligation. If we are not the right fit we will tell you on the call rather than after a proposal.
Related services
Custom software development
Web applications, internal tools, customer portals, APIs and mobile apps. Built by small senior teams in short…
API development & integrations
Connecting systems that were never designed to talk to each other — including the awkward ones with a SOAP end…
Mobile app development
Cross-platform by default, because it is usually the right economic answer. Native when the product genuinely …