-
Boot the deployment (background). From local-deploy/:
CAT_FACTORY_DIR=C:/sources/cat-factory node scripts/start.mjs
Run it in the background and tail its log. Wait for the readiness banner:
[start] Board UI: http://localhost:3000. First run writes .env (generating the two crypto
secrets) and starts Postgres, the backend (:8787), and the Nuxt frontend (:3000).
- If another local cat-factory is already on
:8787/:3000 (check netstat), isolate this one:
set PORT=8788 in local-deploy/.env and boot with FRONTEND_PORT=3001. The launcher passes
the frontend the matching NUXT_PUBLIC_API_BASE. Do not kill the user's other processes;
touch only the ports this deployment owns.
-
Verify it's healthy.
curl -s http://127.0.0.1:8787/health
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/
-
Capture. Either drive the Playwright MCP against the board URL, or run the script:
cd local-deploy && node scripts/screenshots.mjs
It signs in (creating docs@example.com on first run; the account persists in Postgres, so later
runs log in), then captures a fixed set (see the map below). Review each image before using it:
drop any that just show the board because the target needed a repo/model first.
-
Optimize the captures. From the repo root, convert the new PNGs to WebP:
pnpm docs:images
Screenshots are captured at 2x Retina (2880px) but never display wider than ~960px, so this
shrinks each ~80% with no visible loss (text stays crisp). It's idempotent: only new/changed
sources are processed. Run it after dropping unwanted captures: it deletes the PNG source, so
review first (pass --keep if you need to retain a PNG). WebP is the committed asset; there are
no PNGs in the repo.
-
Embed into the docs. Reference images as /images/app/<name>.webp (VuePress base is /, and
public/ is served from the root). Give each a descriptive alt and a one-line lead-in that matches
the surrounding doc's voice (present tense, no changelog framing, same rules as sync-docs). Place
an image next to the prose it illustrates, not in a gallery.
-
Build to verify. pnpm docs:build from the repo root. It should render all pages with exit 0.
(Pre-existing rolldown/vueuse "pure annotation" warnings are unrelated noise.)
-
Stop / clean up when done. Ctrl+C (or kill the background task) stops backend + frontend.
node local-deploy/scripts/stop.mjs stops Postgres (--volumes wipes the DB). If you opened a PR,
follow this repo's conventions (branch, docs: commit, gh pr create).