Inspiration
Getting your memories off of Snapchat is next to impossible.
- On your phone, Snapchat makes you download your media manually a few at a time. If you have the patience, you may not have the storage 😅
- Snapchat lets your export a list of links to your memories — but not of the memory media files themselves!
What it does
As there’s currently no tool to do this, we made Snapsaver to solve just that!
If you want to get off Snapchat, or just backup your precious memories, Snapsaver lets you easily do just that. We do all the work in bulk downloading all your files, backing them up files to the cloud, and letting you know when your downloads are ready to be exported as a Zip file.
How we built it
- Backend:
- The API is built using Node.js and Fastify in TypeScript
- Uses a Postgres database to store users, Google Cloud for OAuth, and AWS S3 for multi-media cloud storage
- Deployed on railway.app
- Frontend:
- The UI is built using Node.js and Next.js (a React framework) in TypeScript
- Uses Axios.js for the HTTP client and Tailwind CSS for styling
- Deployed on vercel.app
Challenges we ran into
- Our main challenge was file management + sending/receiving multimedia 📩
- Exporting files from S3. S3 doesn’t have a nice, handy “bulk export files into a Zip file 😜” feature. Right now, we’re downloading files from S3 to local disk then zipping it up, and saving it back to S3. Next step is to avoid using local disk, as that’s what’s limited!
- Using multi-part HTTP requests was finicky for sending .json files over to the backend.
- Downloading/uploading files to/from Snapchat and to/from S3. While we were figuring it out, lots of corrupted files.
Accomplishments that we're proud of
- Able to work on a project from scratch in < 48 hours
- Getting all the moving parts to work together
- Collaboration/splitting tasks
What we learned
- Solving all our challenges above, i.e. everything to do with multi-media upload and download
- Working with new packages
- How to collaborate together (our first hackathon as a sibling duo)
What's next for Snapsaver
There’s a lot to add to Snapsaver to make it secure and scalable.
- Security 🔒
- End-to-end security of our user's media, which includes securing S3 and our API
- Efficiency ⚡
- Concurrently download media files. Use queues to process multiple users download requests. This helps us efficiently work with the limited RAM/Memory/Storage we have.
Built With
- amazon-web-services
- axios
- fastify
- google-cloud
- nextjs
- postgresql
- prisma
- railway
- s3
- tailwind
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.