A secure, offline-first knowledge workspace inspired by Notion. All your data stays on your device - no cloud, no servers, no tracking.
- 100% Offline - Works completely offline, no internet required
- Block-based Editor - Rich text editing with slash commands, drag-and-drop blocks
- Databases - Create databases with multiple views (Table, Board, Gallery, List, Calendar)
- Local Storage - All data stored in browser localStorage, encrypted and secure
- Zero Telemetry - No tracking, no analytics, no external requests
- Privacy First - Your data never leaves your device
- Install dependencies:
pnpm install- Start the development server:
pnpm devThe app will be available at http://localhost:3000
Build the static files:
pnpm buildThe built files will be in the dist directory. You can:
-
Open directly in browser (file:// protocol):
- Navigate to
dist/index.htmlin your file browser - Double-click to open in your default browser
- Note: Some browsers may have restrictions with file:// protocol
- Navigate to
-
Serve with a simple HTTP server (recommended):
# Using Python cd dist python -m http.server 8000 # Using Node.js (npx) cd dist npx serve # Using PHP cd dist php -S localhost:8000
Then open
http://localhost:8000in your browser -
Deploy to static hosting:
- Upload the
distfolder contents to any static hosting service - Examples: Netlify, Vercel, GitHub Pages, Cloudflare Pages
- No server-side code required!
- Upload the
VaultNote is designed to work completely offline:
- ✅ All data stored in browser localStorage
- ✅ No external API calls
- ✅ No network dependencies
- ✅ Works without internet connection
- ✅ Can be opened as a local file (file:// protocol)
Some features are optional and require an internet connection:
- Maps - Google Maps integration (requires API key and internet)
- Link Previews - External link metadata fetching (gracefully degrades offline)
These features will show appropriate messages when offline or unavailable.
All your data is stored locally in your browser's localStorage:
- Location: Browser localStorage (key:
vaultnote_data) - Format: Encrypted JSON
- Backup: Use the Export feature to backup your data
- Restore: Use the Import feature to restore from backup
VaultNote implements comprehensive security measures to protect your data:
- AES-256-GCM Encryption - Military-grade encryption for all data at rest
- Password Protection - Optional vault password with auto-lock
- Secure Key Derivation - PBKDF2 with 600,000 iterations
- Memory Protection - Secure wiping of sensitive data
- Network Isolation - All external requests blocked
- Content Security Policy - Strict CSP headers prevent XSS
- No Telemetry - Zero tracking or analytics
- Offline-First - No data ever leaves your device
- XSS Protection - Comprehensive HTML sanitization
- Input Validation - All user input validated and sanitized
- Prototype Pollution Prevention - JSON parsing protection
- URL Validation - Dangerous protocols blocked
- Session Timeout - Auto-lock after inactivity (configurable)
- Rate Limiting - Brute force protection (5 attempts, 15-min lockout)
- Activity Monitoring - Tracks user activity for auto-lock
- Secure Deletion - Data securely wiped on deletion
- Security Event Logging - Tracks all security events
- Failed Attempt Tracking - Monitors unlock attempts
- Network Block Logging - Records blocked requests
See SECURITY.md for detailed security documentation.
Ctrl/Cmd + P- Quick search / Command paletteCtrl/Cmd + K- Quick actionsCtrl/Cmd + N- New pageCtrl/Cmd + \- Toggle sidebarCtrl/Cmd + /- Show keyboard shortcuts/- Slash commands in editor
- React 19 - UI framework
- TypeScript - Type safety
- Vite - Build tool
- Tailwind CSS - Styling
- Radix UI - Accessible components
- localStorage - Data persistence
MIT
Contributions are welcome! Please ensure all changes maintain the offline-first principle - no external network requests unless explicitly optional and clearly marked.