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 Item schema 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.
  • Backend

    • Node.js + Express with a REST API
    • MongoDB Atlas with Mongoose for flexible schemas
    • JWT-based authentication and secure password hashing
  • 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

    1. A user pastes a link
    2. The backend detects the platform and extracts metadata
    3. Gemini analyzes the content and decides whether to reuse an existing category or create a new one
    4. The item is saved with structured data, tags, and an AI-generated summary
    5. Content becomes searchable, shareable, and synchronized across devices

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.

Share this project:

Updates