
Published: 2025-12-18
Elaro came out of a simple thought: people save tons of short-form videos, but almost none of them are usable later. A recipe with no written steps. A skincare routine explained only through captions. A Costco haul where the creator fires off 20 products in 15 seconds. Saving a link doesn't help much.
So I built Elaro — an app that pulls the actual information out of these videos and turns it into structured content you can reference later. Here's how it works under the hood.
Try it: www.elaro.xyz
I built the architecture end-to-end. Codex helped with some code-writing, but the design and system organization are mine.
iOS App
User shares video
Rails API
Creates record
Background Pipeline
Sidekiq + Redis
Parsed + Hydrated
Structured content
iOS App
Displays tutorials/items
This is the heart of Elaro — a chain of background jobs where each step works independently. If one step fails, I retry just that step instead of rerunning the whole process.
Each job reads the same database record and writes back what it found. If something goes wrong, the record knows the last successful step, and I can re-run from there in the admin panel.
I expected creators to narrate their videos. Turns out a huge chunk of tutorial-style content is just text on screen, music, and a hand pointing at things. Speech-to-text fails completely there, so I added an OCR + image parser step:
This is why Elaro works on videos that look "impossible" to parse.
I kept these separate because they behave differently.
Each pipeline stage is its own Sidekiq job. Sidekiq handles retries, and the DB record stores which step failed. That lets me re-run only that step, not the whole pipeline, and debug partial results in the admin UI. It keeps compute predictable and debuggable.
I hadn't built iOS in almost a decade, and SwiftUI was new to me. But describing UI with state clicked fast. A few things I'm proud of:
Right now Elaro is great for tutorials, product discovery, and anything with steps or items. It doesn't yet handle locations, events, or other "real-world" content. I already know how I'll approach it; I just haven't built that pipeline.
Elaro ended up being a bigger technical project than I expected. It pushed me into designing multi-step AI pipelines, handling failure gracefully, mixing OCR, speech-to-text, and LLMs in a usable way, relearning iOS from the ground up, and optimizing Rails jobs so they don't choke on real-world video data.
It's been one of the most fun things I've built — and more importantly, it actually solves a problem I run into every day.