{"id":27209236,"url":"https://github.com/ezeslucky/drawio","last_synced_at":"2026-04-15T19:32:31.186Z","repository":{"id":286742468,"uuid":"962353430","full_name":"ezeslucky/drawio","owner":"ezeslucky","description":"DrawIO Realtime is a full-stack collaborative whiteboard app designed for real-time drawing and ideation. It allows multiple users to sketch together with seamless live updates.","archived":false,"fork":false,"pushed_at":"2025-04-08T05:50:53.000Z","size":2112,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T06:33:19.665Z","etag":null,"topics":["docker","postgresql","reactjs","turborepo"],"latest_commit_sha":null,"homepage":"https://drawio-ivory.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezeslucky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-08T03:12:15.000Z","updated_at":"2025-04-08T05:51:12.000Z","dependencies_parsed_at":"2025-04-08T06:38:39.491Z","dependency_job_id":null,"html_url":"https://github.com/ezeslucky/drawio","commit_stats":null,"previous_names":["ezeslucky/drawio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ezeslucky/drawio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeslucky%2Fdrawio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeslucky%2Fdrawio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeslucky%2Fdrawio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeslucky%2Fdrawio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezeslucky","download_url":"https://codeload.github.com/ezeslucky/drawio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezeslucky%2Fdrawio/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266592255,"owners_count":23953109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","postgresql","reactjs","turborepo"],"created_at":"2025-04-10T00:39:56.085Z","updated_at":"2026-04-15T19:32:31.138Z","avatar_url":"https://github.com/ezeslucky.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨 Drawio | Hand-drawn look \u0026 feel • Collaborative • Secure\n\n---\n\n**Drawio** is a web-based collaborative whiteboard where multiple users can draw, edit, and brainstorm together in real time. Whether solo or in a group session, the app offers a smooth, intuitive canvas experience with real-time sync, shape tools, editable text, and privacy-focused end-to-end encryption — all without needing an account.\n\n---\n\n### ✅ Core Features\n\n- **Canvas Drawing**: Freehand, shapes, and editable text\n- **Rough.js Support**: Optional sketch-style drawing\n- **Perfect-freehand Support**: Hand drawn feel\n- **Eraser Tool**: Remove individual shapes\n- **Editable Text**: Double-click to edit on canvas\n\n---\n\n### 🔗 Collaboration\n\n- **Real-time Sync**: WebSocket-powered live drawing\n- **Multi-Tab Awareness**: No duplicate join/leave events\n- **Optimistic Updates**: Instant feedback before server response\n\n---\n\n### 🔐 **Privacy \u0026 End-to-End Encryption (E2EE)** in Drawio\n\nDrawio is built with **privacy by design** to ensure that no sensitive drawing data can be accessed by anyone other than the intended participants.\n\n\n### 🔒 **Client-Side Only Decryption**\n\n- All encrypted drawing data is transmitted over WebSocket.\n- The **decryption and rendering** happen completely on the client-side using the `key` from the URL.\n- Even if someone intercepts the WebSocket traffic, they cannot decrypt the data without the key.\n\n### 🛡️ **Benefits**\n\n- No one — not even the server — can read what’s drawn in a room without the key.\n- Ensures **confidentiality** for private brainstorming, teaching, or design sessions.\n- Works like **Excalidraw's E2EE rooms**, but tailored for your collaborative drawing logic.\n\n---\n\n### 🧠 Reliability\n\n- **Message Queue**: Stores unsent messages in memory/localStorage\n- **Auto Retry**: Flushes queued messages on reconnect\n\n---\n\n### 🧭 Modes\n\n- **Standalone Mode**: Offline/local drawing\n- **Room Mode**: Collaborative sessions\n\n---\n\n### ⚙️ Tech Stack\n\n- **Frontend**: React (Vite), TypeScript, Tailwind CSS\n- **Canvas**: HTML Canvas API + Custom Engine\n- **Realtime**: Native WebSocket (`useWebSocket` hook)\n- **Security**: Hash-based E2EE\n\n---\n\n\n\n\n### 🌍 Open Source \u0026 Contributions\n\nI want **Drawio** to be open source so that other students and developers can explore and learn from it.  \nIf you'd like to contribute—whether it's improving the UI, optimizing performance, or adding new features—feel free to open an issue or submit a pull request!\n\n---\n\n## 📄 License\n\nThis project is licensed under a **Custom Personal Use License** — you may view and learn from the code, but **commercial use, redistribution, or claiming authorship is strictly prohibited**.  \nSee the full [LICENSE](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezeslucky%2Fdrawio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezeslucky%2Fdrawio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezeslucky%2Fdrawio/lists"}