Spreadsheet
Productivity · React + Node (Express) · 17 @molecule/* packages
Airtable-like spreadsheet with grid views, column types, formulas, real-time collaboration, and CSV import/export — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (19)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Workbooks
/workbooks(signed in) - Editor
/workbooks/:id(signed in) - Charts
/workbooks/:id/charts(signed in) - Templates
/templates(signed in) - Settings
/settings(signed in) - TemplatePreview
/templates/:id(signed in) - Automations
/automations(signed in) - Integrations
/integrations(signed in) - History
/workbooks/:id/history(signed in) - Notifications
/notifications(signed in) - Team
/team(signed in) - Profile
/profile(signed in) - Billing
/billing(signed in) - NotFound
/*
Data model (15 tables)
- automations — id, spreadsheet_id, owner_id, name, trigger, action, is_active, last_run_at, …
- chart_definitions — id, sheet_id, spreadsheet_id, owner_id, name, type, config, created_at, …
- columns — id, sheet_id, spreadsheet_id, owner_id, name, type, config, position, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- integration_connections — id, user_id, owner_id, provider, status, tokens, created_at, updated_at
- notifications — id, user_id, type, title, body, data, read_at, created_at
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- resource_tags — id, tagId, resourceType, resourceId, createdAt
- rows — id, sheet_id, spreadsheet_id, owner_id, cells, position, created_at, updated_at
- sheets — id, spreadsheet_id, owner_id, name, position, color, created_at, updated_at
- spreadsheet_collaborators — id, spreadsheet_id, owner_id, user_id, email, role, invited_by, accepted_at, …
- spreadsheet_templates — id, owner_id, name, description, category, is_system, snapshot, created_at, …
- spreadsheet_versions — id, spreadsheet_id, owner_id, created_by, snapshot, change_summary, created_at
- spreadsheets — id, owner_id, user_id, title, description, is_public, public_slug, is_starred, …
- tags — id, name, slug, color, description, createdAt, updatedAt
API (13 handlers)
- automations
api/src/handlers/automations.ts - charts
api/src/handlers/charts.ts - collaborators
api/src/handlers/collaborators.ts - columns
api/src/handlers/columns.ts - import-export
api/src/handlers/import-export.ts - integrations
api/src/handlers/integrations.ts - notifications
api/src/handlers/notifications.ts - rows
api/src/handlers/rows.ts - search
api/src/handlers/search.ts - sheets
api/src/handlers/sheets.ts - spreadsheets
api/src/handlers/spreadsheets.ts - templates
api/src/handlers/templates.ts - versions
api/src/handlers/versions.ts
Subscription tiers
free / pro / team — gated by: maxColumns, maxRows, maxSheets, maxSpreadsheets, advancedFeatures, canExport, retentionDays
Built from 17 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-realtime-socketio@molecule/api-resource-payment@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/app-billing-react@molecule/app-command-palette-cmdk@molecule/app-data-table@molecule/app-keyboard-shortcuts-hotkeys@molecule/app-realtime-socketio@molecule/app-virtual-scroll-tanstack
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeiliSearch API key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing