Production-ready websites and web apps built with React, Next.js and TypeScript. Clean, component-based code that's fast, accessible and easy for your team to extend long after launch.
React & Next.js (App Router) applications
Reusable, strictly typed component systems
State management with Redux Toolkit, RTK Query or Zustand
Responsive, cross-browser layouts down to the pixel
02
Interfaces with intent
UI design & design systems
Interfaces that look considered and feel effortless. I turn rough ideas or existing designs into a consistent visual language — spacing, typography, colour and every interactive state worked out.
UI concepts, page layouts and responsive variants
Design tokens and component libraries
Motion and micro-interactions that guide, not distract
Accessible colour, contrast and focus states
03
Fast, findable, measurable
SEO & performance
Sites that load quickly and get found. Technical SEO and performance are built in from the first commit — not bolted on after launch — so search engines and real users both get a fast experience.
Technical SEO: metadata, sitemaps, Open Graph, semantic HTML
Core Web Vitals and Lighthouse optimisation
Code splitting, lazy loading and image optimisation
Static generation and caching strategies
04
Practical AI in your product
AI integration
AI features your users will actually use: assistants, smart search and content tools connected to modern LLM APIs, with streaming, clear loading states and safe fallbacks so they feel fast and trustworthy.
Chat and assistant interfaces with streamed responses
LLM API integration (OpenAI, Anthropic)
AI-powered search, summaries and content tools
Prompt design with structured, validated output
05
Connected to real data
APIs & web applications
Dynamic products wired to real data — booking flows, catalogues, dashboards and forms connected to REST or GraphQL APIs, with solid loading, empty and error states at every step.
Ongoing care for live, business-critical sites. New features, fixes and performance improvements shipped carefully, without disrupting the traffic and customers that depend on them.
Feature development on existing codebases
Bug fixing and cross-browser / cross-device QA
Migrating legacy markup to modern components
Dependency upgrades and code audits
//—·How I work
## Four steps, no surprises.
A clear rhythm from first call to launch, with something you can click at every stage.
We talk through goals, audience and constraints. I review existing designs, content and code, then agree on scope, priorities and timeline.
02
Design
Layouts, components and every interactive state are defined — in your design files or mine — with responsive behaviour and accessibility considered up front.
03
Build
Typed, component-based implementation with regular previews, so you see progress early and can steer before the details are locked in.
04
Launch & care
Performance, SEO and cross-browser checks before launch — then improvements, fixes and new features as the product grows.
Have a role or a project in mind? Let’s talk.
I’m looking for a front-end role and I’m open to freelance work. Email is the fastest way to reach me.