Honored Memory and Loyal Memory are a $10 AI-generated memorial video SaaS — two live brands on one codebase. A customer uploads photos and a few sentences about someone they lost; five cooperating AI agents write the script, score the narration, plan the visuals, pick the music, and tag the asset library. A human reviews every video before it's delivered.
The Product
honoredmemory.com and loyalmemory.com are founder-built SaaS products — not client engagements — running on a single codebase and deploy pipeline. The same FastAPI back-end, render worker, Postgres database, and storage bucket serve both brands; brand is a config value, not a fork.
The business is simple: a family uploads a few photos and a few sentences about someone they've lost. Within 24 hours, they receive a narrated, music-scored, beat-synced memorial video. Price: $10. Every video is human-reviewed by an admin before the customer sees it — a hard product requirement in grief-tech, not an optional quality step.
Honored Memory targets human memorials. Loyal Memory targets pet memorials and pet celebrations — the same pipeline detects from the customer's words whether the pet is still alive and writes accordingly.
Why This Is Technically Hard
A grief-tech product has constraints a typical video-generation tool doesn't:
- Every video is about a specific real person. The AI narrator stays a neutral third party — never impersonates the submitting family member, since the video is meant to be shared publicly with everyone who knew the person. Mood is inferred from the customer's words, never asked directly.
- Human review is non-negotiable. An AI-generated video about someone who has died goes to a family under emotional stress. Every video is reviewed by a human admin before it's delivered — there is no auto-deliver path.
- The render pipeline takes 10–20 minutes. It cannot run inline in an HTTP request. A production incident where a real order succeeded server-side but the customer's browser had already been shown a timeout error drove the architecture toward a fully async pipeline with progressive reveal.
- Two brands, one codebase. Forking means fixing every future bug twice, forever. The multi-brand architecture was a deliberate architectural call.
Preview generation runs in the background and shows script + photos in ~10 seconds. The full render — the slow part — runs as a separate Cloud Run Job after payment, ending in mandatory human review.
The Five AI Agents
Five cooperating agents handle everything mechanical about producing a tribute video, from the first draft of the script to tagging the asset library an admin uploads to:
- Script Writer Agent — writes the title, narration body, mood, and voice from the customer's intake. For Loyal Memory, it also detects whether the tribute is for a living or deceased pet from verb tense alone ("he IS a happy dog" vs. "was") — a detail that drives everything downstream.
- Visual Segment Planner Agent — reads the actual transcribed narration and decides which moments call for a composited photo frame, a filler clip, or a plain photo — anchored to real sentence timestamps, not invented splits.
- Slide Notes Writer Agent — writes the opening and closing text-card copy as a separate pass, so the bookend cards read like someone who actually read the finished script wrote them.
- Music Picker Agent — matches a track from the admin's own library by reading each track's plain-language description against the script's mood, no fixed taxonomy required.
- Asset Tagger Agent — auto-tags filler clips on upload using brand-specific vocabulary, so an admin never has to open a taxonomy picker.
Proof: Multi-Brand via Config, Not Fork
Every downstream component — script prompt, theme vocabulary, payment account, email sender, filler-clip pool, music pool — branches on a single brand value. One frontend build resolves brand at runtime from the request hostname; only the accent color, favicon, logo, and copy differ per site.
Honored Memory
human memorials
+
Loyal Memory
pet memorials
=
one
codebase
Same deploy pipeline
zero marginal infra
Loyal Memory — the pet-memorial brand, added without a second GCP project, a second database, or a second render pipeline.
Engineering Highlights
- Progressive reveal UX. The order form returns in ~3 seconds. Script fields commit to the database the moment the model returns, so the preview page shows script text and photos ~10 seconds after submit — no 30-70 second spinner.
- TTS reuse across stages. The Stage-1 narration file is saved and reused directly in Stage 2 instead of a second, identical text-to-speech call.
- Async by design, for a specific reason. The hosting layer's proxy to the backend has a fixed ~60-second timeout that isn't configurable. A real production incident — an order that succeeded server-side while the customer's browser had already shown an error — drove every slow step onto a background task queue, acknowledged immediately.
- Render worker sized for reality. The video render job runs at 8Gi/2CPU — the frame cache, headless browser, and video encoding running together will exhaust memory at half that, confirmed in production.
- Audio loudness normalized on every render so two admin-uploaded tracks mastered at different levels don't sound inconsistently loud in delivered videos.
- Orientation-aware photo compositing — landscape and square customer photos use different frame-window mappings so nothing gets awkwardly cropped into a photo frame.
Outcomes
- Two live storefronts in production, serving real paying customers
- Human review preserved as a hard product constraint — every video reviewed before delivery, by design
- End-to-end pipeline automated from intake to rendered video, 24-hour SLA, zero manual production steps
- Multi-brand at zero marginal infrastructure cost — the second brand added no second GCP project, database, or Cloud Run service
- Progressive reveal UX makes a 10–20 minute backend render feel fast, because the customer sees content incrementally instead of staring at a spinner
The Bigger Pattern
Consumer AI products in emotional or high-stakes domains — grief, healthcare, education — need a human in the loop, not as a compromise but as a feature. The architecture here proves a fully automated AI pipeline and a mandatory human review gate aren't in tension: the pipeline handles everything mechanical, the human handles the moment that actually matters to the customer. The same pattern applies to any AI product where the output touches a real person in a real emotional context.