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.
