Colophon
This site is a static export of a Next.js App Router project. Posts are MDX, compiled at build time; code blocks are highlighted with Shiki during the build, so no JavaScript is required to read anything here. Styling is Tailwind CSS plus a small hand-written typographic stylesheet. Type is set in Newsreader with JetBrains Mono for metadata. The site is hosted on Netlify; DNS lives in Cloudflare, managed with Terraform.
A nod to Maura Mudd for the logo.
The footer version is the site’s own semver, bumped when the site itself changes, not when posts are added. The short SHA is the git commit the deploy was built from.
Changelog
v0.7.1
Changed
- Contact links are written so that address harvesters have to work for it. Clicking, copying, and screen readers are unaffected.
v0.7.0
Added
- A favicon, drawn a few years ago and finally given somewhere to live.
- A social preview image, so links to the site stop showing up bare.
- Every post now ends with a few links to other writing.
v0.6.1
Fixed
- The X link now points to @aloutfi.
v0.6.0
Added
- An about page, linked from the nav, with the profile and site details search engines use to tell one Andrew Loutfi from another.
- Post bylines now link to it.
- Author and origin attribution inside each RSS entry, so a reposted copy carries its source with it.
Fixed
- Every page now declares its own canonical URL, and the site's Netlify address redirects to aloutfi.com. Search engines were free to treat the two as separate, competing copies.
v0.5.0
Changed
- Navigation now focuses on writing, now, RSS, and the color-theme toggle.
- The unfinished projects page and homepage project pitch have been removed for now.
v0.4.0
Added
- A 404 page worth visiting on purpose.
v0.3.0
Changed
- New positioning and a rewritten homepage bio.
- The product has its name: backbone. Project page moved to /projects/backbone.
Fixed
- Words gluing together around injected values (“backboneand”); the build now fails if that recurs.
v0.2.2
Added
- Full title on the homepage.
v0.2.1
Changed
- Copy edits across the site; public contact is now an address on the domain itself.
Fixed
- Missing space in the homepage bio (“10years”) caused by JSX whitespace trimming after an expression.
v0.2.0
Added
- Manual light/dark toggle in the header (saved preference, system default otherwise).
Changed
- Years of experience are computed from a 2016 start at build time instead of hardcoded.
Fixed
- Light-mode syntax highlighting: Shiki's light palette was defined but never applied.
v0.1.0
Added
- Initial site: home, writing, projects, now, colophon.
- Full-content RSS feed, sitemap, robots.txt, llms.txt.
- Build-time syntax highlighting via Shiki (zero runtime JS).