Skip to content

Add blog.elimelt.com: a static Astro + MDX blog - #21

Merged
elimelt merged 6 commits into
static-pagesfrom
blog
Oct 26, 2026
Merged

elimelt merged 6 commits into
static-pagesfrom
blog

Conversation

@elimelt

@elimelt elimelt commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Stacked on #20 (base static-pages). It will retarget to main when #20 merges.

What

A new site at blog.elimelt.com, built as its own Astro project in blog/. Like the other two sites, it's static files on Cloudflare Pages.

  • Writing: posts are .md or .mdx files in blog/src/content/posts/. Frontmatter (title, description, date, optional updated, draft) is checked by a typed content collection. Drafts show in npm run dev and are left out of the build.
  • Interactive elements: MDX posts import components. RandomWalk.astro is an example: a framework-free custom element whose script loads only on pages that use it. Figure.astro adds a caption, and its wide option lets a figure extend past the text column. A framework (React, Svelte, ...) can be added later with astro add.
  • Look: typography and colors match elimelt.com (Crimson Pro for prose, the same palette, dark mode), and the layout works at phone width.
  • Also included: an RSS feed at /rss.xml, a sitemap, robots.txt, a 404 page, _headers (security headers and immutable caching for /_astro/*), and a first post.

Deploy

  • blog-deploy.yml builds on pull requests. On a push to main it also publishes through publish-site.yml (Pages project elimelt-blog).
  • web-deploy.yml and test.yml ignore blog/**.
  • Terraform adds the elimelt-blog project, the blog.elimelt.com custom domain and its CNAME. This has already been applied: 3 added, 0 changed, 0 destroyed.
  • The first deploy was made with wrangler from this branch's build, because workflow_dispatch only works once the workflow exists on main.

Testing

  • npm run build in blog/ runs astro check (0 errors, 0 warnings), then builds.
  • I checked it in a browser at desktop and 375px widths: no horizontal scroll, the demo animates, and there are no console errors.
  • The root npm run typecheck still passes.

🤖 Generated with Claude Code

elimelt and others added 5 commits October 25, 2026 16:23
Posts are Markdown or MDX in blog/src/content/posts. MDX posts can import
components for interactive figures; RandomWalk shows the pattern with a
framework-free custom element whose script loads only where it's used.
Includes an RSS feed, sitemap, drafts, and a first post.

blog-deploy.yml builds the site and publishes it through publish-site.yml.
Terraform adds the elimelt-blog Pages project, its custom domain and the
DNS record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
State up front that models write most of the text and Elijah reviews it,
point to the blog for his own writing, and replace the self-deprecating
about section with a plain description of how notes are made and how to
send corrections.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Switch from Noto Serif on cream to IBM Plex Sans on white (near-black in
dark mode) with a single blue accent, so the notes read as reference
material and look distinct from the blog's serif.

- Body type at 17px with 1.65 leading and normal paragraph spacing.
- Links are underlined text instead of Quartz's highlighted chips;
  navigation, tags and search results stay plain.
- Section headings get a rule above them; inline code, code blocks,
  tables and blockquotes are tidied.
- Request IBM Plex Sans 600 for headings, and point the primary font
  preload (Head.tsx and the font patch) at its Latin woff2.
- The standalone graph page uses the same palette and font.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@elimelt
elimelt added this pull request to stack #22 October 26, 2026 23:27
@elimelt
elimelt merged commit 12286fa into main Oct 26, 2026
7 checks passed

This branch was successfully deployed

1 active deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant