Rebuilding a personal site around content, structure and room to grow

My personal site began as a professional portfolio and gradually became something broader: a home for work, projects, games, notes and the tabs I have not quite closed yet.

  • OrganisationPersonal website
  • Period2025 – 2026
  • CategoryPersonal
  • StackAstro · React · TypeScript · DigitalOcean App Platform

Rebuilding a personal site around content, structure and room to grow

My personal site began as a professional portfolio and gradually became something broader: a home for work, projects, games, notes and the tabs I have not quite closed yet.

The rebuild needed to support that wider purpose without becoming a sprawling personal platform. The goal was a static-first site with enough structure to evolve cleanly, content files that could shape layouts, and guardrails that kept staging, analytics and routing predictable.

Goals

  • Create a broader personal hub without losing professional clarity.
  • Keep page structures content-driven so layouts can evolve without repeated code changes.
  • Preserve predictable URLs, canonical output and the no-trailing-slash policy.
  • Keep staging safely separated from live behaviour.
  • Maintain accessibility, reduced-motion handling and clean page transitions.
  • Keep the contact experience polished while the front end remains static-first.

Approach

Static-first rebuild

The site uses Astro for the main static build, with React components where interactivity genuinely needs them. That keeps the baseline simple while leaving room for more playful interface ideas.

Content-driven layouts

Page content files now do more of the structural work. Layout options can be passed through content rather than hardcoded into individual pages, making the site easier to refine as sections grow.

Environment guardrails

The staging site remains noindex and analytics-suppressed. Live and staging are separated at the DigitalOcean component level, including separate contact-form configuration.

Contact-form architecture

The site stays static while a separate DigitalOcean Function validates submissions, checks a honeypot, verifies Cloudflare Turnstile and passes valid messages into Resend for delivery to the normal mailbox.

Results

  • A clearer architecture for a site that can grow beyond a conventional portfolio.
  • Content-led page structures that reduce friction when refining layouts.
  • Safer staging behaviour with explicit non-indexing and analytics suppression.
  • A polished contact flow without turning the site into a server-rendered application.
  • A reusable foundation for future Work, Gaming, Projects and Commonplace sections.
  • SEO
  • Analytics
  • Architecture
  • Deployment
  • Staging
  • Consent
  • Performance
  • Accessibility
  • Content Model
  • Content Strategy
  • Workflow

More case studies

Browse all
Games site · 2026 – Present Featured

KJ's Games

A small home for thoughtful browser games: four live games, simple rules, room for depth and a practical space to keep learning through shipping.

Read case study
Internal platform · Rebuild Featured

SharePoint intranet rebuild

Turning an overlooked internal archive into a useful working platform with a live weekly schedule, knowledge board and more active company space.

Read case study
Personal workflow and tooling · 2025 – Present

AI-assisted building workflow

A practical, repeatable workflow for planning, building, debugging and documenting digital work with AI as a capable sidekick rather than the driver.

Read case study