I built Captrix AI for TestSprite Hackathon Season 3: Build the Loop.
Captrix is a browser-based caption studio for short creator videos. It turns speech into editable captions, lets creators adjust timing visually, apply different styles, preview platform-specific formats, and export a finished video with captions burned in.
Adding captions to short videos often requires several separate tools. One generates the transcript, another styles the captions, and a full video editor is needed to correct timing.
I wanted to create a focused application where the complete workflow could happen in one place:
I used OpenAI Codex as my primary coding agent and built the application with Next.js, React, TypeScript, Tailwind CSS, Hugging Face Transformers, and browser media APIs.
The editor supports formats for Reels, TikTok, Shorts, YouTube, Facebook, Feed, and square posts. It also includes caption presets such as Creator Pop, Karaoke, Meme Stack, Minimal, and Neon Punch.
The timeline became one of the most important parts of the project. Caption blocks can be moved, resized with timing handles, and edited directly. Silence between spoken sections remains caption-free instead of leaving old text on the video.
Instead of waiting until the end to test everything, I followed a maker-checker loop:
This process caught several real issues, including:
The most useful part of the hackathon was treating testing as part of product development instead of a final checklist.
Every failed or blocked test forced me to clarify either the application behavior or the test contract. That made Captrix more practical, predictable, and consumer-focused.
Try Captrix AI
Live application: [https://captrix-ai.vercel.app/](https://captrix-ai.vercel.app/)
GitHub repository: [https://github.com/ayush002jha/captrix](https://github.com/ayush002jha/captrix)
X/Twitter Post:
// Detect dark theme
var iframe = document.getElementById('tweet-2075694620835750228-757');
if (document.body.className.includes('dark-theme')) {
iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2075694620835750228&theme=dark" }