Engineering
This page documents how prisminvestment.nl is built. Every figure below is recalculated on each build, so this page cannot fall out of step with the website it describes.
Software stack
- Version
- v.1.0.0
- Released
- 2026-09-16
- Last changed
- 2026-10-30
- Environment
- Production — https://prisminvestment.nl
- Frontend
- Static HTML, CSS and JavaScript — no framework, no runtime dependencies
- Generator
- Eleventy 3.1.6 on Node 24 (pinned in
.nvmrc) - Templating
- Nunjucks — shared partials across both language versions
- Images
- eleventy-img 7.0.0 (sharp 0.35.4) — home photo in AVIF with a WebP fallback and its own crop for portrait screens; portrait in WebP with a JPEG fallback; logos in WebP with a PNG fallback, transparency preserved
- Typography
- Instrument Sans, self-hosted as a variable WOFF2 (SIL Open Font License)
- Languages
- Dutch at the root, English under
/en/ - Third-party requests
- None while loading — every resource is served from this domain. Only the enquiry form on the Strategy page sends data to Web3Forms, and only when a visitor submits it.
Weight
- Total
- 3527 kB across 88 files
- HTML
- 231 kB
- CSS
- 34.2 kB
- JavaScript
- 9.6 kB
- Fonts
- 40.3 kB
- Images
- 3195 kB
- Other
- 16.2 kB — sitemap, robots.txt, llms.txt, manifest,
.htaccess, font licence
Measured across the entire published directory, including both language versions and every image variant; text files counted with LF line endings, as git stores them. An individual page loads only a fraction of this.
Tools & services
- Version control
- Git and GitHub
- Build
- Eleventy — generates both language versions from one set of templates
- Analytics
- None — no cookies are set and no visitors are tracked
- Checks
- GitHub Actions builds both versions on every push and audits every page (
npm run audit) - Design and development
- JDH Company
Hosting & security
- Hosting
- STRATO, in Germany. Static files, no code on the server; the server settings live in generated
.htaccessfiles - Address
- https://prisminvestment.nl
Strict-Transport-Securitymax-age=31536000; includeSubDomainsX-Content-Type-OptionsnosniffX-Frame-OptionsSAMEORIGINReferrer-Policystrict-origin-when-cross-originPermissions-Policycamera=(), microphone=(), geolocation=(), payment=(), usb=()Content-Security-Policydefault-src 'self'; img-src 'self' data:; style-src 'self'; script-src 'self'; font-src 'self'; connect-src 'self' https://api.web3forms.com; form-action 'self' https://api.web3forms.com; frame-ancestors 'self'; base-uri 'self'; object-src 'none'- Cookies and storage
- No cookies. One sessionStorage flag records that this tab has already opened a page of the site, so the intro plays only when a visit starts on the home page; the flag is gone once the tab closes.
- Email address
- Not in the HTML as a plain @ address or a mailto link, only spelled out with [at]; JavaScript assembles the link in the browser
The headers above come from the same list the .htaccess is generated from.
Colours
The spectrum is taken pixel-exact from the logo.
Red
--spectrum-red
#d93533
Amber
--spectrum-amber
#fac302
Green
--spectrum-green
#81b054
Cyan
--spectrum-cyan
#04b6e6
Violet
--spectrum-violet
#855891
Ink and neutrals.
Ink 900
--ink-900
#1a1a1a
Ink 700
--ink-700
#454542
Ink 600
--ink-600
#5a5a58
Ink 500
--ink-500
#8a8a86
Ink 300
--ink-300
#d5d3ce
Ink 200
--ink-200
#e2e0dc
Ink 100
--ink-100
#eeece8
Ink 050
--ink-050
#f6f5f3
Paper
--paper
#ffffff
Typography
Instrument Sans, weights 400–700 from one variable file per character subset (Latin and Latin Extended). The headings scale fluidly with the width of the viewport; the other sizes are fixed.
--text-h1clamp(30px,3.6vw,42px)--text-h2clamp(22px,2.6vw,30px)--text-h3clamp(17px,2vw,20px)--text-body-lg18px--text-body16px--text-body-sm14px--text-label13px--text-caption12px--text-eyebrow11px--text-fine11px
