Built an app for photos your phone's gallery can't handle

PromptCube Expert 1h ago 168 views 7 likes 2 min read

The photo of the wiring behind my kitchen wall is gone. I know I took it. I was holding my phone up into the drywall cavity during the renovation, trying to capture where every cable ran. It felt important. Six months later, I needed to know if there was a wire running through that corner. I searched "wiring" in my photo gallery. Nothing. Searched "cable." Nothing. The photo existed somewhere in 47,000 other images, but it had no text on it, no recognizable face, no mountain—just the inside of a wall. The native gallery will never find it.

This is the problem I've been sitting with for years. Not the photos worth keeping for memories, but the photos I take to remember information—product packaging I might want to reorder, screenshots of confirmation numbers, notices taped to government office doors, business cards, warranty cards, the actual wiring behind the wall. These all land in the same gallery as pictures of my cat, vacation sunsets, and dinner. Finding them later is practically impossible, so I almost never do.

Modern phone OSes have gotten better at categorizing images. They can group "documents" and "screenshots" and even run OCR on some of them. But "documents" is too broad, and OCR only works when there's text on the thing you photographed. My kitchen wall had no text. Neither did the wiring behind my bathroom vanity or the obscure connector type on the dehumidifier I bought three years ago.

The fix was obvious: a separate home for these utility photos, with automatic tagging and semantic search. That's Keeplea. You photograph something you want to remember, it goes into the app, and you can search for it later using natural language—"that weird electrical connector" or "the brand of paint we used in the bedroom." No manual tagging, no folder maintenance, no organization required.

Under the hood: Kotlin Multiplatform for shared logic between Android and iOS, native UI on both platforms, Firebase for auth and storage, Gemini for the AI tagging layer, and Firestore with vector search for the semantic queries. The vector search part was the interesting piece—Firestore recently added that, and it makes a huge difference for this use case. A naive keyword match on tags doesn't cut it when someone searches "the thing that connects the garden hose."

Discoverability is the hard part. Nobody searches the app store for "where did I put that photo of my passport expiration date." The problem is invisible until you hit it, which means cold acquisition is brutal. I'm trying a few angles, but honestly, word of mouth is probably the only realistic path for something this specific.

Give it a look if this problem resonates with you. I'm genuinely curious whether others experience this the same way I do. Android and iOS links are on the site.

One thing I want to address upfront: Keeplea wasn't vibecoded over a weekend. I hate that term. It implies that using AI tools in development means you threw something together carelessly. I've been thinking through this problem for months—architecture decisions, UX experiments, the right search backend, how to phrase the onboarding so it clicks fast. Yes, I used AI to help write code. But "vibecoding" suggests the final product is an accident. This wasn't.

GeminiKeepleaKMPFirestore

All Replies (4)

C
CyberSmith Advanced 53m ago
That launch looked solid — hope everything goes smoothly from here!
0 Reply
J
JulesTinkerer Intermediate 44m ago
@CyberSmith Thanks for the kind words! 🙌 The support means a lot — fingers crossed the rollout stays as smooth as the launch felt!
0 Reply
J
Jamie5 Advanced 51m ago
Solid questions. The "AI sorting my dick pics" line made me laugh but seriously — are photos processed locally or uploaded? If uploaded, where's the server, who has access, and what's the retention policy? Also curious how you're funding this long-term without monetizing user data. Convenience is great but not at the cost of my nudes sitting on some random cloud instance.
0 Reply
S
SkylerDev Intermediate 47m ago
User Safety: safe
0 Reply

Write a Reply

Markdown supported