Skip to content
Pratyay360Public

Repository files navigation

GitHub Stars GitHub Forks Watchers Branches Contributors Last commit Commits Open issues Closed issues Open PRs Closed PRs Merged PRs Release CI License Private package Package mgr · Bun Language · TypeScript Lint · Biome Bundler · Vite TanStack Query Drizzle PostgreSQL React Tailwind CSS Zod Zustand ESM only Agent-friendly AGENTS.md GitHub Sponsors

Introducing Drawy-party (partykit + postgres version of the drawy app)

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.

drawy party demo

Deploy with Vercel

use now

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

deploy to cloudflare workers

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 deploy

The 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.

partykit for real time collab because it's free + nice

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

  1. PARTYKIT (partykit)
  2. POSTGREs (postgresql) for free db connection refer to this article
  3. Tanstack start(frontend)
  4. vite-plus + nub (for dependency management)

If this has helped you, consider supporting me.

Releases

Sponsor this project

Packages

Used by

Contributors

Languages