Colophon

This blog is a static website generated by a small Elixir program that lives in the same repository as its content. The source is plain markdown; everything else is built from it on demand.

Build

  • Elixir and Erlang/OTP run the build. Mix tasks blog.build, blog.serve and blog.publish drive it end to end.
  • nimble_publisher parses the markdown files in priv/posts/ into post structs at compile time.
  • makeup_elixir and makeup_erlang provide syntax highlighting for fenced code blocks.
  • Phoenix LiveView's component and HEEx compiler are used — at build time only — to render the page templates to HTML. There is no server at runtime.

Design

  • Typography and layout are inspired by Daring Fireball. Body text is set in Verdana, titles in Gill Sans, code in SF Mono.
  • The colour palette is shifted away from the canonical Elixir purple into a slightly warmer violet. All body-text pairings meet WCAG AAA (≥ 7:1).
  • Light and dark themes are switched by a small inline script that reads localStorage and prefers-color-scheme. There is no JavaScript framework.

Accessibility

  • Semantic HTML landmarks, a skip-to-content link, and visible focus outlines.
  • Theme toggle is a real button with aria-pressed.
  • prefers-reduced-motion disables all transitions.
  • Colour contrast verified with the Color library's WCAG helpers.

Hosting

The generated site is uploaded to a Cloudflare R2 bucket using an ElixirLocalize.Publisher module that signs requests with AWS Signature V4 via aws_signature and transports them with Req. The publisher diffs the local tree against the remote manifest so subsequent syncs only upload what has changed.

Source

The blog's source — including this page — lives alongside Localize itself on GitHub. Fixes and typos are welcome as pull requests.


← Back to home