A static personal blog built with Astro, containing 430 recovered blog posts from 2002–2013. Deployed to GitHub Pages.
Authentic recreation. The goal was not simply to publish the recovered content somewhere — it was to bring the site back as close to its original form as possible. That meant recreating the visual identity: the two-column layout, the indented post body, the serif typography, the restrained design language that characterised personal blogs of that era. The original's unusual date format, image bleed effect, and sidebar bio were deliberately preserved.
Don't break the internet. Despite the site having been offline for some years, its URLs still exist in the wild — in bookmarks, in other people's blog posts, in search engine indexes. Every historical URL must continue to work exactly as it did before. The URL structure of the Astro site matches the original site's permalink format precisely.
Install Node.js (LTS), then:
npm install
npm run dev| Command | Action |
|---|---|
npm run dev |
Start local dev server at http://localhost:4321 |
npm run build |
Build the production site to ./dist/ |
npm run preview |
Preview the production build locally |
- Development guide — setup, project structure, deployment, dependencies
- Content guide — post format, frontmatter fields, images, tags, scripts
- Recovery & design — how the blog was recovered, design decisions, typography
- Astro documentation — the framework this site is built on
CLAUDE.md at the root of this repo contains project notes for Claude AI sessions — architecture details, design constraints, and implementation notes accumulated over the project's development.