← All templates

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

Open in Molecule

What is inside

  • auth
  • data-upload
  • ai-analysis
  • charts
  • data-table
  • export
  • subscriptions

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

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • ANTHROPIC_API_KEY Anthropic API key for Claude
  • OPENAI_API_KEY OpenAI API key for embeddings
  • AWS_ACCESS_KEY_ID AWS access key for S3 uploads
  • AWS_SECRET_ACCESS_KEY AWS secret key for S3 uploads
  • S3_BUCKET S3 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