Whiteboard
Communication · React + Node (Express) · 16 @molecule/* packages
Miro-like collaborative canvas with shapes, sticky notes, drawing, and real-time cursors — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (17)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Boards
/boards(signed in) - BoardCanvas
/board/:id(signed in) - Templates
/templates(signed in) - Shared
/shared(signed in) - Settings
/settings(signed in) - TemplateDetail
/templates/:id(signed in) - Notifications
/notifications(signed in) - Profile
/profile(signed in) - Workspace
/workspace(signed in) - Billing
/billing(signed in) - VersionHistory
/board/:id/history(signed in) - PresentationMode
/board/:id/present(signed in)
Data model (8 tables)
- board_collaborators — id, board_id, user_id, email, role, accepted_at, created_at, updated_at
- board_elements — id, board_id, user_id, type, x, y, width, height, …
- board_frames — id, board_id, user_id, name, viewport, order_index, created_at, updated_at
- board_templates — id, owner_id, user_id, name, description, snapshot, is_system, created_at, …
- board_versions — id, board_id, user_id, snapshot, change_summary, created_by, created_at
- boards — id, owner_id, user_id, title, description, background, is_public, public_slug, …
- comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
API (6 handlers)
- boards
api/src/handlers/boards.ts - collaborators
api/src/handlers/collaborators.ts - elements
api/src/handlers/elements.ts - frames
api/src/handlers/frames.ts - templates
api/src/handlers/templates.ts - versions
api/src/handlers/versions.ts
Subscription tiers
free / pro / team — gated by: maxBoards, maxCollaborators, maxElements, advancedFeatures, canExport, retentionDays
Built from 16 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-image-sharp@molecule/api-payments-stripe@molecule/api-permissions-custom@molecule/api-realtime-socketio@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-image-crop@molecule/app-keyboard-shortcuts@molecule/app-realtime-socketio
Required secrets
DATABASE_URLPostgreSQL connection stringS3_BUCKETS3 bucket for board assetsMAILGUN_API_KEYMailgun API key for sharing invites
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing