Skip to content
MW.

03ConsumerMedia-heavyGerman/EU Market

Remember Well

An Instagram-style memorial platform serving the German/EU market — tribute pages with stories and galleries, background music, viewer roles, QR 'Soul Star' medallions, and per-tenant white-label branding.

Visit remember-well.com
Physical Remember Well QR medallion — black anodized tag with engraved QR code and brand mark
The physical 'Soul Star' medallion — QR tags fulfilled in bulk, activated by families01 / 03

Overview

Remember Well gives families living memorial pages organized into About, Media, and Tributes — with stories, photo/video galleries, background music, bookmarks, and granular viewer access. Physical Soul Star medallions carry QR codes that activate into pages. Multiple brands run on one platform through a white-label Apps layer.

The problem

Families wanted a social-network-familiar way to remember loved ones publicly or privately, including rich media (video, audio, embedded YouTube/Vimeo), while the business needed to sell physical medallions and run multiple branded storefronts on shared infrastructure.

Context

A German-first product (i18n EN/DE with German defaults and localized transactional templates) that evolved continuously — roughly 40 database migrations between 2024 and 2025 track the platform's growth from MVP to mature multi-brand system.

My role

Full-stack engineer across the React/Vite frontend (~25 page modules), the Express + Prisma/MySQL API (12 routers, ~71 endpoints), and the React admin panel.

  • Built the media pipeline: upload → ffmpeg transcode to web-optimized MP4 (≤720p, faststart, fps cap), first-frame thumbnail extraction, sharp JPEG optimization, audio normalization, then storage upload
  • Implemented passwordless magic-link login with signed JWT login tokens, 5-digit access codes, and language-resolved SendGrid template fallbacks, alongside Google OAuth
  • Engineered the QR tag lifecycle: bulk UUID tag generation to printable CSV, CSV import activation, passcode protection, and scan-time routing
  • Developed white-label branding resolution — origin-matched tenant config injecting CSS custom properties for colors/logos per deployment
  • Built stories/slideshow playback with background-audio modes, YouTube/Vimeo embed handling with oEmbed thumbnails, and polymorphic comments/likes
  • Implemented viewer/admin invitations, access-request approvals, bookmarks, and admin bulk tools including login-as-user

Architecture & technical decisions

Client/server split
React 18 + Vite + Redux Toolkit frontend; Node.js/Express API with Prisma on MySQL; separate React admin SPA — all deployed independently.
Realtime
Socket.io server with JWT handshake middleware and per-user rooms powering upload progress and notification events.
Storage & media
S3-compatible object storage (DigitalOcean Spaces) with gallery/temp key organization; conversions tuned per file for web playback quality versus size.
Tenancy
Apps table defines appName, URLs, logos, banner, primary/secondary colors, favicon, and store links; users and tags carry appId scoping so one deployment serves many brands.

Key features

  • Rich tribute pages

    Tabbed memorial view (About / Media / Tributes) with biography, cover/portrait imagery, story highlights, galleries, and moodboard-style bookmarking.

  • QR medallion fulfillment

    Operations generate sheets of unique tags as CSV for physical production; scanned or entered codes walk users through linking a tag to a new or existing profile.

  • Multilingual communication

    Login, verification, and notification emails resolved per user language with template-ID fallback chains and an error-report inbox on send failures.

  • Access collaboration

    Invite viewers or co-managers, approve access requests, revoke at any time — mirrored in the admin panel with impersonation for support.

Challenges & solutions

  1. Challenge 01

    Synchronous in-request video transcoding threatened to block the API under concurrent family uploads.

    Solution — Tuned ffmpeg presets per input (resolution scaling, CRF, faststart) and designed a sequential conversion queue with realtime Pusher progress events to keep the API responsive and users informed during processing.

  2. Challenge 02

    Passwordless login had to feel trustworthy for a grieving, often older audience across languages.

    Solution — Combined a signed, expiring login token in the email link with a fallback 5-digit code, rendered through per-language SendGrid dynamic templates selected from the user's locale.

  3. Challenge 03

    Multiple customer brands on one deployment required runtime theming without separate builds.

    Solution — Origin-matched brand resolution loads the right tenant configuration and injects CSS variables for colors and logos, letting each brand ship its own domain against shared infrastructure.

Outcome & what makes it interesting

Live commercial platform (remember-well.com) operating multi-brand memorial products for the EU market, with sustained feature velocity documented across ~40 migrations.

  • Owning an end-to-end media pipeline — transcode, thumbnail, optimize, store — for emotionally significant user content
  • Blending physical products (printed medallions) with digital activation flows
  • Runtime white-labeling that let sales onboard new brands without engineering involvement