Source & hosting

The source for this site is on GitHub and published under a dual license: workflow and infrastructure are CC0 (public domain); blog content is CC BY-NC-ND 4.0.

The site is built with Hugo using the PaperMod theme, and deployed via Cloudflare Pages.

ATproto & standard.site

Every post on this site is also published as a record on the ATproto network — the open protocol that powers Bluesky. ATproto isn’t just a social network; it’s a decentralized data layer where any application can store and exchange structured records.

standard.site is an open protocol built on ATproto for publishing websites and blog posts. Each post gets a site.standard.document record written to my Personal Data Server (PDS), making it a first-class citizen on the open social web — discoverable and linkable from Bluesky and any ATproto-aware client.

Sequoia handles the publishing: it reads Hugo posts, writes the ATproto records, and injects a canonical <link> tag into the built HTML so the connection between the website and the ATproto record is machine-readable.

The net result: each post exists at https://joe.dev/posts/... and as a verifiable, portable record on the open social web — no platform lock-in.

Browse my ATproto records directly at pdsls.dev.

Branding & theme

The visual design uses a warm off-white palette with teal accents, with a near-black dark mode.

Typefaces

Cormorant Semi Bold
Headings & site logo — Google Fonts
Nunito Light — the quick brown fox jumps over the lazy dog
Body text (300 Light, 600 Semi Bold for emphasis) — Google Fonts
Space Mono — fmt.Println("hello, world")
Inline & block code — Google Fonts

Colors

RoleLightDark
Page background#F5F1EB#181511
Teal accent#0A7A70#2DD4BF
Primary text#1F1F1F#C4C4C5
Secondary text#6C6C6C#9B9C9D
Border#E8E4DE#3C362C
Inline code#E6F2F0#1E2C2A
Code block bg#2A2620#2A2620

Favicon

32px favicon 60px favicon

White J (Cormorant Semi Bold) on deep teal #0F766E, rounded square with ~12% corner radius and +7% optical lift.

Cover images

Each post has a 1200×630 cover image used for og:image social previews and as the thumbnail in Bluesky’s enhanced link cards.

Example cover image

The images are generated by a Node.js script (graphics-gen/src/cover.mjs) using Satori and the same brand fonts as the site. The layout: post title in Cormorant at the largest size that fits in three lines, a teal rule, an optional description in Nunito, and a signature block — the site icon at 128 px with joe.dev / Joe Beda stacked below — anchored to the bottom-right corner, all on the same warm parchment background as the site.

Each generated image is accompanied by a .cover.json sidecar that records the title, description, and spec version used to produce it. When the branding changes, running task covers-regen rebuilds every cover from its sidecar without having to touch the post files.