We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Inspiration

Every creator we know has the same bottleneck: they have something to say — a product to show, a screen to record — but turning that raw capture into a post-worthy vertical reel means hours of scripting, voiceover, avatar work, and caption timing. Tools exist for each step, but nobody stitches them into one tap-to-post flow on the device where creators actually work: their phone.

So we built Menivor — drop in a screen recording, and it comes back a viral, ready-to-post UGC reel.

What it does

You give Menivor a screen recording and a prompt. It:

  1. Scripts it — a hook-driven script (TR/EN) tuned for short-form retention.
  2. Voices it — natural TTS timed to the words.
  3. Adds a lip-synced AI avatar presenter — a talking-head that delivers the hook.
  4. Burns CapCut-style word-by-word karaoke captions.
  5. Renders a 1080×1920 MP4 — ready for TikTok, Reels, and Shorts.

No timeline, no manual editing. Create → render → post, from your phone.

How we built it

  • Mobile: Expo / React Native (24+ screens: capture → compose → render → jobs library → publish), with device-session auth and a persistent, on-device export receipt so every render shows its real file, duration, and share result.
  • Monetization — RevenueCat: Pro exports are entitlement-gated. We mount RevenueCatProvider at the app root, Purchases.configure with the platform API keys, verify entitlements on getCustomerInfo, and present the paywall via RevenueCatUI — with restorePurchases and update listeners wired. The entitlement policy is unit-tested.
  • Backend: FastAPI + Celery orchestrate the render chain (script → tts → {avatar ‖ captions} → compose → upload); Cloudflare R2 for storage; a microdollar wallet with success-only settlement so a failed render never charges the user.
  • Model routing: ElevenLabs (voice), HeyGen / RunPod & diffusion providers (avatar/video), FFmpeg + libass for the final compositing (chroma PiP + karaoke captions, hardware-accelerated).
  • Web: a live marketing + product site at menivor.com (Next.js on Cloudflare Workers).

Challenges we ran into

  • Timing is everything. Voice, captions, and avatar all have to line up to the same millisecond. We made the TTS timestamps the single source of truth and drove captions + avatar off them, instead of guessing.
  • Failures shouldn't cost money or progress. Renders can fail mid-chain, so we made every step resume on the same job and made billing success-only — the wallet reserves, then only settles when a real MP4 lands.
  • RevenueCat across a real render economy. Gating exports (not just a flat subscription) meant entitlements had to be checked at the exact moment of value — the export — and degrade gracefully when unconfigured.

What we learned

  • Consistency and timing, not raw model quality, are what make a generated reel feel "real."
  • Success-only billing + entitlement-gated exports is a cleaner monetization story than a blunt paywall — you charge at the moment you deliver value.
  • Shipping a mobile creative pipeline forces brutal simplicity: one tap, one job, one receipt.

What's next

Character consistency (the same avatar/voice across every reel), direct publish to TikTok/IG/Shorts, and a template marketplace.

Built With

Share this project:

Updates

Submission history