Document Collaboration
Communication · React + Node (Express) · 19 @molecule/* packages
Google Docs-like real-time document editing with comments, version history, and sharing — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (15)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Editor
/doc/:id(signed in) - VersionHistory
/doc/:id/history(signed in) - Comments
/doc/:id/comments(signed in) - Shared
/shared(signed in) - Settings
/settings(signed in) - Notifications
/notifications(signed in) - Templates
/templates(signed in) - Trash
/trash(signed in) - Profile
/profile(signed in)
Data model (11 tables)
- activities — id, actorId, action, resourceType, resourceId, metadata, createdAt
- activity_seen_status — userId, lastSeenActivityId, updatedAt
- comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- document_comments — id, document_id, author_id, parent_id, body, anchor, is_resolved, resolved_by, …
- document_shares — id, document_id, shared_by, shared_with_user_id, email, role, accepted_at, created_at, …
- document_templates — id, owner_id, name, description, category, content, is_system, created_at, …
- document_versions — id, document_id, author_id, content, version, change_summary, created_at
- documents — id, owner_id, template_id, title, content, status, is_template, version, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- notifications — id, user_id, type, actor, description, href, unread, created_at
API (8 handlers)
- \_seed
api/src/handlers/_seed.ts - comments
api/src/handlers/comments.ts - documents
api/src/handlers/documents.ts - notifications
api/src/handlers/notifications.ts - profile
api/src/handlers/profile.ts - sharing
api/src/handlers/sharing.ts - templates
api/src/handlers/templates.ts - versions
api/src/handlers/versions.ts
Subscription tiers
free / pro / team — gated by: maxComments, maxDocuments, maxSharing, maxVersions, advancedFeatures, canExport, retentionDays
Built from 19 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-permissions-custom@molecule/api-realtime-socketio@molecule/api-resource-activity-feed@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-command-palette@molecule/app-keyboard-shortcuts@molecule/app-markdown@molecule/app-realtime-socketio@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringS3_BUCKETS3 bucket for document 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