Secure Message Storage & Retrieval System
A modern, encrypted messaging service that allows users to securely store and share sensitive information with advanced security features.
https://vaultly-xcfio.vercel.app/
- 🔒 End-to-End Encryption - Messages are encrypted with user-defined keys
- ⏰ Expiration Control - Set automatic message expiration dates
- 🔥 One-Time Access - Self-destructing messages after single retrieval
- 🌙 Dark/Light Theme - Beautiful UI with theme switching
- 📱 Responsive Design - Works seamlessly across all devices
- 🎨 Modern Interface - Animated background with Comfortaa typography
- Create Message: Enter your encryption key and message content
- Set Options: Configure expiration time and one-time access
- Share ID: Send the generated message ID to your recipient
- Retrieve: Recipient uses ID and decryption key to access the message
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend: Fastify.js with Netlify Functions
- Database: PostgreSQL with Drizzle ORM
- Deployment: Netlify
- Styling: Custom CSS with animations and gradients
- Typography: Comfortaa font family
- Security: Client-side encryption with custom key management
@fastify/rate-limit- Provides rate limiting functionality to prevent API abuse and protect against spam@netlify/functions- Enables deployment of serverless functions on Netlify platformdrizzle-orm- Type-safe database toolkit with SQL-like syntax for PostgreSQL operationsfastify- High-performance web framework for building REST APIs with excellent TypeScript supportpostgres- Lightweight PostgreSQL client with modern async/await supportserverless-http- Wrapper that allows Express/Fastify apps to run as serverless functionsuuid- Generates unique identifiers for message storage and retrieval@types/node- TypeScript type definitions for Node.js built-in modules@types/uuid- TypeScript type definitions for UUID librarydrizzle-kit- CLI tool for database schema migrations and code generation
netlify/functions/- Serverless functions directory for Netlify deploymentdatabase/index.ts- Database schema definition using Drizzle ORM, handles PostgreSQL connectionroutes/index.ts- Main API route handler that processes HTTP requestspost-message.ts- API endpoint for storing new encrypted messages with expiration settingsput-message.ts- API endpoint for retrieving messages, handles one-time access logiccrypto.ts- Client-side encryption utilities for message securityhtml.ts- HTML template generation for the web interface
drizzle.config.ts- Database ORM configuration for schema managementnetlify.toml- Netlify deployment settings and build configurationtsconfig.json- TypeScript compiler configurationpackage.json- Project metadata, dependencies, and npm scripts
.github/workflows/test.yml- Automated testing and deployment pipeline.prettierrc- Code formatting rules for consistent styling.gitignore- Specifies files to exclude from version controlenv.example- Template for required environment variables
README.md- Comprehensive project documentation (this file)LICENSE- MIT license for open-source usage
-
Clone the repository
git clone https://github.com/xcfio/vaultly.git cd vaultly -
Install dependencies
pnpm install
-
Set up environment variables
cp env.example .env # Edit .env with your database credentials -
Start development server
node --run dev
- Sharing passwords and API keys
- Sending confidential business information
- Temporary secure communication
- One-time sensitive data transmission
This project is configured for automatic deployment on Netlify. Simply connect your GitHub repository to Netlify, and it will automatically deploy on every push to the main branch.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.