excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
Optimize Excalidraw performance for large drawings with batch mutations scene.mapElements and requestAnimationFrame. Keep Excalidraw responsive with thousands of elements.
How to Debug Excalidraw Issues: A Complete Guide to Collaboration and Rendering ProblemsDebug Excalidraw collaboration and rendering issues by tracing WebSocket payloads, verifying Firebase cache, and monitoring renderers. Solve problems with this complete guide.
How to Use Excalidraw Collaboration Features: Collaborator and SocketId GuideLearn to use Excalidraw collaboration features with the CollabAPI, SocketId, and Collaborator objects. Enable real-time co-editing easily.
How Excalidraw Handles FreeDraw, Text, and Image Element TypesDiscover how Excalidraw manages FreeDraw, Text, and Image elements. Learn about its JSON structure, base interfaces, and runtime type guards for efficient rendering and creation.
Core Excalidraw Packages Explained: @excalidraw/common, @excalidraw/element, and @excalidraw/math ArchitectureExplore the core Excalidraw packages like @excalidraw/common, @excalidraw/element, and @excalidraw/math. Understand their architecture and purpose for building custom solutions.
How to Use Excalidraw's PWA Capabilities for Offline AccessUnlock Excalidraw's PWA features for seamless offline access. Configure the service worker to cache assets and work anywhere with this quick guide.
How Excalidraw Implements Local-First Support and Autosave to Browser StorageLearn how Excalidraw achieves local-first support and autosave to browser storage using localStorage and IndexedDB for seamless offline functionality and zero data loss.
How to Implement Zoom and Pan Functionality for the Excalidraw CanvasImplement zoom and pan for Excalidraw canvas using getStateForZoom and update scroll values. The hand tool facilitates drag panning for interactive canvas control.
How Excalidraw Arrow Binding and Labeling Works: A Technical Deep DiveExplore how Excalidraw implements arrow binding and labeling. Understand the technical details offixedpointbindings and text element rendering within the Excalidraw repository.
How to Add Support for Custom Shapes or Extend Existing Element Types in ExcalidrawLearn how to add custom shapes or extend element types in Excalidraw. Extend ExcalidrawElement, register your shape, and implement rendering for custom drawings.
How to Customize the Hand-Drawn Style of Elements in ExcalidrawCustomize Excalidraw hand-drawn style by adjusting roughness stroke style fill and edge roundness using the AppState API or UI controls for unique visuals.
How to Implement Undo and Redo Functionality in the Excalidraw EditorImplement undo and redo in Excalidraw using a stack-based history manager. Record changes with history record and trigger actions with createUndoAction and createRedoAction.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →