A modern, collaborative drawing platform built with React, TypeScript, Tldraw, and Supabase. Create, collaborate, and share your drawings in real-time.
- 🎨 Advanced Drawing Tools - Professional drawing capabilities powered by Tldraw
- 👥 Real-time Collaboration - Work together with others in real-time
- ☁️ Cloud Storage - Automatic saving and synchronization across devices
- 🔐 User Authentication - Secure user accounts and document ownership
- 📱 Responsive Design - Works perfectly on desktop and mobile
- 🚀 Fast & Modern - Built with the latest web technologies
- Frontend: React 18, TypeScript, Tailwind CSS
- Drawing Engine: Tldraw v3
- Backend: Supabase (Auth, Database, Realtime, Storage)
- Deployment: Render (Frontend) + Supabase (Backend)
- Node.js 18+
- npm or yarn
- Supabase account (free tier available)
-
Clone the repository
git clone <your-repo-url> cd Witepad
-
Install dependencies
npm install
-
Set up Supabase
- Create a new Supabase project at supabase.com
- Copy your project URL and anon key
- Update
src/integrations/supabase/client.ts
with your credentials
-
Set up the database
- In your Supabase dashboard, go to the SQL editor
- Run the SQL from
schema.sql
file
-
Start development server
npm run dev
-
Open your browser
- Navigate to
http://localhost:5173
- Navigate to
-
Frontend Deployment
- Fork this repository to your GitHub account
- Create a new Static Site on Render
- Connect your GitHub repository
- Set build command:
npm run build
- Set publish directory:
dist
-
Environment Variables
- No environment variables needed (credentials are in the code for simplicity)
-
Custom Domain (Optional)
- Add your custom domain in Render dashboard
- Update Supabase Auth settings with your domain
For self-hosting, you can use:
- Supabase Self-Hosted - Follow Supabase self-hosting guide
- Any Static Host - Deploy the built files to any static hosting service
- Docker - Build a Docker image for containerized deployment
-
Authentication
- Enable Email/Password authentication
- Configure redirect URLs in Auth settings
- Optional: Enable social providers (Google, GitHub, etc.)
-
Database
- Run the provided
schema.sql
file - Enable Row Level Security (RLS)
- Set up realtime subscriptions
- Run the provided
-
Storage
- Create
documents
bucket - Configure storage policies
- Create
For production deployments, you may want to use environment variables:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Multiple users can draw on the same canvas simultaneously
- Changes are synchronized in real-time using Supabase Realtime
- Conflict resolution ensures smooth collaboration
- Create, save, and organize drawings
- Share documents with other users
- Version history and auto-save functionality
- Shape tools (rectangle, circle, line, arrow, etc.)
- Text editing with rich formatting
- Layer management and grouping
- Export to various formats (PNG, SVG, JSON)
- Secure authentication with Supabase Auth
- User profiles and preferences
- Document ownership and permissions
This application is designed to work within free tier limits:
- Supabase: 500MB database, 1GB bandwidth, 2 realtime connections
- Render: 750 hours/month static site hosting
- Total Cost: $0/month for small to medium usage
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details
For questions or issues:
- Open a GitHub issue
- Check the Supabase documentation
- Check the Tldraw documentation
- Export/Import functionality
- Advanced collaboration features
- Mobile app
- Plugin system
- Advanced shape libraries
- Team workspaces