The website for LWJGL is build with React. It is a single-page application with client-side routing. It installs a Service Worker in order to work offline.
There is currently no server-side rendering because of hosting constraints.
Static assets are loaded from LWJGL's CDN (AWS CloudFront).
Build status icons are loaded directly from travis-ci.org and appveyor.com.
Three.js is loaded from jsDelivr.
Install all required npm packages and build styles:
#corepack enable
pnpm i
node --run build:styles
Start the server in dev mode:
node --run start
The following flags are used for testing production builds locally. NODE_ENV environment variable must be set to "production".
--test # Enables production test mode (e.g. disables HSTS)
--nocache # Disables Pug view caching
--pretty # Pretty prints HTML
--s3proxy # Proxies S3 images
NODE_ENV="production" # default: development
PORT="8080" # default: 80
HOST="127.0.0.1" # default: 0.0.0.0
To deploy LWJGL in production please read the separate guide: DEPLOYMENT.md.
git pull
pnpm i
node --run release
You can run the production build locally:
node --run dev:test-production
The following debugging tips may come in handy:
minimize: false in webpack.config.jsconsole.log or debugger by changing terserOptions in terser-config.jsonPROFILING=1 env variable to load React profiling buildsnamed module & chunk ids in webpack.config.jsnpx webpack-bundle-analyzer public/js/build.manifest.json -h 0.0.0.0 (for full breakdown, change to all: true when writing build.manifest.json in build-production.js)$ claude mcp add lwjgl3-www \
-- python -m otcore.mcp_server <graph>