DrawHub is the easiest and fastest way to get your ideas onto a digital canvas. Work alone, or with others in realtime, to create and share digital masterpieces straight to the cloud. ✏️
-
Sign in via Google using Auth0 and JWT Authorization
-
Draw (with custom pen widths and colors) onto a canvas with realtime updates with multiple users
-
Invite others, using email, to join the canvas session, through a unique shareable link
-
Create private canvases, hidden to other users
- Invite other users to join the canvas session, but only specified in a list of allowed emails
-
"Stitch" (copy/fork) other public canvases to add on top of it, either public or private
-
Save the canvas as an image and auto-upload it to Google Drive
-
View other users' public canvases
-
Get notified through when they have been invited to a canvas or their canvas has been stitched
- Nx (Monorepo + CLI Tools)
- React + TypeScript (Client Application)
- NestJS (Server Application)
- Apollo GraphQL (Primary API)
- Socket.io (WebSockets)
- Bull (Queue Manager)
- Nodemailer (Emails)
- MongoDB (Primary Datastore)
- Redis (Queue Datastore)
- Auth0 (Authentication + Authorization)
- AWS S3 (Primary Blob Storage)
- Google Drive API (Personal Upload)
- Twilio SendGrid (Email API)
- Docker (Images)
- GitHub Actions (CI/CD)
- Kubernetes (Cluster)
- DigitalOcean (Cloud Provider)
- Nginx (Ingress + Static Server)
- Let's Encrypt (Certificate Authority)
Thanks goes to these wonderful people (emoji key):
Navinn Ravindaran 💻 🚇 |
Samyak Mehta 💻 |
Aryan Patel 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!