The server starts on port 4000 with NODE_ENV=development and English content enabled. nodemon watches for file changes and restarts the server automatically.
npm start and npm run dev are equivalent — both invoke the same command.
To stop the server at any time, press Ctrl+C in your terminal.
The --inspect flag enables the V8 inspector protocol on 127.0.0.1:9229. You can then attach a debugger from VS Code or Chrome DevTools. See Debugging for a step-by-step guide.
By default, the server only loads English content (ENABLED_LANGUAGES=en). Loading all languages at startup would significantly increase memory usage and startup time.To enable one or more additional languages, set ENABLED_LANGUAGES before starting the server:
ENABLED_LANGUAGES=en,ja,pt npm start
You can also set ENABLED_LANGUAGES in your .env file to avoid typing it every time.
Restart the server after changing ENABLED_LANGUAGES. The application reads this variable at startup and does not reload it on the fly.
If you want to run with all languages enabled and skip nodemon’s restart overhead, use:
npm run start-all-languages
This runs tsx src/frame/server.ts directly with NODE_ENV=development and no ENABLED_LANGUAGES restriction — meaning all supported languages are served.
The fixture server loads a lightweight set of test content from src/fixtures/fixtures instead of the full content tree. It starts much faster and is useful when working on application code rather than documentation content.
npm run fixture-dev
This is equivalent to:
cross-env ROOT=src/fixtures/fixtures npm start
A debug variant is also available:
npm run fixture-dev-debug
Use the fixture server when you’re iterating on server logic, middleware, or rendering behavior and don’t need the full content tree loaded.
The server uses nodemon to watch for changes and restart automatically. The watch configuration is in package.json under "nodemonConfig":Watched file extensions:ts, json, yml, md, html, scssDirectories ignored by nodemon (changes here do not trigger a restart):
assets/
script/
tests/
content/
translations/
data/reusables/
data/variables/
data/glossaries/
data/product-examples/
data/learning-tracks/
rest-api-description/
semmle-code/
Changes to files inside content/ and data/ do not trigger a server restart. The server reads content dynamically on each request, so you can edit Markdown and Liquid files and refresh your browser to see the result without waiting for a restart.
Changes to TypeScript source files in src/, configuration files, or schema files will trigger nodemon to restart the server. Watch the terminal output to confirm the restart has completed before refreshing your browser.