A Rust-built personal blog and portfolio for indianboy.sh.
The site builder compiles Markdown+ content into static HTML, feeds, metadata, and assets. A small workers-rs WebAssembly Worker runs on Cloudflare Workers and delegates generated assets to Cloudflare Static Assets.
cargo run -p site-builderThe generated site is written to dist/. All 13 current posts are migrated into content/posts/; the remaining parity work is tracked in docs/PARITY.md.
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
npm ci
npx playwright install chromiumWith a local Worker running, execute the HTTP and browser smoke tests:
./tests/route-smoke.sh
BASE_URL=http://localhost:8787 npm run test:browser-
Add
content/posts/<slug>.mdwithtitle,descriptionorsummary,publishedAt,tags, and optionalauthorfrontmatter. -
Add
assets/og/<slug>.pngfor the same slug. Use a 1200×630 image. -
Build and validate locally:
cargo run -p site-builder --release npx wrangler@4.58.0 dev --local --port 8787 ./tests/route-smoke.sh BASE_URL=http://localhost:8787 npm run test:browser
-
Deploy with
npx wrangler@4.58.0 deployand verify the post, its OG image, RSS entry, sitemap entry, and redirects. -
Commit and push the source changes. To recover a previous deployment, inspect
npx wrangler@4.58.0 deployments listand roll back the intended version.
Install worker-build and Wrangler, then run:
wrangler devThe visual direction is a quiet technical journal: one reading column, concise archive rows, editorial body text, restrained color, and no sidebar. It borrows content-first principles from the reference sites without copying their branding, artwork, wording, or layout.