AI Data Analyst
AI-first · React + Node (Express) · 21 @molecule/* packages
Upload data, ask questions in natural language, and get charts and insights — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (13)
- Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Landing
/ - QueryEditor
/query(signed in) - Datasets
/datasets(signed in) - DatasetDetail
/datasets/:id(signed in) - Reports
/reports(signed in) - ReportDetail
/reports/:id(signed in) - Upload
/upload(signed in) - Settings
/settings(signed in)
Data model (13 tables)
- analyses — id, user_id, dataset_id, prompt_text, generated_sql, result_rows_json, charts_json, narrative_md, …
- dataset_columns — id, dataset_id, name, type, nullable, unique_count, example, position, …
- dataset_rows — id, dataset_id, row_index, values_json, created_at
- datasets — id, user_id, name, description, format, source_url, row_count, col_count, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- insights — id, user_id, dataset_id, kind, headline, body_md, confidence, detected_at, …
- kpis — id, user_id, key, value, recorded_at
- notifications — id, user_id, kind, title, body, link, read_at, created_at, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- saved_reports — id, user_id, title, description, dataset_id, layout_json, last_run_at, created_at, …
- uploads — id, user_id, filename, mime, size_bytes, s3_key, status, error_message, …
- api_keys — id, user_id, name, key_hash, key_masked, scopes, last_used_at, revoked_at, …
- user_settings — user_id, organization, preferences, integrations, updated_at
API (12 handlers)
- \_seed
api/src/handlers/_seed.ts - analysis
api/src/handlers/analysis.ts - api_keys
api/src/handlers/api_keys.ts - datasets
api/src/handlers/datasets.ts - insights
api/src/handlers/insights.ts - notifications
api/src/handlers/notifications.ts - profile
api/src/handlers/profile.ts - queries
api/src/handlers/queries.ts - reports
api/src/handlers/reports.ts - saved_reports
api/src/handlers/saved_reports.ts - settings
api/src/handlers/settings.ts - uploads
api/src/handlers/uploads.ts
Subscription tiers
free / pro / team — gated by: maxAnalysis, maxDatasets, advancedFeatures, canExport, retentionDays
Built from 21 @molecule/* packages
@molecule/api-ai-anthropic@molecule/api-ai-embeddings-openai@molecule/api-ai-rag@molecule/api-ai-rag-llm@molecule/api-ai-vector-store-pgvector@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-resource-payment@molecule/api-resource-user@molecule/api-uploads-s3@molecule/app-ai-assistant@molecule/app-billing-react@molecule/app-charts@molecule/app-data-table@molecule/app-file-upload@molecule/app-notification-feed-react@molecule/app-sidebar-layout-react
Required secrets
DATABASE_URLPostgreSQL connection stringANTHROPIC_API_KEYAnthropic API key for ClaudeOPENAI_API_KEYOpenAI API key for embeddingsAWS_ACCESS_KEY_IDAWS access key for S3 uploadsAWS_SECRET_ACCESS_KEYAWS secret key for S3 uploadsS3_BUCKETS3 bucket name for data file storage
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing