Inspiration
We were inspired by two forgotten yet charming technologies from the early 2000s:
- Kodak Photo CD: An innovative way to digitally preserve personal photo albums on a CD, complete with metadata and captions. It promised to immortalize memories, but got lost in the rise of smartphones and cloud storage.
- Microsoft Photo Story (2002–2006): A storytelling tool that let users create digital slideshows with captions, emotion-based transitions, and audio narration. Though beloved, it faded away with evolving OS platforms.
Both were beautiful ideas that didn’t survive — and we wanted to reimagine them for the modern web, using today’s tech and visual storytelling tools. That's how MemoryMosaic was born: a digital scrapbook where you can upload photos, add Polaroid-style captions, and build a personal memory gallery.
What it does
MemoryMosaic is a web app that lets users upload photos with custom captions and instantly transforms them into digital Polaroid-style memories. Each upload becomes a part of a growing personal scrapbook, beautifully displayed in a retro-styled mosaic gallery. Users can revisit their collection through a visually nostalgic interface inspired by physical photo albums. The app captures the magic of preserving everyday moments — digitally, aesthetically, and forever.
How we built it
We built MemoryMosaic using:
HTML,CSS,JavaScriptfor the frontend- Firebase to store metadata and captions
- Cloudinary to handle media uploads
- Custom
upload.jsandviewgallery.jsscripts for seamless memory curation - Google Fonts + custom CSS for retro, scrapbook-style aesthetics
Challenges we ran into
- Initially tried using FaceAPI.js to auto-detect mood, but realized it didn't align with our scrapbook theme.
- Faced some CORS errors and Cloudinary API misconfigurations.
- Designing a layout that feels scrapbook-y without being cluttered was a real visual challenge.
- Aligning all our modules (Firebase + Cloudinary + JS frontend) was tricky under time pressure.
Accomplishments that we're proud of
- We successfully blended vintage visual aesthetics with modern tech like Firebase and Cloudinary.
- Designed a fully functional gallery that displays user-uploaded memories in real time.
- Created a scrapbook-inspired UI/UX that feels warm, retro, and personal.
- Integrated smooth uploads, real-time memory rendering, and custom styling within a short hackathon window.
- Overcame initial tech pivots — like removing FaceAPI when it didn’t fit — and realigned our vision.
- Worked collaboratively through GitHub with clear role distribution and version control.
This was our team’s first hackathon, and seeing a working nostalgic memory wall come alive was a HUGE win for us. 💚
What we learned
- How to integrate Firebase Firestore for real-time database operations
- Using Cloudinary for seamless media storage and fast delivery
- Implementing user-friendly layouts with CSS, and scrollable galleries
- Working with FaceAPI.js and later deciding it didn't serve our core user experience
We also learned a lot about managing version control on GitHub and communicating ideas across a team.
What's next for MemoryMosaic
We see MemoryMosaic growing into a full-fledged personal memory journaling platform. Here's what's coming next:
- User authentication so users can have private, personal memory spaces.
- Ability to tag moods, locations, or events for smarter filtering and searching.
- Interactive scrapbook templates with stickers, tapes, and handwritten doodles.
- Option to add voice notes or background music to memories for deeper storytelling.
- A toggle to switch between timeline view and freeform scrapbook mode.
- Mobile responsiveness + PWA support for saving to home screens like a diary app.
- Export options to PDF or zine-style printable albums (IRL scrapbook vibes).
Our goal is to turn MemoryMosaic into a digital journal that doesn't just store images — it stores emotion, time, and atmosphere. From retro filters to soulful layouts, the journey’s just getting started
Built With
- canva
- cloudinary
- css
- faceapi.js
- firebase
- firestore
- github
- googlefonts
- javascript
Log in or sign up for Devpost to join the conversation.