Ekya is a decentralized, real-time collaborative document editor built using Pear the P2P framework by Holepunch. It enables multiple users to edit documents simultaneously by sharing a document ID - no central servers required.
- Real-time collaboration using peer-to-peer networking
- Decentralized architecture with no single point of failure
- Automatic synchronization between all connected peers
- Document version history (coming soon)
- Rich text formatting support (coming soon)
- Clone the repository:
git clone https://github.com/FlareMozZ/Ekya.git
cd Ekya
- Install dependencies:
npm install
Dependencies used are as follows: "b4a": "^1.6.7", "hypercore-crypto": "^3.5.0", "hyperswarm": "^4.8.4", "quill": "^2.0.3"
Initialize Pear runtime:
npm i -g pear
pear
(Make sure to add the path to local environment variables.)
pear run pear://runtime
Start the editor:
cd Ekya
pear run .
(Make sure you are in the correct directory and dependencies are properly installed.)
- Launch Ekya - it will show a "Create Document button", clicking it will automatically generate a new Document ID
- Share this ID with collaborators
- Keep first Ekya instance running
- Open new terminal and start another instance:
pear run .
- Enter the Document ID from the first instance when prompted
- Both instances will sync automatically, i.e both peers are connected
- Multiple peers can be connected in the same way!!
- Add text formatting toolbar
- Implement document version history
- Add peer cursor presence indicators
- Support for multiple documents
Contributions welcome! This project is under active development. Open an issue first to discuss major changes.
MIT