Dev log·

How busypizza.bond and this blog fit together

A one-file landing page with a subdomain per tool, and a blog whose publishing path is a schema, a build and a script.

There are two sites. busypizza.bond is the tools hub; this blog lives on www.busypizza.xyz. They are deliberately separate projects that point at each other.

The tools hub

busypizza-home is a static, single-file site: index.html is the whole thing, with no build step and no dependencies. The plan it documents is one Vercel project per tool, each on its own subdomain:

Host What
busypizza.bond, www. the landing page
study.busypizza.bond YKPao Study
tts.busypizza.bond Shanghainese TTS
tikz.busypizza.bond TikZ Generator
graphviz.busypizza.bond Graphviz Generator

YKPao Study is the featured item. Its link goes to the site root, which is a login wall for anyone not signed in, so student work stays behind that login and listing the product exposes nothing beyond its name. A speech. subdomain was planned for the TTS tool and never used; the tool shipped on tts. and the old host returns 404.

This blog

It is an Astro static site, deployed from main on every push. Posts are Markdown written in Typora. A content-collection schema is the guard rail: a missing or misspelled frontmatter field fails the build instead of shipping a broken post, and draft defaults to true so a half-written file cannot go out.

Publishing is a script. npm run publish slugifies the filename, moves Typora’s image folder along with it, flips the draft flag, builds to validate, and only then commits and pushes — so a bad field fails locally, not as a red deploy. A watcher (npm run watch) adds a drop folder, posts-inbox/: a Markdown file left there has its missing frontmatter filled in and is handed to the same pipeline.

What changed on 16 October

The Projects page and npm run sync:todos were added. The page lists every project, its status and its open items with dates; the script reads those from Apple Reminders into a data file, so a date is changed in one place and the site follows. Dev logs can set project: in their frontmatter to show that project’s open items under the post.

Written on 16 Oct 2026 from the READMEs of both repositories.