The media vault is built for performance, privacy, and seamless sharing. Galaria is a modern web application that allows users to upload, compress, and securely share images and videos. It leverages cutting-edge technologies like Supabase/Cloudflare R2, OTP-based authentication, and smart media encoding to deliver a fast, efficient, and elegant experience.
As a group of friends, we often go out, click hundreds of photos, and shoot videos to capture memories. Sharing them used to mean dumping everything into Google Drive — until we all hit our 15GB limit 😅.
One evening, while watching Linus Torvalds talk about building Git to manage his kernel project, something clicked. Just like Git was born out of necessity, we thought: "Why not build our own media storage platform — tailored to our needs?"
That’s how Galaria was born — a personal, high-performance media vault built to upload, optimize, store, and share content without limits.
-
🎥 Smart Media Optimization Compress and encode images (via Sharp) and videos (via FFmpeg) to minimize size and maximize quality.
-
🔐 OTP-Based Auth No passwords. Log in and sign up with email-based one-time passwords using Supabase + Resend.
-
☁️ Cloud Object Storage Media is stored on Supabase or Cloudflare R2 – fast, reliable, and scalable.
-
📧 Share via Email Share uploaded images/videos directly with others through email links — just one click.
-
💻 Modern Frontend Fully responsive UI using React, Tailwind CSS, and ShadCN components.
-
⚙️ Robust Backend Type-safe backend with Express, Zod, FFmpeg, Sharp, and Prisma.
| Layer | Technology |
|---|---|
| Frontend | React, Tailwind CSS, ShadCN UI |
| Auth | Supabase Auth + Resend OTP Email |
| Backend | Express.js, Zod, Prisma, FFmpeg |
| Storage | Supabase Storage / Cloudflare R2 |
| Media Tools | Sharp (images), FFmpeg (videos) |
| DB | PostgreSQL (via Prisma + Supabase) |
git clone https://github.com/ronakmaheshwari/galaria.git
cd galaria
pnpm installSet up your environment variables in .env:
SUPABASE_URL=your_url
SUPABASE_KEY=your_key
RESEND_API_KEY=your_resend_key
R2_BUCKET=...pnpm devVisit http://localhost:3000 to start using Galaria locally.
/app - Frontend (React + Tailwind)
/server - Backend API (Express + FFmpeg)
/lib - Shared helpers, encoders, and utils
/public - Static assets
.env - Env config (Resend, Supabase, etc.)
- User signs up via OTP
- Upload an image or video
- Backend compresses (WebP or MP4 H.264)
- The file is pushed to Supabase/R2
- Metadata saved via Prisma
- Share the link generated and emailed via Resend
Galaria uses Resend to email secure access links to uploaded content. Just type an email, hit share, and the recipient gets a link to view/download the file — no login required.
Supports deployment to:
- Vercel — Frontend
- Render / Railway / Fly.io — Backend
- Cloudflare R2 or Supabase — Object storage
Just add your .env keys and deploy ✨
We’d love your help!
git checkout -b feature/amazing-feature
git commit -m "Add amazing feature"
git push origin feature/amazing-featureThen open a PR 🎉
MIT © Ronak Maheshwari , Vedang Atre
