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.

24ac6e8render

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.

fb7ca4drender

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.

64a9b98quick-fill

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.

661228bquick-fill

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

Mar 2026Aug 2026

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.