Contents
  1. Tech stack
  2. Publishing new content
  3. Syncing from X
  4. Local preview

Tech stack

  • Astro: a static site generator. Posts are written in Markdown and built into plain static pages, so they open fast.
  • No UI framework: no React, no Tailwind. Hand-written CSS variables, with colors and type sizes kept close to Apple’s design guidelines.
  • Motion: the home page animation is a pure seek(t) function that computes every property with closed-form springs; page changes use the browser’s native View Transitions.

Publishing new content

Everything lives under src/content/. Just create a new .md file:

What to publish Where it goes Required fields
Post src/content/posts/ title, description, date, category (ai / code / life)
Prompt src/content/prompts/ title, date, model; the body is the prompt itself
Work src/content/works/ title, date, image, tool

Images go under public/ and are referenced as /works/xxx.jpg.

Syncing from X

Long posts, prompts and work I post on X come over with a single command:

npm run import:x

The script fetches public posts, works out which ones are articles, prompts or works, downloads the images and videos, and generates the matching Markdown files. If it puts a post in the wrong place, set it by hand in scripts/x-import.config.json.

Local preview

npm run dev

Open http://localhost:4321 to see it. Pages reload automatically when files change.