Full-Stack Web Development

Web development built to last.

I build fast, accessible and maintainable websites, web applications and digital products — combining thoughtful interfaces with dependable full-stack engineering.

Frontend
HTML / CSS / HTMX
Backend
Go
Data
SQLite / SQL

application / architecture

Engineering principle

Small layers. Clear responsibilities.

Live
01

Interface

Semantic HTML, responsive layouts and focused interactions.

02

Application

Server-side logic with explicit boundaries and predictable behaviour.

03

Data & delivery

Persistence, testing, security and deployment treated as part of the product.

01 / Development

More than putting a frontend on a backend.

The strongest web products treat the interface, application logic, data and infrastructure as parts of the same system.

01

Websites

Responsive, accessible websites built around clear information architecture, strong performance and maintainable implementation.

02

Web applications

Authenticated areas, dashboards, client workspaces and data-backed workflows where the browser is part of a larger application.

03

Backend systems

Application logic, persistence, authentication, validation and integrations built around explicit responsibilities rather than unnecessary complexity.

04

Existing products

Extending, restructuring and improving existing applications when the product has outgrown its original implementation.

02 / Engineering principles

Fast shouldn't mean fragile.

I favour straightforward architecture, server-rendered interfaces and small layers that are easy to understand, test and change.

Performance

Send less.

Keep browser work deliberate, minimise unnecessary JavaScript and make the server do the work it is good at.

Maintainability

Make change predictable.

Clear boundaries and boring, understandable code beat clever abstractions that make tomorrow's change harder.

Security

Build it in.

Authentication, CSRF protection, secure sessions, validation and defensive HTTP behaviour belong in the architecture from the beginning.

03 / Technology

A deliberately small stack.

Technology is chosen to support the product rather than become the product.

Go

Application layer

HTTP services, business logic, middleware and server-side rendering.

HTMX

Interaction layer

Focused dynamic interactions without turning every page into a JavaScript application.

SQLite / SQL

Persistence

Straightforward relational data with explicit queries and migrations.

HTML / CSS

Interface foundation

Semantic markup, responsive layouts and accessible browser-native behaviour.

05 / Process

Build the right thing, then build it well.

Development starts with understanding what the application actually needs to achieve, then choosing the simplest architecture that can support it reliably.

01

Understand

Clarify users, workflows, constraints and the outcome the product needs to support.

02

Structure

Define the interface, data model and application boundaries before complexity starts accumulating.

03

Build

Implement the product incrementally with testing, accessibility and security considered throughout.

04

Ship

Deploy, measure the real behaviour and improve the system based on evidence rather than assumptions.

06 / Start a project

Need something more capable than a basic website?

If you're planning a website, web application or custom digital product, tell me what the system needs to do and where the current approach is getting in the way.