- Node 22 (see
.nvmrc, andNODE_VERSIONinnetlify.tomlfor the build) - NPM
- Gatsby
ReactPreact (much better for performance)- Tailwind
- ESLint, with
@stylisticfor formatting
Run npm install
Note:
gatsby-plugin-preactpeers on an olderpreact-render-to-stringthan Gatsby 5 needs, so the install fails to resolve on its own..npmrcsetslegacy-peer-depsto get past it, here and on the Netlify build image.
npm run dev
The page will be available on http://localhost:8000/
The GraphiQL interface can be found on http://localhost:8000/___graphql
Icons are stored as raw SVG files inside src/icons. These are included in the project as an SVG sprite.
To update the SVG sprite, run
npm run build:icons
Note: Icons should have a
viewBox, but nowidthorheight(this makes them scalable through CSS). Also make sure there is nofillofstrokecolor defined.
The site is English only. src/components/Head.tsx emits a canonical link for
every page, and netlify.toml 301s the old /nl/ and /en/ URLs to their
unprefixed pages. See ADR 3.
static/robots.txt and gatsby-plugin-sitemap produce /robots.txt and
/sitemap-index.xml.
npm run build
The build fails on Node 23 and up unless msgpackr resolves to 1.11.2 or
later, which the overrides in package.json takes care of. See
ADR 2.
This repository is connected to Netlify and any changes to the main branch will result in a new build and deploy to production.
gatsby-adapter-netlify handles the Netlify side of the build: it writes
public/_headers (immutable caching for the fingerprinted assets, plus a few
security headers) and public/_redirects. Both are generated, so put anything
hand-written in static/ instead.