Inspiration

About the Project

Recall was inspired by a simple problem we all face: we save useful links, notes, screenshots, and other information, but later we often forget where we saved them or why they were useful.

I built Recall as a personal knowledge-saving and rediscovery web app that helps users save information and find it again when they need it. The idea is simple: instead of remembering exactly where something was saved, users can use Recall to organize and rediscover their knowledge from one place.

What Recall Does

With Recall, users can:

  • Save useful links, notes, and screenshots.
  • Organize and search their saved knowledge.
  • Filter saved items by type and favourites.
  • Add personal context to saved information.
  • Securely share individual saved items using generated share codes.
  • Generate QR-based sharing for easier access.
  • Open a shared item without needing to log in.

Why I Built It

The main motivation was the frustration of finding something useful online, saving it somewhere, and then struggling to find it again later.

I wanted to build something that focuses not only on saving information, but also on rediscovering it.

How I Built It

Recall was built as a full-stack web application.

The frontend was developed with React and Vite, with responsive interfaces for the landing page, authentication pages, dashboard, and shared-item pages.

The backend was built using Node.js and Express, providing REST APIs for authentication, saved items, favourites, sharing, and shared-item retrieval.

MongoDB is used for persistent data storage, while JWT authentication protects user-specific functionality.

The project was deployed using Vercel for the frontend and Render for the backend.

What I Learned

Building Recall helped me improve my understanding of full-stack development beyond simply writing individual components.

I learned how different parts of a real application work together, including:

  • React application structure and reusable components
  • REST API design
  • JWT authentication and protected routes
  • MongoDB data persistence
  • CORS and frontend/backend communication
  • Environment variables and deployment
  • Responsive UI design
  • Git and GitHub workflow
  • Debugging production and deployment issues
  • Building features while keeping existing functionality stable

One of the biggest lessons was that building a project is not just about making it work once. It also requires testing, debugging, responsive design, deployment, security considerations, and continuous improvement.

Challenges I Faced

One of the biggest challenges was connecting the frontend and backend correctly across local development and production environments.

I also faced issues with authentication, CORS configuration, deployment, responsive layouts, and keeping the UI consistent across desktop and mobile screens.

Another challenge was designing the dashboard so that it remained visually attractive without becoming difficult to use. I eventually focused on a cleaner and more comfortable interface with a controlled combination of colours and subtle interactions.

These challenges taught me how important debugging and incremental development are when building a real-world application.

What's Next

I plan to continue improving Recall with more advanced knowledge rediscovery features, smarter search and contextual retrieval, stronger security, and additional ways to organize and share personal knowledge.

Recall is still a work in progress, but building it has been one of my most valuable experiences in learning full-stack development by actually solving a problem.

Built with curiosity, iteration, and a lot of debugging. 🚀

Built With

Share this project:

Updates

Submission history