A real time collaboration capable drawing app(powered by Excalidraw) which is easy to deploy and self host built with the tech stack you already know. A easily selfhostable collaborative whiteboard powered by Excalidraw, PartyKit, and Postgres. Got tired of the single board limitation in excalidraw and wanted something I could actually deploy myself. Though the official Excalidraw Docker image is easy to run, but it doesn't provide a collaboration without a paid membership Drawy-Party adds a persistent, collaborative backend using PartyKit and postgres while keeping Excalidraw as the whiteboard experience. Also, there are several similar alternatives like this, but tbh who wants to spin 2 3 containers when everything can be compressed into one. Any one can deploy it on Vercel / Netlify like serverless platform.. The goal is simple: deploy it anywhere, create virtually unlimited boards, and collaborate in real time.
A real time collaboration capable drawing app(powered by Excalidraw) which is easy to deploy and host + built with the tech stack you already know.
if you want to run it host on your own partykit account and bring your own PostgreSQL db with pg pool support preferably and running on Netlify is purely optional, this app is built with nitro
nitro is easy to deploy so no issues deploy adapter
The build targets the cloudflare_module Nitro preset, so the app ships as a
Cloudflare Worker. wrangler.jsonc in the repository root is the worker
configuration.
bun install
bun run build # writes .output/server and .output/public
bunx wrangler secret put DATABASE_URL
bunx wrangler secret put SESSION_SECRET
bun run deploy # build + wrangler deployThe worker is served from https://<name>.<your-subdomain>.workers.dev.
Variables prefixed with VITE_ (VITE_PARTYKIT_URL, VITE_SITE_URL) are
inlined at build time, so set them before building. The realtime worker is
deployed separately with bun run party:deploy.
With Excalidraw canvas with library Suppport
Using partykit and sync and Netlify for hosting ... you can use any hosting provider if you want to ... if facing issues while hosting partykit, you can run it in your own cloudflare account.
Host your own version, for privacy and owning your own data also relying on the hosted instance is not recommended cz (I am also on the free tier and can go off anytime on exhausting the limits).
Refer to .env.example for the naming conventions of .env also you can use
mise for managing dev enviournment variables ..
tech stack
- PARTYKIT (partykit)
- POSTGREs (postgresql) for free db connection refer to this article
- Tanstack start(frontend)
- vite-plus + nub (for dependency management)
If this has helped you, consider supporting me.
