CodingIdeas.ai

TestimonialCut — AI Video Editor for Testimonial Clips

Paste a raw customer interview video and get a polished, shareable testimonial clip in minutes. AI removes filler words, cuts awkward silences, adds captions, and exports a social-ready version — no editing skills needed.

Difficulty

intermediate

Category

Video AI Tools

Market Demand

High

Revenue Score

8/10

Platform

Web App

Vibe Code Friendly

⚡ Yes

Hackathon Score

🏆 8/10

Validated by Real Pain

— sourced from real search demand

Organic Searchreal demand

Marketers and video professionals are actively searching for AI-powered tools to automatically edit raw customer interview footage into polished testimonial clips.

What is it?

Marketers and agency owners constantly collect raw customer video interviews but lack time or budget to edit them into tight testimonial clips. TestimonialCut takes a raw MP4 upload, transcribes the audio with Whisper, uses GPT-4o to identify the strongest 30-90 second highlight, then auto-cuts the video, removes ums/ahs, burns in captions, and adds a branded outro. The result is a download-ready testimonial clip optimised for landing pages, LinkedIn, and ads. Users log in, upload a video, preview the AI-selected cut, optionally tweak the transcript, and export — the entire workflow takes under 5 minutes. Agencies handling 5+ clients per month save 3-6 hours of Premiere Pro work per testimonial, making this immediately cost-justifiable at $29/month. At scale, white-label subdomains and API access open enterprise revenue streams without fundamentally changing the core product.

Why now?

OpenAI Whisper's word-level timestamps (released late 2023) finally make frame-accurate auto-cutting possible via API without custom ML. GPT-4o's speed makes real-time transcript scoring viable in a web app, eliminating the last technical blocker that made this product impossible to build solo before 2024.

  • AI highlight detector: GPT-4o reads the full transcript and scores each sentence for emotional impact, specificity, and social proof signal — auto-selects the strongest 30-90s cut
  • One-click silence and filler removal: Whisper transcript timestamps used by FFmpeg to cut pauses longer than 0.8 seconds and detected filler words before stitching the final clip
  • Burnt-in caption generator: styled captions rendered frame-accurately over the exported video with font, size, and colour customisation for brand matching
  • Brand outro builder: upload logo, choose accent colour, and add CTA text — TestimonialCut appends a 3-second branded end card to every export automatically

Target Audience

Marketing agencies (50k+ in US alone) managing 3-10 client testimonial videos per month, plus SaaS founders and course creators who collect customer proof videos but lack editing bandwidth.

Example Use Case

Sara runs a 3-person marketing agency. She uploads a 12-minute client interview on Monday morning. TestimonialCut transcribes it, GPT-4o selects the most emotionally resonant 60-second segment, auto-cuts the video, adds captions in Sara's client brand colours, and Sara downloads the final clip in 4 minutes. She bills the client $150 for the deliverable and spends zero time in Premiere.

User Stories

  • As a marketing agency owner, I want to upload a raw client interview and get a trimmed testimonial clip automatically, so that I can deliver polished video proof to clients in under 10 minutes instead of 3 hours.
  • As a SaaS founder, I want the AI to identify the most emotionally compelling quote from my customer call recording, so that I can use the strongest possible social proof on my landing page without watching the full video myself.
  • As a freelance video marketer, I want to add my client's logo and brand colours to every exported clip, so that I can deliver white-labelled deliverables that justify my $150 per-video rate.

Done When

  • Core export flow: done when a user uploads an MP4 under 500MB, receives a trimmed and captioned clip download link within 3 minutes, and the exported video plays correctly in browser and on mobile.
  • Auth: done when Google OAuth redirects to /dashboard, displays user avatar and name, and Supabase session persists across page refreshes.
  • Payment: done when Stripe processes Starter plan checkout, webhook updates exports_limit in DB, and user can immediately trigger an export that was previously gated.
  • AI highlight: done when GPT-4o returns a start_ms and end_ms that, when played, contains a coherent and complete testimonial statement with no mid-sentence cuts.

Is it worth building?

$29/month Starter (5 exports) x 60 users = $1,740 MRR + $79/month Agency (25 exports) x 20 users = $1,580 MRR = $3,320 MRR by month 3. Path to $10k MRR opens at month 6-8 via white-label agency seats and credit pack upsells.

Unit Economics

CAC: $12 via LinkedIn DMs and Reddit (time cost only, no paid ads). LTV: $290 (10 months at $29/month Starter average). Payback: under 1 month. Gross margin: ~82% (API + infra costs ~$0.52 per export at scale).

Business Model

SaaS subscription + credit packs

Monetization Path

Free tier: 1 export to prove value. Starter $29/month: 5 exports. Agency $79/month: 25 exports + brand kit. One-time credit packs ($9 for 3 extra exports) catch overages. Free converts at 15% within 7 days based on comparable video tools.

