Skip to content

Quick start

Node 20 is required. Jest 29 and ESLint 9 both refuse to start on older runtimes, and it is the version CI pins.

nvm install 20
nvm use 20

Install both dependency trees:

cd jsx  && npm install --force
cd ../scss && npm install

Create the two local configuration files from their templates:

cd jsx
cp aws-exports.js.replace aws-exports.js
cp is_local.js.replace is_local.js

Then edit each, replacing every REPLACE-* token with a real value. is_local.js takes true for local work. The Cognito identifiers in aws-exports.js come from the deployed user pool — they ship in the browser bundle and are not secrets, but they do have to match the pool you are authenticating against.

Compile and serve:

cd jsx  && npm run build:prod && mv dist/content.js ../static/js/content.js
cd ../scss && npm run build:css && mv style.css ../static/css/style.css
cd ..   && npx http-server

static/ is where the deployed site serves the bundle and stylesheet from, so the commands above reproduce its layout locally.

With is_local.js set to true, /stream, /data and the front page's listings are drawn from samples built into their loaders rather than from the network. The knowledge graph is the exception: /graph and the front page's backdrop still call the knowledge graph API, which answers any origin, localhost included.

The configuration templates are described under Architecture, and deploying the result under Deployment.