Inspiration
My father loves capturing life's moments — he takes tons of photos and videos. But over time, his Google storage got full, and it started affecting even his ability to send important work emails. Cleaning up old, unnecessary photos was time-consuming and frustrating, so he ended up buying extra storage
At the same time, I noticed how people share their best moments on Facebook, Instagram, and other platforms. But those platforms aren’t built for preserving personal memories, they’re built for quick likes and scrolling.
That’s when I thought: Why not build a space that’s just for you — where you can store your special memories, keep them safe, and if you choose, share them with the world?
What it does
Memories is a full-stack web application that allows users to capture life’s moments by creating digital memories. Each memory includes a title, description, location, date range, and images. Users can choose to make their memories private or public. Private Memories stay securely accessible only to the owner. Public Memories appear on an interactive globe or map, where other users can click or tap anywhere to reveal the nearest shared memory, letting the world explore each other’s experiences visually and emotionally.
How we built it
This project was built using a modern full-stack web development stack : Next.js – for building the frontend and backend in a unified framework with SSR and API routes. Prisma + PostgreSQL – for powerful and type-safe database access and relational data modeling. Cloudinary – for image storing. Google Maps API – to let users select or view the location of their memories on a real-world map. React-Globe.gl – for an interactive 3D globe experience where users can explore public memories around the world. NextAuth – to handle authentication securely with Google Sign-In. Tailwind CSS – for responsive and elegant UI styling.
Challenges we ran into
As a beginner, I faced quite a few challenges during the development of this project: Setting up NextAuth: Getting authentication to work correctly with Google Sign-In and connecting it to my database using Prisma was tricky at first. Database Integration: Figuring out how to store user memories — especially with optional fields like private/public status, location, and images, required a good understanding of relational data modeling with Prisma and PostgreSQL. Google Maps API: Integrating the Google Maps JavaScript API and making it work smoothly with dynamic memory markers was another big hurdle. Especially handling click events and getting latitude/longitude data from users or map interactions. Globe Visualization: Using react-globe.gl for showing public memories globally was a cool idea, but implementing it with real data, optimizing performance, and syncing interactions was a challenge.
Accomplishments that we're proud of
Built a Full-Stack App from Scratch Successfully developed a complete memory-sharing platform with user authentication, database integration, file uploads, and interactive maps, all as a beginner. Seamless Image Upload with Cloudinary Handled multi-image uploads, previews and delivery using Cloudinary. Location-Aware Interactions Clicking on any point on the map or globe shows the nearest public memory, making exploration feel personal and connected. Solved a Real Problem Inspired by my father's overflowing photo storage, I created a meaningful solution that combines memory storage with social sharing.
What we learned
As a beginner I have Learned Alot: Next.js & App Router Authentication with NextAuth Database Modeling with Prisma & PostgreSQL Working with Cloudinary Google Maps & Geolocation APIs Debugging & Problem Solving
What's next for Memories
Building an App version. Making Private Memories encrypted for privacy and security. A Memory Timeline for managing old shared memories Collaborator Mode Adding some social features like comments where world can talk
Built With
- cloudinary
- google-maps
- nextjs
- postgresql
- prisma
- react
- tailwind-css
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.