Revenue Timeline

First dollar: day 10 (Starter plan at launch). $1k MRR: month 2. $5k MRR: month 7.

Estimated Monthly Cost

OpenAI Whisper + GPT-4o: ~$60 at 200 exports/month, Vercel Pro: $20, Supabase: $25, Resend email: $0 (free tier). Total: ~$105/month at launch scale.

Profit Potential

Full-time viable at $5k MRR (roughly 120 Starter users or a mix of tiers). Infrastructure costs stay under $200/month until 500+ active users due to serverless FFmpeg and API-only AI.

Scalability

High — white-label for agencies, API access for video platforms, team seats, bulk upload for enterprises running ABM campaigns.

Success Metrics

Week 1: 80 signups from ProductHunt and Reddit. Month 1: 15 paying users. Month 2: 85% monthly retention, 3+ exports per paying user per month (proves habit). Month 3: $3k MRR and at least 2 agency users on the $79/month plan.

Launch & Validation Plan

Post in r/marketing and r/agencies asking how long testimonial editing takes. DM 20 Upwork video editors offering free beta access. Build landing page with waitlist before writing a single API call. Target 30 signups before shipping V1. Confirm at least 5 people say they would pay $29/month before wiring Stripe.

Customer Acquisition Strategy

First 10 customers: DM agency owners on LinkedIn offering 3 free exports. Then: ProductHunt launch (Video Tools category), post before/after clips on Twitter/X and LinkedIn, SEO blog posts targeting 'how to edit customer testimonial videos fast', and a YouTube tutorial ranking for 'testimonial video editing tutorial'. Month 2: affiliate program offering $15/referral to active agency users who refer new paying customers.

What's the competition?

Competition Level

Medium

Similar Products

Descript (general editor, $24-$40/month, not testimonial-specific), Opus Clip (clips for social, not testimonials), Testimonial.to (text testimonials only, no video editing).

Competitive Advantage

Descript and Opus Clip are general-purpose — TestimonialCut is the only tool purpose-built for testimonial extraction, so prompts are pre-tuned for social proof language, pricing is 60% cheaper than Descript for this use case, and onboarding takes 90 seconds vs 20 minutes.

Regulatory Risks

Low — user-uploaded content is their own. Add clear ToS that users own rights to uploaded footage. GDPR: allow video deletion on request. No biometric data processing concerns since audio is transcribed but not stored long-term. Include explicit data retention policy stating raw videos are deleted from Storage after 30 days unless user opts to retain them.

What's the roadmap?

Feature Roadmap

V1 (launch): upload, Whisper transcription, GPT-4o highlight selection, FFmpeg trim, caption burn, brand outro, Stripe billing. V2 (month 2-3): bulk upload for agencies, transcript editor with manual override, LinkedIn and Twitter direct publish, export history dashboard. V3 (month 4+): white-label subdomain for agencies, API access for video platforms, team seats, custom caption animation presets, and multi-language caption support.

Milestone Plan

Week 1-2: Supabase schema, Auth, Storage upload, and Whisper transcription API working end-to-end — done when a raw video produces a timestamped transcript in the dashboard. Week 3-4: GPT-4o highlight selection, FFmpeg export, caption burn, and Stripe billing live — done when a paying user can complete the full export workflow from upload to download. Month 2: brand outro builder, TranscriptEditor manual override, Resend notifications, and ProductHunt launch — done when 3 agency users each export 5 or more clips in a single month.

How do you build it?

Tech Stack

Next.js 14, OpenAI Whisper API + GPT-4o, FFmpeg (via ffmpeg-wasm or Vercel edge function), Supabase Storage + Postgres, Stripe, Vercel — build with Cursor

Suggested Frameworks

ffmpeg-wasm for browser-side trimming, AssemblyAI as Whisper fallback, Remotion for caption overlay rendering

Time to Ship

3 weeks

Required Skills

OpenAI Whisper + GPT-4o API integration, FFmpeg video processing, Next.js file upload handling, Stripe billing.

Resources

OpenAI API docs (Whisper + chat completions), FFmpeg WASM GitHub, Remotion docs, Supabase Storage quickstart, Stripe metered billing docs.

MVP Scope

app/page.tsx (landing + upload UI), app/api/transcribe/route.ts (Whisper call), app/api/highlight/route.ts (GPT-4o scoring), app/api/export/route.ts (FFmpeg trim + caption burn), lib/db.ts (users + exports schema), components/VideoPreview.tsx, components/TranscriptEditor.tsx

Core User Journey

