A private, secure, and beautiful space for couples to preserve their most cherished memories.
Couple Vault is a specialized digital sanctuary designed for partners to store and share images, videos, and voice notes in total privacy. Unlike social media, this is a dedicated "us-only" space that focuses on security, intimacy, and high-quality media preservation.
π Netlify Live β’ Vercel Live
- End-to-End Vault Protection: Every vault is protected by a unique 256-bit secret password generated upon creation.
- No Indexing: Private vaults are hidden from search engines and crawlers.
- Secure Sessions: Powered by
iron-sessionfor robust, encrypted user authentication.
- Dynamic Masonry Grid: A beautiful, responsive layout for all your memories.
- Smart Modal Viewer: An immersive experience for viewing high-res images and streaming videos.
- Voice Memories: Integrated Waveform visualizer for voice notes using
wavesurfer.js.
- Vault Personalization: Set vault names, partner identities, and custom secret messages.
- Memory Stats: Track your journey with automatic statistics on memory counts and activity.
- Easy Uploads: Seamlessly upload and manage media with automatic optimization via Cloudinary.
| Category | Technology |
|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 4.0 |
| Backend | Next.js API Routes, Mongoose (MongoDB) |
| Authentication | Iron Session |
| Media Hosting | Cloudinary (Signed URLs for security) |
| UI Components | Shadcn/UI, Lucide React |
| Utilities | WaveSurfer.js, Date-fns |
-
Clone the repository
git clone https://github.com/yourusername/couplevault.git cd couplevault -
Install dependencies
npm install
-
Set up Environment Variables Create a
.env.localfile in the root directory:MONGODB_URI=your_mongodb_connection_string SESSION_SECRET=a_long_random_string_at_least_32_chars CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
-
Run the development server
npm run dev
Open http://localhost:3000 to see the result.
- Secure Media Access: All media files are served via Cloudinary Signed URLs that expire automatically, preventing unauthorized access.
- Password Hashing: Vault passwords are never stored in plain text.
- Private-by-Default: No public search or discovery features.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for couples everywhere.