Note-taking
Productivity · React + Node (Express) · 30 @molecule/* packages
Notion-like note-taking with block editor, nested pages, databases, and templates — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (12)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Home
/home(signed in) - Notes
/notes(signed in) - NoteEditor
/notes/:id(signed in) - Search
/search(signed in) - Graph
/graph(signed in) - Tags
/tags(signed in) - Settings
/settings(signed in)
Data model (13 tables)
- activities — id, actorId, action, resourceType, resourceId, metadata, createdAt
- activity_seen_status — userId, lastSeenActivityId, updatedAt
- blocks — id, page_id, parent_block_id, type, content, properties, position, created_at, …
- bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
- comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
- database_rows — id, database_id, values, position, created_at, updated_at
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- note_databases — id, workspace_id, page_id, created_by, name, schema, view_type, created_at, …
- page_templates — id, workspace_id, created_by, name, description, category, icon, content, …
- pages — id, workspace_id, parent_id, template_id, created_by, title, icon, cover_image, …
- resource_tags — id, tagId, resourceType, resourceId, createdAt
- tags — id, name, slug, color, description, createdAt, updatedAt
- workspaces — id, owner_id, name, icon, created_at, updated_at
API (6 handlers)
- blocks
api/src/handlers/blocks.ts - databases
api/src/handlers/databases.ts - pages
api/src/handlers/pages.ts - profile
api/src/handlers/profile.ts - templates
api/src/handlers/templates.ts - workspaces
api/src/handlers/workspaces.ts
Subscription tiers
free / pro / team — gated by: maxBlocks, maxDatabases, maxPages, maxTemplates, maxWorkspaces, advancedFeatures, canExport, retentionDays
Built from 30 @molecule/* packages
@molecule/api-ai-summarization@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-image-sharp@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-pdf-pdfkit@molecule/api-permissions-custom@molecule/api-realtime-socketio@molecule/api-resource-activity-feed@molecule/api-resource-bookmark@molecule/api-resource-comment@molecule/api-resource-payment@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-ai-copilot-default@molecule/app-billing-react@molecule/app-command-palette-cmdk@molecule/app-drag-drop-dndkit@molecule/app-file-upload-filepond@molecule/app-keyboard-shortcuts-hotkeys@molecule/app-markdown-react-markdown@molecule/app-realtime-socketio@molecule/app-rich-text-quill@molecule/app-tree-view-default@molecule/app-virtual-scroll-tanstack
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API keyS3_BUCKETS3 bucket for file uploads
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing