What we build
Web applications and the sites around them
Web work splits into two jobs that get confused. One is an application with logic, state and integrations. The other is content that has to be changed by people who do not write code. Building the second like the first is why so many sites go stale.
Customer portals and applications
Accounts, self-service, ordering, document access and payments, integrated into the systems that already hold the data.
The authentication and account recovery paths get designed properly, because those are where a portal actually loses people and they are usually treated as plumbing.
A portal that reduces calls rather than generating them.
Internal line-of-business tools
The web applications staff use all day, replacing the spreadsheets and shared mailboxes that a process has quietly grown into.
Speed for a repetitive task matters more than visual polish. Keyboard use, sensible defaults and bulk actions come before anything decorative.
Tools the people using them stop complaining about.
Content-managed sites
Structured content models in a headless or traditional CMS, with editing roles, preview and publishing workflow set up around your actual approval chain.
Content types are modelled rather than left as free-form pages, so a redesign later does not mean rewriting every page by hand.
A site the marketing team updates without raising a ticket.
Accessibility
WCAG 2.1 AA as a design constraint from the first wireframe: semantic markup, focus order, contrast, labelling and error handling.
Automated checks run in the pipeline and manual keyboard and screen reader review happens per release, because the automated pass catches only part of it.
A site that works without a mouse and with a screen reader.
Performance
Payload budgets, image handling, caching strategy, server rendering where it helps, and measurement on mid-range devices and slow connections.
Performance is a budget agreed at the start and checked in the pipeline. Treated as a phase near launch, it becomes a rebuild instead.
Pages that load acceptably on an ordinary phone.
Replacing a site nobody can update
Content audited and migrated, the abandoned platform assessed, and the new build shaped around who will maintain it rather than around what looks impressive.
The audit usually shortens the site considerably. Migrating pages nobody has read in years is paid-for work with no reader at the end.
A smaller site that is current, rather than a large stale one.