Production · holzwegholzweg.com
  • Spec-to-production, managed solo at an agency
  • Dual-layer cache + dedupe for high traffic
  • Client's HubSpot CRM as the single source of truth

Event management for the Austrian Pharmacists' Association

Project page

Live, running their events. HubSpot holds the data; the app is everything around it — registration, on-site check-in in seconds, reminders, feedback, certificates.

What it replaced

Registrations by email, signups on paper, and no reliable count of who was actually in the room. Every contact already sat in their HubSpot — what was missing was the link between that record and the human walking through the door.

Core technologies

  • Next.js 16 & React 19:Server actions for every data mutation, route groups for home / admin / feedback areas.
  • HubSpot API:Single source of truth for contacts, events, registrations, and sending emails.
  • Robust data handling:HubSpot likes to lazily update, which creates potential double-writes and duplicates. Don't rely on stale data.
  • web-push & Service Worker:Installable PWA with native push notifications and an offline app shell.

Easy on server + user

  • Deep caching:Tagged server cache + in-flight request dedupe, with client-side SWR doing optimistic mutations. Hard reload and pull-to-refresh bust the right cache tags.
  • Straightforward PWA install:Consistent install quality, with individual instructions across iOS, Android and a variety of browsers.
There is no "works on my machine" when a client is running an event on it.
Next.js 16React 19TypeScriptHubSpot APIweb-pushService WorkerData Lifecycle
Contact

Let's talk about the project.

Full attention on what we build. Remote, CET.