Colophon
How this site is built.
A quick tour of the stack, tools and design tokens behind every page. Most of it is open source. None of it is sponsored.
Built
Built with
- Astro 5
Static site generator. Fast, content-first, ships almost no JS by default.
- Tailwind CSS
Utility-first CSS, with a small custom token layer (Studio Glass).
- TypeScript
Astro components and content collections, fully typed.
- MDX
Markdown plus the occasional embedded component for posts that need it.
- Pagefind
Static, client-side full-text search with no server required.
Hosted
Hosted on
- Azure Static Web Apps
Static site hosting with PR previews, custom domains and free SSL.
- GitHub Actions
Build, test, deploy. PR previews behind a `preview` label.
-
Cloudflare DNS
DNS, anti-spam and the occasional rewrite rule.
Type
Type & icons
- Inter Variable
Body text. Open-source variable font from rsms.
- Space Grotesk Variable
Display headings. Geometric, friendly, opinionated.
- Material Design Icons
Most of the iconography on the site.
- Simple Icons
Brand marks for socials, stack badges and project links.
Tools
Tools I write in
- VS Code Insiders
Day-to-day editor. Fast iteration, infinite extensions.
- GitHub Copilot
Pair-programmer for everything from drafts to refactors.
- Playwright
Smoke + accessibility tests run across a full viewport matrix on every change.
-
Fuji X-T5
When the photographs need a camera that means it.
Behind
Behind the scenes
-
Studio Glass tokens
A small CSS-variable design system that drives every colour, shadow and glass surface on the site.
-
Topic taxonomy
Six locked topics — App Dev, AI & Copilot, Smart Home, Cooking, Photography, Journal — each with its own colour token.
-
WCAG AA target
0 serious or critical Axe violations across every page and viewport, automated in CI.
- Open source
The site is on GitHub. Issues, ideas and the occasional fix gladly received.
Credits
Designed and built by James Callaghan. Iterated on with a lot of help from GitHub Copilot. Mistakes, opinions and oddly specific token names are mine.
Spotted something off? Open an issue.