A modern, secure, end-to-end encrypted note synchronization tool with real-time collaboration features. Synchronize notes across devices using a 12-word chain code - no accounts, no tracking.
一个现代化的端到端加密笔记同步工具,支持实时协作。使用 12 个单词的同步密钥在多设备间同步笔记,无需账号,保护隐私。
- End-to-end Encryption - AES-256 encryption with 12-word mnemonic chain code
- Real-time Sync - Instant synchronization across multiple devices via WebSocket
- No Accounts, No Tracking - Privacy-first design with no data collection
- Offline-ready - Local storage persistence for seamless experience
- CodeMirror Integration - Professional code editor with syntax highlighting
- Markdown Support - Full GFM (GitHub Flavored Markdown) with live preview
- Split View - Edit and preview side-by-side
- Code Highlighting - 10+ programming languages supported
- QR Code Sharing - Scan QR code to join sync chain from mobile
- Responsive Design - Fully optimized for mobile devices
- Touch Optimized - Large touch targets and gestures support
- Version History - Auto-save and restore previous versions
- Import/Export - Support for .md and .txt files
- Settings Persistence - All preferences saved locally
- Dark/Light Themes - System-aware theme with manual toggle
- Bilingual UI - Full English and Chinese interface
- Modern Design - Glass morphism, smooth animations
Repository root:
brave-sync-notes/client/– Vite + React frontendbrave-sync-notes/server/– Express + Socket.IO backend
cd brave-sync-notes/server
npm install
node index.jsBy default the server listens on port 3002 or process.env.PORT if provided.
cd brave-sync-notes/client
npm install
npm run devVite will start a dev server (typically on http://localhost:5173).
The frontend connects to the backend via SOCKET_URL:
const SOCKET_URL = import.meta.env.VITE_SOCKET_URL || 'http://localhost:3002';For production deployments, set VITE_SOCKET_URL in your environment to the public URL of your backend.
- Local development:
VITE_SOCKET_URLunset (falls back tohttp://localhost:3002). - Production:
VITE_SOCKET_URL=https://your-sync-server.example.com.
You can deploy the frontend directly from this repo with Netlify.
- Connect the GitHub repository to Netlify.
- Use the following build settings:
- Base directory:
brave-sync-notes/client - Build command:
npm run build - Publish directory:
dist
- Base directory:
- In Netlify environment variables, set:
VITE_SOCKET_URL=https://your-sync-server.example.com
A sample netlify.toml is provided under brave-sync-notes/client/.
On your VPS (Ubuntu/Debian-style example):
# Clone or upload the repository
cd /path/to/Note-Sync-Now/brave-sync-notes/server
npm install
PORT=3002 NODE_ENV=production node index.jsFor production, you should run the server under a process manager (e.g. pm2, systemd). A simple helper script is provided as brave-sync-notes/server/start-local.sh.
cd /path/to/Note-Sync-Now/brave-sync-notes/server
npm install
pm2 start index.js --name brave-sync-notes --env productionEnsure your firewall / reverse proxy exposes the chosen port via HTTPS (e.g. Nginx + Let�n�t's Encrypt).
npm run dev– Start Vite dev server.npm run build– Build production assets.npm run preview– Preview built site locally.
node index.js– Start the Socket.IO/Express server.
This project is intended to be open-sourced.
- See
LICENSEfor licensing details. - See
CONTRIBUTING.mdfor guidelines on issues, pull requests, and code style.
Basic GitHub Actions workflows are provided under .github/workflows/ to run installs and builds for both the client and server on each push / pull request. You can extend these workflows with tests or deployment steps as the project evolves.