Local development
Prerequisites
-
Node.js 22+ (
package.jsonengines) -
pnpm 9 (CI uses
pnpm/action-setup@v4with version 9)
Quick start
git clone https://github.com/dev-centr/devcentr.org.git
cd devcentr.org
pnpm install
pnpm dev
predev runs scripts/build-news.mjs, which needs news posts under content/news/ (always present in the repo).
Open the URL printed by Vinxi (typically http://localhost:3000).
Full fidelity (changelog + advisor + templates)
For /changelog, /toolchain-advisor, and /skills with live sibling data, clone checkouts beside this repo:
cd ..
git clone https://github.com/dev-centr/toolchain-advisor.git
git clone https://github.com/dev-centr/agent-rules.git
git clone https://github.com/dev-centr/devcentr.git
git clone https://github.com/dev-centr/general-knowledge.git
git clone https://github.com/dev-centr/docs.git
cd devcentr.org
pnpm news:build
pnpm sync-advisor
pnpm sync-bootstrap-profiles
pnpm dev
Without siblings, news still builds; changelog ingest logs changelog skip (missing) for absent repos; advisor and bootstrap-profile sync warn and exit cleanly if no SDL is found.
Common scripts
| Command | Purpose |
|---|---|
|
Dev server ( |
|
Production static build to |
|
Regenerate news JSON, changelog JSON, RSS, and Atom |
|
Copy and compile toolchain-advisor SDL → |
|
Compile bootstrap-org SDL → |
|
Rasterize SVG logos to PNG sizes under |
Editor setup
Committed .vscode/settings.json and .vscode/extensions.json enable dprint format-on-save and recommend the SolidJS extension.
See VS Code & CI walkthrough for rationale.
Troubleshooting
-
Stale news or changelog — run
pnpm news:buildafter editingcontent/news/or after pulling sibling changelog files. -
Advisor page empty — run
pnpm sync-advisorwithtoolchain-advisorchecked out; verifypublic/catalog/advisor.jsonexists. -
Skills / bootstrap selector empty — run
pnpm sync-bootstrap-profileswithagent-ruleschecked out; verifypublic/catalog/bootstrap-profiles.jsonexists (gitignored, not committed). -
CI fails
skills/index.html— Vinxi does not emit a directory index for client-only routes;scripts/spa-fallback.mjsmust copy the SPA shell into.output/public/skills/. -
Build fails on CI but works locally — CI uses
pnpm install --no-frozen-lockfile; ensure lockfile is committed after dependency changes.