Worker hosting replaced by Vercel
Leto website · · 中文 · 日本語

Worker hosting replaced by Vercel

The site was originally deployed on a self-hosted worker.

The output held no separate CSS or JS files: the whole stylesheet was inlined into every HTML page's <style> (tools/build-site.js:594 reads hub_source/style.css, line 776 writes it), and the scripts were inlined the same way.

A page fetched nothing from an outside host. Publishing meant building locally, copying dist/ to web/dist/, and running one workers deploy command.

That host answered every file with the same vague content type, so a stylesheet or a script could not be loaded as its own file and had to be inlined.

Inlining was a workaround, not a design choice. The cost was one copy of the same CSS inside every page, and a style change that could never reach the browser cache on its own.

Measured, that cost has a size: hub_source/style.css is 46,729 bytes, and each of the 69 pages the build emitted carries its own copy of it, so a stylesheet edit rewrites every page at once and no page can share a cached copy with another.

The worker deployment path was removed (35ea0c5, 10-21): web/ came out of .gitignore and the AirHost section came out of the README, leaving no second deployment command.

Building and publishing go through Vercel, whose vercel.json already names the build command and the output directory (pnpm build:site, output dist/), so deployment comes down to pushing code.

The migration changed hosting only, not rendering. The inlined styles and scripts are still there, and dist/ still holds no .css and no .js file.

The "one path fewer" in this post is about deployment alone, not about how a page is built.