Source for xpdustry.com.
You need Node 22 or newer and pnpm.
corepack enable
pnpm install
pnpm devThe development server runs at http://localhost:3000. The /styleguide route is available in development.
Run the full test and type-check suite with:
pnpm checkpnpm build
pnpm startThe build writes browser assets to dist/client and the Node server to dist/server.
Set the PORT env variable to change the server port. It defaults to 3000.
Create src/content/blog/<slug>.md. The filename becomes the URL, so hello-world.md is published at /blog/hello-world.
Start with this frontmatter:
---
title: A useful title
description: A short description used in page metadata.
publishedAt: 2026-08-16
author: phinner
topic: NoHorny
---
Write the post here.title, description, publishedAt, author, and topic are required. Dates use YYYY-MM-DD.
author must match a username in src/content/authors.ts.
Useful optional fields:
updatedAtis the last edit date.releaseslists related releases asowner/repository@tag. A release can belong to only one post.
Put post images and videos in public/blog/. Use a media comment with explicit dimensions so the browser reserves the correct space before the file loads.
<!-- ::post-image src="/blog/screenshot.png" alt="What the screenshot shows" width="1280" height="720" caption="Optional caption." -->Callouts use GitHub-style Markdown:
> [!WARNING] Upgrade first
> This release is not compatible with the previous version.Then run pnpm check. Invalid frontmatter and duplicate release IDs fail the build.
- Lucky Fireant (Great UI kit, makes the buttons fun to press).
- Fancy leopard pattern generator All I could find were goofy aah AI generators for this, until I found this absolute GEM from a Brazilian researcher. Say thank you to claude for porting it to js.