Case Study
Building JoyInvite, an AI-first invitation studio
One event description in, an animated video invitation and a matching PDF out — in English, Gujarati, or Hindi — with no designer and no editor.
Client
AI Garage — in-house build
Status
Pre-launch · Private beta
Stack
Next.js · Supabase · Gemini · Razorpay
The Challenge
Getting a wedding or event invitation made in India usually means hiring a designer for the layout and an editor for the video, then waiting days for revisions — worse if it needs to run in more than one language. A couple who wants their invite in Gujarati or Hindi, animated, and ready as both a video and a printable card is stuck coordinating two freelancers by hand.
JoyInvite’s premise: describe the event once, and generate a polished animated invitation — video and PDF, in the language it’s actually going to be read in — in minutes, self-serve.
What We Built
Not a template picker with an AI label on it — an onboarding flow, a rendering pipeline, and a delivery system that all had to work together.
AI quick-fill onboarding
Gemini reads the event details a user provides and maps them straight into template fields — no twenty-blank-input form.
Template → video pipeline
A dedicated render service turns a template plus a user’s edits into a synced MP4 with real animation and transitions.
True multilingual rendering
English, Gujarati, and Hindi — including correct complex-script rendering, where most template tools quietly break.
PDF parity
Every video invite also ships as a downloadable PDF from the same source data — dashboard, email, and analytics all track it equally.
Payments & delivery
Razorpay checkout and Resend email hand off to a dashboard that surfaces the finished video and PDF the moment rendering completes.
Under the Hood
Four real fixes from the build log — the kind of correctness problem that separates a working AI system from a demo.
Per-glyph font fallback
Gujarati and Devanagari text — down to a single comma — was rendering as tofu under the original font pipeline. Font selection now falls back per glyph, not per template.
FPS-normalize before crossfade
Mixed-frame-rate source clips caused visible stutter and drift across transitions. Clips are normalized to a common fps before compositing.
Static-text guard
Quick-fill was occasionally overwriting label and static-text elements it should have left untouched. Guarded those elements out of the AI write path.
Title-case ALL-CAPS input
Source event data in all caps was flowing straight into templates. Extracted fields are now normalized to look human-written by default.
Build Velocity
This is what the Build tier promises a founder: a real deployed system, not a slide deck — timed by the actual commit history.
150
Commits shipped
~5
Months, first commit to now
3
Languages rendered
2
Output formats, one pipeline
Pre-launch, and shown that way on purpose
JoyInvite hasn’t opened to the public yet — it’s in private beta while onboarding gets its final pass. We’re showing the build itself instead of traction, because the hard part of an AI-first product is rarely the demo. It’s the multilingual render pipeline, the async worker architecture, and the dozen small correctness bugs — like a comma rendering as tofu — that decide whether it works for a real user.
Want something like this built?
One production-grade AI system, from problem definition to deployed solution — in weeks, not quarters.