Inspiration
Stash was born from a very simple problem we all experienced: we save content everywhere (Instagram, TikTok, YouTube, Pinterest, products, places, workouts, recipes…), but we almost never find it again when we actually need it. Between platform-specific “Saved” tabs, screenshots, notes, and bookmarks, information becomes fragmented and hard to reuse.
The core idea behind Stash is “Ctrl-V anything.”
You paste a link, and the app takes care of the rest: content extraction, AI-generated summaries, tags, and automatic categorization into dynamically created categories or boards.
What We Learned
This project helped our team grow across multiple areas:
- Full-stack architecture: designing a clean separation between web, mobile, and backend layers with a shared and scalable data model.
- Flexible data modeling: building a single
Itemschema capable of representing very different content types (videos, products, places, recipes, workouts, articles) using extensible structured fields. - AI product design: transforming LLM capabilities into real product features (categorization, summarization, tagging, confidence scoring, and explainable reasoning).
- UX focused on speed: reducing friction by making “paste → save → organized” the primary interaction.
- Scalability awareness: handling API limits, rate-limiting AI calls, caching extracted data, and designing fallback strategies for unsupported platforms.
How We Built It
Stash is a full-stack web and mobile application built with a modern JavaScript stack.
Frontend (Web & Mobile)
- Web: React 18, Vite, Tailwind CSS
- Mobile: Expo (React Native) with Expo Router
- A shared design philosophy: categories as boards, items as visual cards, minimal text, and fast interactions.
- Web: React 18, Vite, Tailwind CSS
Backend
- Node.js + Express with a REST API
- MongoDB Atlas with Mongoose for flexible schemas
- JWT-based authentication and secure password hashing
- Node.js + Express with a REST API
AI & Automation
- Google Gemini (gemini-1.5-pro) powers:
- Automatic content categorization
- AI-generated summaries and tags
- Smart search with intent routing
- Moodboard generation from natural language queries
- A modular extractor system routes URLs to platform-specific parsers (YouTube, Instagram, TikTok, Spotify, Amazon, Google Maps, and more).
Core Flow
- A user pastes a link
- The backend detects the platform and extracts metadata
- Gemini analyzes the content and decides whether to reuse an existing category or create a new one
- The item is saved with structured data, tags, and an AI-generated summary
- Content becomes searchable, shareable, and synchronized across devices
- A user pastes a link
Challenges We Faced
- Platform restrictions: limited or changing APIs required fallback extractors and graceful degradation.
- Reliable AI outputs: ensuring consistent structured JSON responses and handling ambiguous classifications.
- Schema design trade-offs: balancing flexibility and structure to support new content types without breaking existing data.
- Performance considerations: minimizing AI calls, caching extracted results, and keeping both web and mobile experiences responsive.
- Product decisions: finding the right balance between automation and user control through edits, overrides, and manual organization.
Conclusion
Stash is both a technical and product-driven team project. It combines full-stack engineering, AI integration, and thoughtful UX design to turn saved content into organized, searchable, and reusable knowledge instead of forgotten links.
Log in or sign up for Devpost to join the conversation.