All case studies

deutschland-forstet-auf.de — Platform Relaunch

Screenshot of the deutschland-forstet-auf.de platform showing a forested landscape and a call to plant trees.
Client
Deutschland Forstet Auf (nonprofit)
Role
Frontend and backend development; UX fixes during implementation
Timeline
6 weeks (2025), survey module as a follow-up contract (2026)
Scope
Relaunch including event management and email automation, later a survey module
Stack
Astro · React · MUI · Storyblok · Supabase · NestJS · Express · Brevo · Storybook · Netlify

Context

The platform connects volunteers with reforestation drives across Germany, run by a small, mostly volunteer team. The old site was technically outdated, and the organization wanted more: a new design to reach more people, plus features it never had before, including organizing planting drives, managing events, and automating email. The design came from a designer and the backend from a fullstack developer. I built most of the frontend. The organization later came back with a follow-up contract for the survey module, which I built from sending the emails to the results view in Storyblok. The site is live and carries the organization's day-to-day operations. After a planting day, participants get a survey by email, and the team reviews the answers in Storyblok.

Decisions

Decision 1

Thinking Designs Through Before Building Them

The designs I received showed the ideal case: one viewport, short content, no exceptions. Responsive behavior, edge cases, and implementation cost weren't part of that. That's normal, and it's exactly the point where I don't just "implement." I checked every layout against three questions: What happens with different content lengths? What happens on other viewports? What does this cost in implementation and performance? Where the answer was missing, I defined it myself, while keeping the design intent instead of simplifying it away.

Trade-off: Feasibility checks cost time before the first commit. In return, no layout has to be rebuilt later because it falls apart on a phone.

Decision 2

The Card Grid: A Concrete Example

The design called for a 4x2 grid of cards, deliberately breaking grid: cards tilted alternately left and right, the second row mirrored, every other column offset on the Y axis. On the desktop mockup, it worked. Everything else was open: How does the tilt behave with long titles? When does the grid break to 2x4, when to a single column? Does the offset survive on a phone, and if so, which one? I worked out the logic behind it: rules for tilt, offset, and breakpoints that work on every device and with any content, without losing the dynamism of the design.

Trade-off: Rules make the layout less free than the mockup. In return, it behaves predictably instead of being renegotiated with every new piece of content.

Decision 3

Content and Code, Strictly Separated

Everything editorial, meaning planting drives, text, images, lives in Storyblok, not in the code. The page structure lives in the code, not in the CMS. The team can't invent new page types without asking. In exchange, it can handle everything else on its own, without accidentally breaking the site through routine content edits.

Trade-off: Less flexibility for the team, no dependency on a developer for day-to-day work. For a volunteer-run platform, that's the right cut.

Visuals

Before: fixed rows. Short cards leave gaps, long ones nearly run into the next.
After: each column is its own stack with a fixed gap, however long the content runs.
The link in the email opens the survey for that planting day.
Summary view in Storyblok: every multiple-choice question as a bar or pie chart, with export and print.
Table view: one row per response, sorted by submission time.
1/5
Press section with eight tilted article cards in four columns, laid out in fixed rows: short cards leave large gaps below them, long ones nearly run into the next.
Figma frame of the same grid with red placeholder cards of varying heights. Each column is its own stack with a 64-pixel gap.
Survey form titled "Feedback zum Aktionstag", filled in with test data for age group, postcode, gender and status.
Summary of twelve test questionnaires in Storyblok: age groups as a pie chart, gender as a bar chart with a tooltip open. Above them, buttons for export and for printing the summary.
Table of test responses in Storyblok, sorted by submission time, with columns for age group, postcode, gender, status and news sources.

Before: fixed rows. Short cards leave gaps, long ones nearly run into the next.

Outcome

The site is live and carries the organization's day-to-day operations, from announcing planting days to event management to automated email. The team has managed the content on its own since handover. After a planting day, participants get a survey by email, and the team reviews the answers right inside Storyblok.

Get in touch

Similar project? The fastest way to find out if this fits is a message.

Message me

Mail app not opening? Copy the template and send it to hello@dadario.studio.