Universal Note Synchronization Platform
Made with โค๏ธ in India, for knowledge workers everywhere
Features โข Quick Start โข Documentation โข Contributing
PolyNote is an open-source, privacy-first note synchronization platform built in India. It seamlessly connects your favorite note-taking apps while keeping your data secure and under your control.
- ๐ Privacy First: Your notes stay on your device. End-to-end encryption for everything.
- ๐ Universal Sync: Works with Obsidian, Notion, Joplin, OneNote, and Apple Notes
- ๐ค Local AI: Summarize, translate, and enhance notes using local AI models
- ๐ฎ๐ณ Multilingual: Full support for English, Telugu (เฐคเฑเฐฒเฑเฐเฑ), and Hindi (เคนเคฟเคเคฆเฅ)
- ๐ป Cross-Platform: Linux, macOS, and Windows support
- Automatic synchronization across all your note-taking platforms
- Smart conflict resolution with visual merge tools
- Preserves formatting, tags, and metadata
- Local-first AI: Run AI models on your own computer
- Summarization: Get quick summaries of long notes
- Translation: Translate between English, Telugu, and Hindi
- Content Enhancement: Rewrite and improve your notes
- End-to-end encryption for all data
- Secure sharing with encrypted bundles
- No cloud storage required (unless you choose)
- Open-source and auditable
- Full support for Indian languages (Telugu, Hindi)
- RTL text support where needed
- Localized date and number formats
- Built by Indian developers who understand your needs
Before you begin, make sure you have these installed:
- Node.js (version 22 or higher) - Download here
- pnpm (version 9 or higher) - Install with:
npm install -g pnpm - Podman or Docker (for development) - Podman Install Guide
# 1. Clone the repository
git clone https://github.com/sunilkumarvalmiki/polynote.git
cd polynote
# 2. Install dependencies
pnpm install
# 3. Start the development environment
make dev-up
# 4. Run the application
pnpm devThat's it! PolyNote should now be running on your computer.
- Connect Your First App: Start with Obsidian (easiest) or Notion
- Configure Sync: Choose which folders to sync
- Try AI Features: Summarize a note using local AI
- Explore: Check out the graph view and search features
- Getting Started Guide - Step-by-step setup instructions
- User Guide - How to use PolyNote's features
- Developer Guide - For contributors and developers
- Database Optimization Guide - Performance tuning and best practices
polynote/
โโโ apps/
โ โโโ desktop/ # Electron desktop app
โ โโโ server/ # Backend API server
โโโ packages/
โ โโโ connectors/ # Platform connectors (Obsidian, Notion, etc.)
โ โโโ ai/ # AI provider integrations
โ โโโ security/ # Encryption and security
โ โโโ shared/ # Shared utilities and types
โโโ infra/ # Infrastructure and deployment
โโโ docs/ # Documentation
# Development
pnpm dev # Start development server
pnpm dev:desktop # Start desktop app in dev mode
# Testing
pnpm test # Run all tests
pnpm test:watch # Run tests in watch mode
pnpm test:coverage # Generate coverage report
# Code Quality
pnpm lint # Lint code
pnpm format # Format code with Prettier
pnpm type-check # TypeScript type checking
# Building
pnpm build # Build for production
pnpm build:desktop # Build desktop appWe maintain high code quality with comprehensive testing:
# Run all tests
pnpm test
# Run specific test suite
pnpm test packages/ai
# Watch mode for development
pnpm test:watch
# Generate coverage report
pnpm test:coverageWe welcome contributions from developers across India and around the world!
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Make your changes
- Test your changes (
pnpm test) - Commit using conventional commits (
git commit -m 'feat: add amazing feature') - Push to your branch (
git push origin feat/amazing-feature) - Create a Pull Request
- Follow our Code of Conduct
- Write tests for new features
- Update documentation when needed
- Use conventional commit messages
- Ensure all tests pass before submitting
- โ Obsidian - Full bidirectional sync
- โ Notion - Read and write support
- โ Joplin - Full sync with attachments
- โณ OneNote - Read-only (write coming soon)
- โณ Apple Notes - Read-only (macOS only)
- โ Linux - Full support (AppImage, DEB, RPM)
- โ macOS - Intel and Apple Silicon (DMG, PKG)
- โ Windows - Full support (EXE, NSIS installer)
- โ Ollama - Local AI (recommended)
- โ GPT4All - Local AI
- โ llama.cpp - Local AI
- โ OpenAI - Cloud AI (optional)
- โ Claude - Cloud AI (optional)
๐ง Currently in Active Development
- Version: v0.9.0 (Beta)
- Target Release: v1.0.0 in Q1 2025
- Test Coverage: 85%+
- Contributors: Growing community of Indian developers
- Core sync engine
- Obsidian connector
- Notion connector
- Local AI integration
- Mobile apps (Android first)
- Cloud sync option
- Team collaboration features
PolyNote is proudly developed in India by Indian developers who understand the unique needs of Indian knowledge workers and students.
- Local Language Support: First-class support for Telugu and Hindi
- Performance Optimization: Works on modest hardware common in India
- Offline-First: Reliable even with unstable internet connections
- Privacy Focused: Your data stays in India if you want it to
- Community: Join a growing community of Indian open-source contributors
We're building a community of talented Indian developers. Want to join us? Check out our Contributing Guide.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with โค๏ธ by developers in India
- Inspired by the Indian open-source community
- Special thanks to all our contributors
- Powered by amazing open-source projects
- Issues: GitHub Issues
- Email: Contact via GitHub Issues