1. User signs up with Google OAuth and lands on /dashboard showing the pre-loaded demo video. 2. User clicks 'Generate Clip' on demo to see AI highlight selection and caption output in under 60 seconds. 3. User clicks 'Try with your own video' and uploads an MP4 via drag-and-drop. 4. System calls Whisper API and returns a timestamped transcript displayed in TranscriptEditor. 5. GPT-4o scores segments and auto-selects the strongest 30-90s highlight, highlighted in the transcript UI. 6. User previews the selected clip in the VideoPreview component and optionally adjusts start/end handles. 7. User customises caption font, colour, and uploads logo for brand outro. 8. User clicks 'Export' — FFmpeg serverless job runs trim and caption burn. 9. Dashboard polling detects job completion and shows download button; Resend sends export-ready email. 10. User downloads final MP4 and shares on LinkedIn.

Architecture Pattern

User uploads video via signed Supabase Storage URL → raw file stored in Supabase bucket → background job calls OpenAI Whisper API for word-level transcript → transcript sent to GPT-4o for highlight scoring → FFmpeg serverless function trims video to selected segment and burns captions → exported MP4 saved back to Supabase Storage → download link delivered to user via dashboard polling and Resend email notification.

Data Model

User has fields: id, email, google_id, avatar_url, created_at. Subscription has fields: id, user_id (FK), stripe_customer_id, stripe_subscription_id, plan (free|starter|agency), exports_used, exports_limit, reset_at. Project has fields: id, user_id (FK), title, created_at, status (processing|ready|failed). RawVideo has fields: id, project_id (FK), storage_url, file_size_mb, duration_seconds, uploaded_at. Transcript has fields: id, project_id (FK), segments (JSONB array of {word, start_ms, end_ms}), created_at. HighlightSelection has fields: id, project_id (FK), start_ms, end_ms, score, gpt_reasoning, confirmed_by_user (bool). ExportedClip has fields: id, project_id (FK), storage_url, caption_style (JSONB), outro_config (JSONB), exported_at. User has one Subscription; User has many Projects; Project has one RawVideo, one Transcript, one HighlightSelection, and one ExportedClip.

Integration Points

OpenAI Whisper API (audio transcription with word-level timestamps), OpenAI GPT-4o API (transcript scoring and highlight selection), FFmpeg via Vercel serverless function (video trimming, silence removal, caption burn), Supabase Postgres (relational data), Supabase Storage (raw video and exported clip file storage with signed URLs), Stripe (subscription checkout, webhooks, credit pack one-time payments), Resend (transactional export-ready email notifications), Sentry (error tracking and alerting)

V1 Scope Boundaries

V1 includes: single-user accounts, MP4 upload up to 500MB, Whisper transcription, GPT-4o highlight scoring, FFmpeg trim and caption burn, brand outro with logo and colour, Stripe Starter and Agency subscriptions, credit pack one-time purchases, Resend export email, Google OAuth, Supabase Storage CDN download. V1 excludes: team and multi-seat accounts, mobile app, white-label subdomain, direct social media publishing, batch upload, in-app video recording, audio-only podcast support, multi-language captions, and custom caption animations.

Success Definition

A paying stranger uploads a raw video, previews the AI cut, exports the final clip, and shares it on LinkedIn — all without contacting support.

Challenges

Distribution is the hardest part — video editing tools have fierce SEO competition. Must win on niche positioning (testimonials only) and target agency subreddits, Slack groups, and Upwork profiles before fighting Descript head-on. FFmpeg serverless cold starts can spike export times unexpectedly — pre-warming functions and implementing a job queue with status polling is essential to avoid user-facing timeouts.

Avoid These Pitfalls

FFmpeg complexity trap: do not attempt full in-browser FFmpeg for V1 — use a lightweight Vercel serverless function with a hard 60-second timeout and 500MB memory limit; handle failures with a status-polling retry queue, not synchronous waits that will time out the HTTP connection. Scope creep from general video editing requests: testimonial-only framing is your moat — when users ask for interview podcast editing or YouTube clip tools, log the request, say 'on the roadmap', and stay laser-focused on testimonial social proof extraction for launch. Over-engineering the AI prompt on day one: ship a simple GPT-4o scoring prompt that looks for outcome language, emotion words, and before/after structure — iterate the prompt based on real user feedback rather than pre-optimising for edge cases that may never appear.

Security Requirements

Supabase Auth with Google OAuth enforces user identity on every request; Row Level Security policies on all tables ensure users can only read and write their own projects, transcripts, and exports. Supabase Storage signed URLs expire after 1 hour to prevent unauthorised video access. Upload endpoint is rate-limited to 10 requests per hour per IP via Vercel middleware, and raw video content and transcript text are never written to application logs or Sentry payloads.

Infrastructure Plan

