Built an app for photos your phone's gallery can't handle
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.