From e26831473cff2678e8c7d2257f427fbc62127247 Mon Sep 17 00:00:00 2001 From: jay Date: Sun, 31 May 2026 13:07:23 +0000 Subject: [PATCH] Dev workflow: network-bound vite dev + documented hot-reload loop - 'npm run dev' now binds the network (vite dev --host) so the HMR dev server is reachable from another machine. - README documents the two-terminal loop (serve --reload + npm run dev via the /api proxy), so iterating no longer needs build + restart + hard-refresh. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 16 ++++++++++++++++ frontend/package.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f9d32ca..1ae292d 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,22 @@ Endpoints: The ingestion CLI stays pure-stdlib; only the `web` extra pulls in FastAPI/uvicorn, so the two halves can be deployed and upgraded independently. +### Development (hot-reload, no rebuild dance) + +Two terminals, and you stop having to `npm run build` + restart + hard-refresh: + +```bash +# 1. API with auto-reload on backend code changes +python3 -m goodnews serve --host 0.0.0.0 --port 8000 --reload + +# 2. Vite dev server with hot module reload (proxies /api -> :8000) +cd frontend && npm run dev # serves on http://:5173 +``` + +Visit **:5173** while developing — frontend edits hot-reload instantly, and the +`--reload` API restarts itself on backend edits. Only build (`npm run build`) + +serve on `:8000` when you want to check the production-served form. + ### Frontend The site is a SvelteKit static SPA in `frontend/` (calm editorial design, mood-mode diff --git a/frontend/package.json b/frontend/package.json index 6a0236c..82559a5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,7 +4,7 @@ "version": "0.1.0", "type": "module", "scripts": { - "dev": "vite dev", + "dev": "vite dev --host", "build": "vite build", "preview": "vite preview" },