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 .htaccess files
Address
https://prisminvestment.nl
Strict-Transport-Security
max-age=31536000; includeSubDomains
X-Content-Type-Options
nosniff
X-Frame-Options
SAMEORIGIN
Referrer-Policy
strict-origin-when-cross-origin
Permissions-Policy
camera=(), microphone=(), geolocation=(), payment=(), usb=()
Content-Security-Policy
default-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-h1
clamp(30px,3.6vw,42px)
--text-h2
clamp(22px,2.6vw,30px)
--text-h3
clamp(17px,2vw,20px)
--text-body-lg
18px
--text-body
16px
--text-body-sm
14px
--text-label
13px
--text-caption
12px
--text-eyebrow
11px
--text-fine
11px