Skip to content

🎨 AstraDraw Frontend - Excalidraw fork with workspaces & collaboration. Issues β†’ astradraw/astradraw

License

Notifications You must be signed in to change notification settings

AstraDraw/astradraw-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AstraDraw App (Frontend)

Note: Please file all issues in the main AstraDraw repository. This repository is for code contributions only.

Built on Excalidraw - An open source virtual hand-drawn style whiteboard.

Self-hosted Excalidraw frontend with user workspaces, video recordings, presentation mode, custom pens, and real-time collaboration.

License: MIT Docker

Features

Core (from Excalidraw)

  • 🎨 Infinite canvas with hand-drawn style
  • πŸ”’ End-to-end encryption for collaboration
  • 🀝 Real-time collaboration via WebSocket
  • πŸ“± Responsive design for desktop and mobile
  • πŸŒ™ Dark mode support

AstraDraw Extensions

  • πŸ‘€ User Authentication - Local accounts and OIDC/SSO support
  • πŸ“ Workspaces - Personal and shared workspaces with teams and collections
  • πŸ’¬ Comments - Threaded canvas comments with @mentions and real-time sync
  • πŸ”” Notifications - In-app notifications for mentions and comments
  • 🎬 Talktrack - Record canvas walkthroughs with camera PIP
  • πŸ“½οΈ Presentation Mode - Use frames as slides with implicit laser pointer
  • πŸ–ŠοΈ Custom Pens - Highlighter, fountain, marker presets
  • 🎭 Stickers & GIFs - GIPHY integration
  • πŸ“š Pre-bundled Libraries - Team-wide shape collections
  • πŸ” Quick Search - Cmd+K to search scenes across workspaces

Quick Start

Using Docker (Production)

docker run -d \
  -p 80:80 \
  -e VITE_APP_WS_SERVER_URL=wss://your-domain.com \
  -e VITE_APP_BACKEND_V2_GET_URL=https://your-domain.com/api/v2/scenes/ \
  -e VITE_APP_BACKEND_V2_POST_URL=https://your-domain.com/api/v2/scenes/ \
  astradraw/app:latest

Local Development

Recommended: Use the main repo with just dev for full-stack development.

# From astradraw/ root (recommended)
just dev              # Starts frontend + backend + room-service with hot-reload

# Or standalone frontend development
cd frontend
yarn install
yarn start            # Dev server on http://localhost:5173

Before committing:

# From astradraw/ root
just check-frontend

# Or directly
yarn test:typecheck && yarn test:other && yarn test:code

Environment Variables

Variable Description Example
VITE_APP_WS_SERVER_URL WebSocket server for collaboration wss://draw.example.com
VITE_APP_BACKEND_V2_GET_URL Scene GET endpoint https://draw.example.com/api/v2/scenes/
VITE_APP_BACKEND_V2_POST_URL Scene POST endpoint https://draw.example.com/api/v2/scenes/
VITE_APP_GIPHY_API_KEY GIPHY API key for stickers your_giphy_api_key
VITE_APP_DISABLE_TRACKING Disable analytics true

Architecture

This is the frontend component of the AstraDraw suite:

Repository Purpose
astradraw Main repo - deployment, docs, orchestration
astradraw-app (this repo) Frontend application
astradraw-api Backend API (auth, workspace, storage)
astradraw-room WebSocket collaboration server

Documentation

Full documentation is in the main astradraw repository:

Topic Link
Getting Started docs/getting-started/
Architecture docs/architecture/
Features docs/features/
Deployment docs/deployment/

Project Structure

frontend/
β”œβ”€β”€ excalidraw-app/           # AstraDraw application
β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”‚   β”œβ”€β”€ Workspace/        # Scene management, dashboard, auth
β”‚   β”‚   β”œβ”€β”€ Comments/         # Threaded comments with markers
β”‚   β”‚   β”œβ”€β”€ Settings/         # User profile, preferences, Jotai atoms
β”‚   β”‚   β”œβ”€β”€ Talktrack/        # Video recording
β”‚   β”‚   β”œβ”€β”€ Presentation/     # Slideshow mode
β”‚   β”‚   └── Stickers/         # GIPHY integration
β”‚   β”œβ”€β”€ hooks/                # React Query + custom hooks
β”‚   β”œβ”€β”€ pens/                 # Custom pen presets
β”‚   β”œβ”€β”€ auth/                 # Auth context and API client
β”‚   β”œβ”€β”€ collab/               # Real-time collaboration
β”‚   └── data/                 # Storage backends
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ excalidraw/           # Core React component (AstraDraw fork)
β”‚   β”œβ”€β”€ common/               # Shared utilities
β”‚   β”œβ”€β”€ element/              # Element types
β”‚   β”œβ”€β”€ math/                 # Math utilities
β”‚   └── utils/                # General utilities
└── public/                   # Static assets

License

MIT License - Based on Excalidraw

About

🎨 AstraDraw Frontend - Excalidraw fork with workspaces & collaboration. Issues β†’ astradraw/astradraw

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published