Inspiration

We can only remember so much. While we constantly traverse social media, we always save videos for later, always telling ourselves we will get back to it. Reality is, we never do. That's how we came up with Stash. Talking to all my friends, we all have some sort of chat either on Discord, WhatsApp, or Instagram where we send links or information to ourselves to save for later. What if “I’ll look at this later” didn’t turn into a graveyard of forgotten links?

What it does

This led us to develop Stash. Stash is a smart personal assistant that saves, organizes, and retrieves everything you save across apps, setting reminders and auto-adding calendar events with one tap. You don't even need to create your own folders for different categories. This goes beyond just saving; it analyzes the content in your image, video, or text and automatically creates folders and subfolders for your saved content. For example, if you save a video of a workout routine. It will automatically create a folder called fitness and a subfolder called workout routine. This makes it very easy to find exactly what you're looking for even if you don't remember saving it. We also implemented semantic search to easily find a specific topic you remember saving, but don't know where. Once you find it, you can also quickly parse the information using our AI summary feature!

Alongside that, we developed a specialized memory feature that automatically determines the relevance of certain links and automatically removes them. This prevents you from becoming overwhelmed just like before, with a wall of irrelevant information from years ago. It will alert you before deleting, giving you a second chance.

How we built it

We built the frontend using Next.js, which powers both our web dashboard and iOS app. For our backend, we chose Python Node.js and Supabase to store saved links, inferences, and folder structures. At its core, Stash follows a simple flow: download, analyze, organize. When you save a link, our Python backend grabs the content, whether that's a video, image, article, or webpage. We detect the content type through MIME and extension checks, then route it to the right AI for analysis.

Videos get processed through Overshoot AI, which runs on Node with Puppeteer, while everything else, like images, text, and documents, goes through Gemini. Both produce the same consistent output: a topic and summary that powers our auto-sorting feature.

The auto-folder system takes those AI outputs and builds a clean, reusable folder hierarchy. We use Gemini to generate canonical labels and tags, then run cosine similarity to figure out whether your content belongs in an existing folder or needs a new one. This keeps your library organized without creating duplicate folders everywhere. All of this lives in Supabase with pgvector support, enabling fast similarity searches at scale.

We also used DevSwarm to coordinate multiple AI coding agents working in parallel on isolated Git branches during the hackathon. It performed a structured code review and validation.

Some challenges we ran into

We had trouble retrieving inferences from Overshoot's API, but the issue ended up being firewalls on the public wifi :(

What we learned

We learned a lot! We learned many technical concepts, such as vector embeddings, cloud hosting, and deployment pipelines. This was also all of ours' first time developing mobile apps. So learning React Native was an amazing experience.

What's next for Stash

We plan to continue refining this from a small project to actually shippable to actual users! Can't wait to see what the future has in store for us.

Built With

Share this project:

Updates