MindPrints
iOS ยท TestFlightA screenshot-native iOS app for turning saved fragments into a searchable archive of attention.
MindPrints is built around a simple observation: screenshots are often the rawest record of what a person noticed, wanted to remember, or meant to return to. Instead of treating them as clutter to be filed away, the app treats them as meaningful signals of attention. MindPrints combines screenshot capture, OCR, AI-generated interpretation, natural-language retrieval, and reminder-based resurfacing to turn those fragments into a living personal archive rather than a dead camera-roll backlog.
What I owned
- End-to-end ownership from product thesis, interaction model, and 0-to-1 information architecture to full native iOS implementation
- Definition of the screenshot-native product model across Screens, Folders, Insights, and resurfacing logic
- Capture and import workflow design for both instant screenshot processing and historical library onboarding
- Local-first persistence and image storage architecture for a screenshot-heavy archive
- OCR pipeline, metadata extraction, and AI-assisted screenshot interpretation and organization
- Natural-language retrieval system for recovering screenshots through semantic intent rather than manual filing
- Persona-based AI interaction system for changing interpretive lens without changing underlying data
- Resurface-and-remind loop spanning reflection features, notifications, and re-entry points
- Widget, notification, and iOS system integrations that extend the product beyond the main app surface
Tech Stacks
Why this exists
MindPrints exists because screenshots are one of the most overlooked forms of personal data. People save them constantly, but most tools only help store them, not understand them. I wanted to build a product that treats screenshots as evidence of curiosity, intent, and unfinished thought, then helps users retrieve and revisit them in ways that feel reflective rather than purely organizational.
Key Decisions
Why define screenshot as the core object?
Screenshots are the least processed version of what someone decided was worth keeping. Before an idea becomes a note, a folder, or a plan, it is often just a saved fragment. That made screenshot the right primitive for the product: it preserves intent earlier and more honestly than a more formal object would.
Why design the workflow to minimize friction, and why support both instant capture and historical import?
This product only works if capture is lightweight enough to become habitual. I optimized for both immediacy and momentum: fresh screenshots can be processed while context is still alive, and historical import gives new users a meaningful archive on day one instead of an empty shell. Both decisions were about getting to value quickly.
Why keep folders secondary and make retrieval search-driven?
If folders became the center of gravity, the app would collapse into file management. That was never the point. People usually remember screenshots through meaning, mood, or context, not rigid taxonomy, so I made search and semantic retrieval primary and kept folders intentionally lightweight.
Why design a persona system?
The persona system was a way to make interpretation feel chosen rather than imposed. The same archive can be read through different lenses: creative, practical, emotional, reflective. I wanted AI to offer framing, not a single authoritative reading, so persona became a product mechanism for user agency.
Why make resurfacing a core loop instead of stopping at storage and search?
Storage and search help users keep the past; resurfacing helps them get value from it. I made it a core loop because many screenshots represent unfinished intentions, recurring interests, or half-formed ideas. Bringing them back at the right moment turns the archive into something active and personally useful.