MVP: Knowing What to Cut (and What to Keep)
After years of overly ambitious projects that never shipped, I learned how to define an MVP. My method with Inner Gallery.
Before Inner Gallery, I accumulated overly ambitious side projects: either never finished, or finished but never marketed. Inner Gallery's MVP was the first time I knew how to say no to my own ideas.
The Real Problem: Shipping
I've been coding since I was 13. I've launched dozens of side projects. More or less complex ones, with various tech stacks. The pattern kept repeating: I'd start with an ambitious scope, spend months building, and the project would die before reaching anyone's hands.
Either too complex -> never finished.
Or finished -> never marketed, never launched.
The problem was never technical. It was the scope.
What Changed with Inner Gallery
Late 2025, when I started Inner Gallery, I decided to do the opposite of everything I'd done before. The MVP would fit into three features: photo import, encryption via CryptoKit, and PIN protection. That's it.
No editing. No sharing. No syncing. No smart albums. Just a photo vault that does one thing and does it well.
Eric Ries in The Lean Startup says the MVP is for learning, not for impressing. But for me, the real lesson was actually shipping something. My previous projects had taught me I could code anything. What I was missing was the discipline to launch.
A successful MVP is the simplest version you actually publish. A perfect project sitting on your hard drive is worth nothing.
My 3-Step Method
1. The Promise in One Sentence
For Inner Gallery: "Your private photos, encrypted, under your control."
If your promise fits in one sentence, your MVP should fit in a few features. Everything that doesn't directly serve that sentence can wait.
2. Must-Have vs Nice-to-Have
I use the MoSCoW method:
Must-have (MVP):
- Photo/video import
- Local encryption (ChaCha20-Poly1305 via CryptoKit)
- PIN + Face ID protection
Nice-to-have (post-launch):
- Multiple spaces
- Decoy PIN
- Metadata search
Won't-have (out of scope):
- Facial recognition
- Social sharing
The rule: if you're hesitating between must-have and nice-to-have, it's nice-to-have.
3. Fix the Time, Adjust the Scope
Shape Up by Basecamp articulated this principle better than anyone: you fix a deadline, you cut the scope to fit within it. Not the other way around.
My previous projects did exactly the opposite. "It'll take as long as it takes." Result: it never happened.
The Features I Cut (and Why)
Photo Editing
First instinct: add crop, filters, adjustments. But Inner Gallery is a vault. Users edit in Apple's Photos app, then import into Inner Gallery. Simpler, more stable.
Smart Albums
"What if the app automatically created albums by date, location, type?" Enormous complexity for uncertain benefit. At launch, a single default space is enough. Multiple spaces will come as a paid pack.
Secure Sharing
Sharing encrypted photos involves key management, sharing UI, security edge cases... Three months of dev minimum. For a feature I didn't even know anyone wanted.
Every feature you cut is time gained to perfect the ones that remain. And above all, it's a launch that comes sooner.
What My Failures Taught Me
Overly ambitious project #1: A complete app with 15 features in v1. Six months of development, never launched. Too much surface area, too many bugs, zero motivation for the final stretch.
Finished but never launched: Technically solid, but I had no energy left for marketing, screenshots, the App Store page. Development had drained me.
The lesson: launching is part of the product. If your scope leaves you with no energy for marketing, your MVP is too big.
MVP Does Not Mean Half-Baked
Be careful: MVP doesn't mean "a version that barely works." Inner Gallery's three core features are solid. Robust encryption, smooth import, clean interface. Premium quality, minimal scope.
A user satisfied with a well-finished MVP will pay for future updates. A user disappointed by a sloppy MVP will never come back.
Further reading:
- Subscription vs one-time purchase: which model for an app?
- Building your own products alongside freelance work