A real database, not a page builder
Content lives in Supabase (Postgres) with row-level security, so the team edits through the admin area and the database itself enforces who can read and change what. The schema grew through about 27 SQL migrations as new needs came in.
Email that does not double-send
Form notifications and activity reminders go through Resend. The reminder job runs on a schedule, uses Norwegian time for its dates and is idempotent, so a retry never sends the same reminder twice.
The magazine as a magazine
Mangfoldsposten is published as a PDF. Instead of a download link only, the site renders it page by page with pdf.js and lets readers flip through it, with zoom, fullscreen and an archive of earlier editions.
Validate everything that comes in
Forms are validated with Zod on the server, and link fields such as external links and the Vipps link only accept real http(s) addresses before anything is saved.