Skip to content
UNCODED

Paddenstoelenbos

A bilingual site for a mushroom forest that changes colour with the season it actually is.

A rebuild of the website of Stichting Paddenstoelenbos, a foundation in Weert (NL) that grows biodynamic mushrooms. In development; paddenstoelenbos.nl still runs the old site.

Sector
Foundation · Mushroom forest
Year
2026
Services
Web design, Development, Content migration, Accessibility
Stack
Next.js, React, Tailwind CSS, TypeScript, three.js, Vercel

(01)The idea

The old site was one long page. People came to find out when the next workshop is, whether they can pick mushrooms, and how to join in, and had to scroll past everything else to get there. The rebuild had to give each of those a real address, keep the foundation's own words, and still feel like a forest the people who run it call magical.

Stichting Paddenstoelenbos grows biodynamic mushrooms at the edge of the Tungelerwallen in Weert, and teaches people to do the same: workshops, walks, a supporter programme with its own coin, and a field trial against Japanese knotweed. The old site told all of that on one long page.

The people who visit come for three things: when the next walk or workshop is, whether they can pick something, and how to join in. So every section got its own page, and the forest's own voice (warm, a little strange, proud to be natuurgekkies) stayed exactly as they wrote it.

Screens

Paddenstoelenbos home page in the autumn palette: the headline Welkom in het Paddenstoelenbos, a photo of someone inoculating a log, and a drawn mycelium growing behind it.
Home in Herfst, the season the calendar picked. A mycelium grows behind the hero.
The same home page in the winter palette after dark: pale text and grey-white spores on a deep blue-black ground.
The same page in Winter, at night: the season from the calendar, the dark from the visitor's own device.
The Spora section: two photos of the foundation's own silver coin and two supporter tiers, Zwambassadeur GOLD at 20 Spora and SILVER at 10 Spora a month.
The Spora: the foundation's own coin, and the colour the site is named after.
A row of rounded photos from the forest (cooking over a fire, a mushroom cap held in a hand, a paper bag of shiitake) with a progress line underneath.
The forest in pictures: a pinned row that the vertical scroll moves sideways.
The field trial page, Aardpeer VS Japanse duizendknoop, with four figures in a rounded band: 40 m², 100 kg, 9 months, 6 m².
The knotweed trial. The only numbers on the site that count up, because watching them arrive is the point.
The home page on a phone, with a floating dock at the bottom: Agenda, Steun, Contact and Menu.
Phones get a dock with the three things people come for.
The full-screen menu on a phone, listing every page, with the season button, language switch and three reading preferences underneath.
Menu opens every page, plus the season and reading preferences.
The field trial figures on a phone at night, in orange on a dark brown ground, stacked one per row.
The field trial in Herfst at night.

(02)Design choices

Colour

  • Bosgroen#2F6B43Structure: buttons, the call to action
  • Spora#D4691FInteraction: hovers, arrows, marks, lines
  • Spora diep#B35213Spora as a surface under text
  • Herfst#F7EEDEAutumn ground
  • Crème#FDF7ECCards, and text on green
  • Inkt#1C1710Ink
  • Vlier#6B4A73Spore-print ornament, never a control

Type

  • FrauncesHeadings, loaded as a true variable font so its SOFT and WONK axes can be turned up. That is what stops the page sounding like a prospectus.
  • KarlaBody: a humanist grotesque with enough quirk to sit next to Fraunces.

Colour

Hue follows the calendar and brightness follows the visitor's device. Four seasons (Lente, Zomer, Herfst, Winter) each have a day and a night half, so someone arriving in October finds a site that knows it is October. Forest green carries structure; Spora, named after the foundation's own coin, answers everything you can touch.

Type

Fraunces with its soft, wonky axes on every heading, and Karla for reading. Both are self-hosted, so a build never depends on a font server answering. Type, section rhythm and corner radius are all fluid clamp() values, with no width where the site sits between two designs.

Shape

Two shapes and only two. Every container (card, panel, photo) has the same large rounded corners; everything you can touch is a pill. Section seams are a drawn thread of mycelium, not a rule.

Motion

Every flourish is gated and every one stands down: an opening veil once per visit, a mycelium that grows behind the hero, galleries that the scroll moves sideways. Under reduced motion all of it stops, and the visitor can overrule their system in both directions from the footer.

(03)The approach

  1. 01

    Every section of the old page got its own page with its own URL, in Dutch by default and English under /en. The old addresses that people already share still work, through permanent redirects.

  2. 02

    Four palettes, one per season, chosen by the calendar, each with a night half that follows the visitor's own dark mode. There is exactly one control: a button that says Seizoen.

  3. 03

    The Dutch copy is the foundation's own text, carried over as written. Workshop dates stay on the booking platform, so the site can never show a stale date.

  4. 04

    On a desktop the menu sits at the top; on phones a dock at the bottom holds the three things people come for (agenda, support, contact) plus a labelled Menu.

(04)The stack

Next.js 16
Every page prerendered in Dutch and English, with middleware that sends unprefixed paths to Dutch and keeps one canonical address per page.
React 19
One section shape for the whole home page, reused, so the page reads as one piece.
Tailwind CSS 4
Semantic colour tokens per season and per night half, and the fluid type and spacing scale.
TypeScript
All copy as typed Dutch and English pairs, each marked as the foundation's own words or a label the new structure needed.
React Three Fiber
The branching mycelium behind the hero, grown from a seeded generator so it is identical on every device.
Framer Motion + Lenis
Reveals, the scroll-driven photo rows and smooth scrolling, all switched off under reduced motion.
Vercel
Hosting, with the framework pinned in the repository so a new project can't mistake it for a static site.

(05)In the details

  1. 01

    Their words, not ours

    The Dutch copy is read from the live site and carried over as written. Each entry is marked as the foundation's own text or a heading the new structure needed. The terms and conditions stay in Dutch for every visitor, because the Dutch is binding.

  2. 02

    No stale dates

    Workshop dates stay on the booking platform that takes the money, and the site links to it. A second calendar would be a second source that could disagree.

  3. 03

    Old links keep working

    The field trial keeps the old site's own URL, and the renamed pages send permanent redirects, so links already sent out still land.

  4. 04

    One control, with a name

    The only switch on the site says Seizoen Auto · Herfst: you can see both that the site is choosing and what it chose. Pick a season and the calendar stops deciding until you pick Auto again.

(06) The outcome

Nine pages in Dutch and English, carrying the foundation's own photographs and film, each with alt text written by looking at it, and all eight colour grounds checked against WCAG AA.

Let’s talk

Let’s build
something uncommon.

A free, no-pressure intake call. You’ll leave with a clear scope and a fixed quote.