Vercel Pro hosts the Next.js app and serverless API routes with 60-second function timeout configured for FFmpeg export jobs; Supabase provides managed Postgres and object Storage with CDN edge delivery for exported clips. GitHub Actions runs lint, type-check, and a Playwright smoke test on every push to main before auto-deploying to Vercel production; Sentry monitors runtime errors across frontend and API routes with PagerDuty alerting for P0 failures.

Performance Targets

100 DAU at launch. Video upload progress bar updates every 500ms. Whisper transcription completes in under 90 seconds for a 10-minute video. FFmpeg export (trim plus captions) completes in under 3 minutes. Dashboard initial load under 1.5 seconds. Exported clip first-byte download under 200ms via Supabase Storage CDN edge.

Go-Live Checklist

  • 1. Supabase RLS policies verified: create a second test user and confirm they cannot read or modify the first user's projects, transcripts, or exported clips via direct API calls.
  • 2. Stripe live mode tested end-to-end: complete a real Starter plan checkout, confirm webhook fires, verify exports_limit increments in DB, and confirm export gate lifts immediately.
  • 3. Full upload-to-download journey completed by 5 external beta users on production domain without any support intervention.
  • 4. Sentry error tracking active on both frontend and all API routes with a Slack alert channel configured for error spikes above 5 per minute.
  • 5. Custom domain testimonialcut.com (or chosen domain) pointing to Vercel with SSL certificate green in browser and HSTS header set.
  • 6. Privacy policy and Terms of Service published at /privacy and /terms covering video data retention (30-day auto-delete), GDPR deletion requests, and user content ownership.
  • 7. Vercel Analytics and Supabase dashboard both showing live traffic, DB connection pool usage, and Storage bucket size — baseline metrics recorded before launch.
  • 8. Rollback plan documented: prior Vercel deployment SHA pinned as rollback target, DB migration rollback script tested on staging, and team runbook posted in Notion.
  • 9. ProductHunt launch post, r/marketing Reddit post, and LinkedIn article all drafted, scheduled, and reviewed — publish sequence set for 12:01 AM PST on launch day.

First Run Experience

On first login, a pre-loaded 8-minute demo interview is shown in the dashboard with a single prominent 'Generate Clip' button. The user clicks it and watches in real time as the AI selects a highlight, generates captions, and produces a downloadable MP4 — all without uploading anything. After seeing the result, a 'Try with your own video' CTA converts curiosity into action within the same session.

How to build it, step by step

1. Define the full database schema in lib/db.ts covering User, Subscription, Project, RawVideo, Transcript, HighlightSelection, and ExportedClip tables with typed TypeScript interfaces matching Supabase column definitions. 2. Create the Supabase project, run migration SQL to create all tables, configure Row Level Security policies for user-scoped access on every table, and create a private Storage bucket with a signed URL access policy and 1-hour expiry. 3. Build the /api/transcribe route that accepts a Supabase Storage URL, calls OpenAI Whisper with the audio stream, parses word-level timestamp segments, and persists the JSON result to the Transcript table. 4. Build the /api/highlight route that retrieves the transcript segments for a project, sends them to GPT-4o with a system prompt scoring for emotional impact, outcome specificity, and social proof signal, and writes the top-scored start_ms and end_ms to the HighlightSelection table. 5. Build the /api/export route as a Vercel serverless function with 60-second timeout that downloads the raw video from Supabase Storage, runs FFmpeg to trim to the highlight window, removes silences longer than 0.8 seconds, burns styled SRT captions, appends the brand outro image, and uploads the resulting MP4 to the exports Storage bucket. 6. Build the VideoPreview React component that loads a clipped preview using the HighlightSelection timestamps via a range-request video element, and the TranscriptEditor component that renders word-level segments as clickable tokens allowing users to manually adjust the start and end selection handles. 7. Implement Supabase Auth with Google OAuth, protect all /dashboard and /api routes with a session middleware check, and redirect unauthenticated users to the landing page with a sign-in prompt. 8. Integrate Stripe by creating Starter and Agency subscription products and a $9 credit pack one-time price, building a /api/stripe/checkout route for plan selection, and a /api/stripe/webhook route that updates the Subscription table exports_limit on checkout.session.completed and customer.subscription.updated events. 9. Add Sentry SDK to both the Next.js client and API routes with source maps uploaded on deploy, add Resend transactional email sending the export-ready download link when the FFmpeg job completes, and implement dashboard status polling every 5 seconds using SWR to reflect real-time job progress. 10. Deploy to Vercel with environment variables set for all API keys, run the full upload-to-download journey on the production domain with a real video file, verify the exported MP4 plays correctly on mobile and desktop browsers, and confirm Stripe webhook delivery and Sentry error capture are both active before publishing the ProductHunt listing.

Generated

April 25, 2026

Model

claude-sonnet-4-6

Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.