Chitarkar ā Real-Time Collaborative Drawing Tool
Overview
Chitarkar is a modern, browser-based drawing and sketching platform inspired by Excalidraw. It enables users to create clean, hand-drawn-style diagrams and illustrations in a minimal, intuitive interface. With real-time collaborative features powered by WebSockets, multiple users can draw on the same canvas simultaneously.
š Technologies Used
- Frontend: React, Next.js, TailwindCSS, Framer Motion
- Backend: WebSocket (Socket.io), PostgreSQL, Prisma
- Canvas Logic: HTML5 Canvas API
- Dev Tools: VSCode, Figma, Chrome DevTools, Socket.io Dev Tools
š Live Demo
š Live Project
š» GitHub Repo
⨠Key Features
- āļø Freehand drawing and shape tools including lines, rectangles, circles
- š„ Multi-user real-time collaboration with conflict resolution
- šØ Custom color palette, stroke width, and font options
- š Text and annotation support within the canvas
- š¾ Export canvas as PNG or SVG
- ā©ļø Undo / Redo support
- š Dark mode UI toggle
š¼ļø Visuals






š§© Project Architecture
š„ Frontend
- Built in Next.js for routing and page handling
- Custom drawing logic using Canvas API
- Dynamic styling and responsive layout via TailwindCSS
- UI interactions animated with Framer Motion
š Backend
- Real-time syncing handled by Socket.io
- User session, room, and state management stored in PostgreSQL via Prisma
- Conflict management and drawing state sync using WebSocket channels
ā³ Project Duration
š
Jan 2024 ā Mar 2024
šØāš» Role: Frontend Developer
āļø Challenges Tackled
- šļø Implementing smooth and responsive drawing with support for multiple tools
- š Synchronizing canvas state across multiple users in real-time
- š§ Handling undo/redo operations and history stacks per user
- š Managing resolution scaling and zooming for varying devices
- š§© Optimizing performance for dense and large-scale drawings
š Folder Structure (Simplified)
chitarkar/
āāā components/ # UI and tool components (Toolbox, Canvas, Export)
āāā pages/ # Next.js page routing
āāā public/ # Static assets
āāā hooks/ # Custom hooks for drawing and WebSocket
āāā prisma/ # Schema and DB logic
āāā styles/ # Tailwind and global styles
āāā utils/ # Drawing and canvas logic utilities