Back to Projects

Web Development & Digital Infrastructure

AstroNext.jsTailwind CSSDirectusFastAPIDockerGitHub Actions

Alongside physics research, I do freelance full-stack web development — most substantially for Diorama Consulting (an AI technology advisory firm) and for the Edinburgh University Chamber Orchestra's own public-facing site.

The stack

Both projects share a similar architecture: an Astro 5 frontend for fast, mostly-static pages, Tailwind CSS v4 for styling, and a Directus CMS backed by FastAPI and PostgreSQL for structured content that non-technical committee members can edit without touching code. Everything is containerised with Docker, served behind nginx and Cloudflare, and deployed to a DigitalOcean droplet via GitHub Actions CI/CD.

What that looked like in practice

For EUCO specifically: a full Directus CMS integration (schema design, bulk data import), image and SVG asset optimisation, a glassmorphism header with animated dropdown navigation, and a sponsor parallax banner — plus a three-hourly static-rebuild cron so committee-edited content goes live without a manual redeploy.

For Diorama: DevOps work migrating the domain from WordPress to a Dockerised Astro + Caddy stack, a hero carousel and admin suite, a Keystatic CMS overhaul, PostHog analytics, and a FastAPI + SQLite + Resend contact-form backend.