Building FrameVault: What I Got Wrong First

Where early assumptions failed and how recovery-first thinking changed the product.

Founders usually tell the story as if the product idea was clear from day one and execution was the hard part.

That's not how it happened.

FrameVault got better only after I admitted I was solving the wrong problem first.

At the beginning, the instinct was familiar: build "backup software for photographers." That sounds specific, but it's still too broad. Broad products drift toward feature checklists, and checklists create false confidence. You can ship a lot of functionality and still fail the one moment users actually care about.

The key mistake was thinking backup behavior was the product.

It isn't.

Recovery is the product.

That sounds like semantics until you build both paths and live with the consequences. Backup-centric thinking leads to upload progress, sync states, storage dashboards, and throughput tuning. Recovery-centric thinking starts with different questions: if a working photographer loses a drive tonight, how quickly can they get exactly what they need tomorrow morning? What shape does that restore come back in? Is the folder structure preserved? Can they recover one client job without pulling down everything?

Those questions forced painful changes.

Some early assumptions had to go. I removed ideas that looked good in a feature list but made restore behavior less predictable. I stopped rewarding myself for "files uploaded" and started measuring whether recovery outcomes were obvious, controlled, and trustworthy. I shifted language in the UI to reduce ambiguity because vague wording in normal operation becomes expensive confusion during failure.

Another thing I got wrong was underestimating how much trust is a UX problem, not just an engineering problem.

You can have technically correct behavior and still lose user trust if the system feels opaque. If someone can't tell what's protected, what isn't, and what a restore will do before they press the button, they don't feel safe. And if they don't feel safe, they won't rely on the product when stakes are real.

So I had to make the product more explicit, even when it was less "slick."

Clear limits instead of fuzzy promises. Visible usage instead of hidden assumptions. Predictable restore paths instead of magic. In consumer software, that can look less exciting. In operational software, it's the difference between confidence and hesitation.

I also learned that performance work can become a trap if it's disconnected from outcome quality.

It's easy to spend weeks optimizing background behavior while ignoring the one thing users will remember forever: did recovery work cleanly when something went wrong? I still care deeply about efficient upload and steady processing, but those optimizations now serve a narrower goal. If a speed improvement doesn't improve reliability or restore confidence, it's probably not first-priority work.

Some mistakes were purely founder mistakes.

Trying to satisfy every plausible edge case too early. Carrying features because they were expensive to build, not because they were still justified. Delaying hard simplification decisions because removing things feels like admitting waste. All normal. All costly.

The correction was straightforward, but not easy: tighten scope, align everything to recovery outcomes, and reject work that doesn't improve that outcome.

That changed how I ship. Releases got less flashy and more useful. Decisions got faster because the filter got sharper. Documentation got cleaner because the system behavior was clearer. Product conversations improved because I was finally arguing about real user risk instead of abstract capability.

If I had to summarize the lesson: products like FrameVault are won by clarity under pressure, not by quantity of features.

The "what I got wrong" phase wasn't a detour. It was the part that made the product real.

← Back to Blog