Inspiration

Screenshots are one of the easiest ways to save information, but they rarely help us act on it. A product we wanted to buy, an important deadline, an upcoming event or something worth reading later can disappear into hundreds of images. I built Recall to close the gap between capturing information and actually using it.

What it does

Recall is an Android app that turns screenshots into useful, user-controlled actions. It discovers screenshots the user allows it to access, extracts text on-device and organizes the results. Optional Recall AI uses GPT-5 mini to understand more complex screenshots, including multiple products, prices, events and deadlines.

Users can save products, places and read-later content; create reminders or calendar events; organize related saves into Smart Bundles; and receive timely suggestions through Relevant Now. Screenshot Cleanup helps users review unwanted screenshots before Android asks them to confirm deletion. Recall never creates actions or deletes screenshots without confirmation.

How I built it

The mobile app uses React Native, Expo SDK 57, Expo Router and TypeScript. On-device OCR and local classification let core analysis work without cloud AI. For optional AI analysis, a Node.js backend hosted on an InterServer VPS sends an explicitly selected screenshot and its OCR text to OpenAI's Responses API. Zod and client-side validation check the structured result, with local fallback when AI is unavailable.

The backend runs with Docker Compose, Caddy HTTPS and persistent SQLite. RevenueCat powers Recall Pro through its default offering, managed paywall, purchase and restore flows, and the pro entitlement. Free users can select up to three screenshots per Cleanup batch and see three Relevant Now cards. Pro enables larger Cleanup batches and up to five cards. Invitation-only AI access is independent of Pro.

Challenges I ran into

Some screenshots contain multiple products, overlapping prices or ambiguous dates. Turning these into safe actions required more than extracting text: the app must preserve separate items, avoid inventing missing information, prevent duplicate actions and ask users to confirm important details. Android's changing photo permissions, native integrations and device-specific layouts also required repeated physical-device testing.

Accomplishments

Recall combines local-first analysis, optional structured AI, user-confirmed actions, Smart Bundles, timely resurfacing and reviewed Gallery cleanup in one Android experience. I also integrated a RevenueCat-managed subscription flow and deployed a backend with invitation access, quotas and spending controls. The project includes an edited demonstration with my own narration and an open-source repository.

What I learned

Building Recall reinforced the importance of designing useful fallbacks, treating AI results as suggestions rather than unquestionable facts, testing on a physical device and keeping subscription access separate from AI access. The most useful result is one the user can review and act on with confidence.

Share this project:

Updates

Submission history