Real-time collaborative text editor powered by CRDT technology
- 🚀 Real-time Collaboration - See changes instantly as your team types
- 👥 User Presence - Visual indicators showing who's online and editing
- 🎨 Rich Text Editing - Formatting with headings, lists, code blocks, and more
- 🔄 Conflict-free Sync - CRDT technology ensures seamless merging
- 💾 Auto-save - Never lose your work
- 🎯 Cursor Tracking - See exactly where collaborators are typing
- 📱 Responsive Design - Works on desktop, tablet, and mobile
- ⚡ Lightning Fast - Sub-50ms latency with WebSocket
Frontend: React 18 • TypeScript • Vite • Tailwind CSS • Framer Motion • Remirror • Yjs
Backend: Django 4.1 • Django Channels • Redis • Daphne • WebSockets
- Python 3.8+
- Node.js 16+
- Redis (or Docker)
1. Clone the repository
git clone https://github.com/yourusername/inkflow.git
cd inkflow2. Backend Setup
cd app-server
# Create and activate virtual environment
python -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Start Redis (with Docker)
docker run -p 6379:6379 -d redis:7-alpine
# Run server
python manage.py runserver3. Frontend Setup
cd app
# Install dependencies
npm install
# Start development server
npm run dev4. Open your browser
Visit http://localhost:5173
Quick start with Docker:
docker-compose up -dinkflow/
├── app/ # Frontend (React + TypeScript)
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── hooks/ # Custom hooks
│ │ └── App.tsx # Main app
│ └── package.json
│
├── app-server/ # Backend (Django)
│ ├── core/ # Django settings
│ ├── editor/ # Main app
│ │ └── socket/ # WebSocket consumers
│ └── requirements.txt
│
└── docker-compose.yml
InkFlow combines modern design principles with powerful technology:
- Glassmorphism - Frosted glass effects with backdrop blur
- Smooth Animations - Framer Motion for delightful interactions
- Gradient System - Beautiful purple/blue gradients throughout
- User Experience - Intuitive interface requiring no tutorial
Inspired by: Linear, Vercel, Notion, Stripe
InkFlow uses Yjs, a CRDT (Conflict-free Replicated Data Type) library, for real-time collaboration:
- User types in editor
- Yjs captures change as CRDT operation
- Operation sent via WebSocket to Django Channels
- Redis broadcasts to all connected clients
- Clients apply changes automatically - zero conflicts!
Browser ←→ WebSocket ←→ Django Channels ←→ Redis ←→ Other Browsers
- Real-time collaborative editing
- User presence indicators
- Rich text formatting
- Modern UI with animations
- Multiple document rooms
- User authentication
- Document persistence & history
- Export to Markdown/PDF
- Offline mode with sync
- Mobile apps (iOS/Android)
Contributions are welcome! See CONTRIBUTING.md for guidelines.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- Yjs - CRDT implementation
- Remirror - Rich text editor framework
- Django Channels - WebSocket support
- Tailwind CSS - Styling framework
- Framer Motion - Animation library
Built with ❤️ by Abdullah
[⭐ Star on GitHub]