PrivateNote is a secure, privacy-focused web application that lets users create encrypted notes protected by passwords. All encryption and decryption happen on the client side, ensuring that no unencrypted data is ever sent to the server.
- Client-side AES encryption and decryption for maximum privacy
- Create, update, and retrieve notes via unique URLs
- Password-protected notes with zero knowledge on the backend
- Conflict resolution using last-modified tokens to prevent overwrites
- Uses PostgreSQL in production and SQLite in development
- Backend built with ASP.NET Core, frontend with React and Vite
- Navigate to the
backend/folder - Configure your connection string in
appsettings.json(PostgreSQL for production, SQLite for development) - Run migrations and start the ASP.NET Core server:
dotnet ef database update
dotnet run- Navigate to the
frontend/folder - Install dependencies:
npm install- Start the development server:
npm run dev- Open the frontend URL (e.g.,
http://localhost:3000) - Create a new note by entering your encrypted text and setting a password
- Share the generated unique URL with others securely
- Access and update your note by entering the password
- All encryption is performed client-side using AES; the backend only stores encrypted data
- Passwords never leave the client, so the server has zero knowledge of the note contents
- Conflict detection prevents data loss when multiple edits occur simultaneously
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is licensed under the MIT License.