Skip to content

Devlaner/loomy

Open-source collaborative whiteboard for teams.

Loomy gives you an infinite canvas, real-time collaboration, and multi-tenant workspaces — draw, brainstorm, and plan together on shared boards. Built on Excalidraw for a familiar, fast drawing experience, and on FastAPI + Redis pub/sub for live sync that scales.


Installation

You can run Loomy in two ways:

  • Self-hosted — Run the API and UI on your own infrastructure. You need PostgreSQL 17 and Redis 7 (see the API and UI setup below for environment variables).
  • From source — Clone the repo and run the API and UI for local development or your own deployment.
Method Notes
Docker A docker-compose.yml is included for PostgreSQL and Redis. Dockerfiles for API and UI can be built from the api/app/ and apps/frontend/ directories.
From source See Local development below.

Workspace owners can manage members, invitations, and workspace settings from the workspace settings area after signing up.


Features

  • Infinite canvas — Draw shapes, sticky notes, arrows, and connectors on a pan-and-zoom canvas powered by Excalidraw.
  • Workspaces & boards — Organize work in multi-tenant workspaces, create any number of boards per workspace, star favorites, and jump back to recently viewed boards.
  • Real-time collaboration — Board changes and cursors stream to every connected client via WebSockets and Redis pub/sub — ready for horizontal scaling.
  • Membership & invitations — Invite teammates to a workspace, manage pending invitations, and remove members. Owner-only actions are enforced server-side.
  • Authentication — Email/password accounts with bcrypt hashing, plus GitHub and Google OAuth 2 with CSRF-protected state tokens.
  • Themes — Light, dark, and a soft pastel theme, with system preference detection.
  • Internationalization — Localized UI for English, Azerbaijani, and Russian out of the box.
  • Rate limiting — Redis-backed request limits protect the API from abuse.
  • Interactive API docs — Swagger UI at /docs and ReDoc at /redoc, with a full MkDocs site in docs/api/.

Local development

Prerequisites

  • Python 3.12+ and uv
  • Node.js 22+ and npm
  • Docker (for PostgreSQL 17 and Redis 7)

Steps

  1. Start dependencies — from the repo root:

    docker compose up -d

    PostgreSQL runs on localhost:15432, Redis on localhost:6379.

  2. API — from api/app/, copy .env.example to .env, set SECRET_KEY, DATABASE_URL, REDIS_URL, FRONTEND_URL (and optional OAuth credentials), run migrations, then start the server:

    cd api/app
    cp .env.example .env
    uv sync --all-extras
    uv run alembic upgrade head
    uv run python -m app.main

    API: http://localhost:8000 — Swagger UI: http://localhost:8000/docs

  3. UI — from apps/frontend/, install dependencies and start Vite. Point the UI at your local API with VITE_API_URL (defaults to http://localhost:8000):

    cd apps/frontend
    cp .env.example .env   # optional
    npm install
    npm run dev

    App: http://localhost:5173

  4. First run — sign up (or sign in with GitHub / Google), create a workspace, and open your first board.

For contribution workflow and code style, see CONTRIBUTING.


Built with

Python FastAPI SQLAlchemy Pydantic Alembic uv PostgreSQL Redis React React Router Vite TypeScript Tailwind CSS Excalidraw Zustand Recharts


Documentation


Contributing

Contributions are welcome. Please open an issue for bugs or feature ideas, and read CONTRIBUTING for pull-request workflow, coding standards, and our Conventional Commits policy.

This project adopts the Contributor Covenant. Security vulnerabilities should be reported privately per SECURITY.md.


Repo Activity

Alt

Contributors

Star History

Star History Chart


License

This project is licensed under the GNU General Public License v3.0. You are free to use, modify, and distribute Loomy under the terms of the GPL, provided that derivative works are released under the same license and that you preserve the copyright and license notices. See LICENSE for the full text.

About

Loomy is an open-source collaborative whiteboard. Create infinite boards, invite your team, and bring ideas to life in real time

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors