Websites built as code rather than assembled from a page builder — so they stay fast, stay indexable, and can still be changed in five years.
- Hand-written PHP, HTML, and CSS with reusable components
- Server-rendered pages, no client-side framework unless one is warranted
- Structured data, canonical URLs, and a generated sitemap built into the templates
- Accessible markup checked against WCAG 2.2 AA
Internal tools, portals, and reporting systems shaped around how a business actually works, instead of bending the business around packaged software.
- Relational schema design and migrations
- Role-based access, audit trails, and safe multi-user editing
- Reporting and exports that finance and operations can run themselves
- Built on the same LAMP stack the rest of the estate already runs on
Removing the manual step between two systems: scheduled imports and exports, API integrations, and reports that generate themselves.
- REST and legacy API integrations, including systems with no documentation
- Scheduled jobs with logging, retries, and failure notification
- CSV, XML, and JSON import and export pipelines with validation
- Automated recurring reports delivered by mail or dashboard
Bringing an old but working system onto supported PHP and database versions without a rewrite and without losing behaviour people depend on.
- PHP version upgrades with a compatibility pass over the whole codebase
- Replacing deprecated extensions and unsupported dependencies
- Introducing prepared statements and output escaping to code that predates them
- Incremental refactoring behind the existing interface, so work can stop at any point
Hosting that is administered rather than merely rented: the server, the control panel, the certificates, the backups, and the mail.
- cPanel and WHM configuration, account setup, and PHP version management
- TLS certificates, HTTP to HTTPS enforcement, and security headers
- Backups that are verified by restoring them, not assumed to work
- SPF, DKIM, and DMARC so business mail reaches inboxes
- Nginx and Apache tuning, caching, and compression
Ongoing care for sites and applications, so problems are found before a customer finds them.
- Platform and dependency updates applied and tested
- Uptime, certificate expiry, and error-rate monitoring
- Content and layout changes handled directly
- A named person to contact when something breaks
Finding out why a site is slow and fixing the cause, including the parts that live on the server rather than in the page.
- Core Web Vitals diagnosis against field data, not just a lab score
- Image pipeline: AVIF and WebP with correct sizing and dimensions
- Caching, compression, and cache-header strategy
- Removing render-blocking assets and unnecessary dependencies
Making a site survive the automated traffic every public site receives, and cleaning up properly when something has already got in.
- Input validation, output escaping, and prepared statements reviewed across the codebase
- CSRF protection, session hardening, and access control
- Security headers, including a Content Security Policy that is actually enforced
- Spam and abuse controls on public forms
- Compromise cleanup with a written account of how it happened
The engineering half of search: making a site crawlable, indexable, fast, and unambiguous about what each page is.
- Crawl and index diagnosis: what is being seen, what is being skipped, and why
- Canonical URLs, redirect chains, and duplicate-URL cleanup
- Structured data that describes what is genuinely on the page
- Information architecture and internal linking
- Site speed work, because it is a ranking input and a conversion input