← All templates

Investment Portfolio

Finance · React + Node (Express) · 21 @molecule/* packages

Robinhood-like portfolio dashboard with holdings, performance tracking, news, and watchlist — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • notifications
  • reports
  • subscriptions

Screens (14)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Holdings /holdings (signed in)
  • AssetDetail /assets/:symbol (signed in)
  • Watchlist /watchlist (signed in)
  • Transactions /transactions (signed in)
  • News /news (signed in)
  • Settings /settings (signed in)
  • Rebalance /rebalance (signed in)
  • Reports /reports (signed in)

Data model (11 tables)

  • assets — id, symbol, name, asset_class, description, last_price_cents, market_price_cents, fifty_two_week_high_cents, …
  • bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • holdings — id, user_id, account_id, symbol, name, asset_class, shares, avg_cost_cents, …
  • investment_transactions — id, user_id, account, symbol, asset_name, kind, type, shares, …
  • news_articles — id, title, source, summary, content, url, symbol, related_symbols, …
  • notifications — id, createdAt, updatedAt
  • target_allocations — id, user_id, asset_class, target_pct, created_at, updatedAt
  • watchlist — id, user_id, symbol, name, asset_class, last_price_cents, day_change_pct, alert_direction, …
  • notification_preferences — id, user_id, price_alerts, rebalance_drift, dividends_paid, tax_docs_ready, created_at, updated_at
  • user_settings — id, user_id, advisor_email, tax_method, created_at, updated_at

API (8 handlers)

  • holdings api/src/handlers/holdings.ts
  • news api/src/handlers/news.ts
  • notification-preferences api/src/handlers/notification-preferences.ts
  • notifications api/src/handlers/notifications.ts
  • reports api/src/handlers/reports.ts
  • transactions api/src/handlers/transactions.ts
  • user-settings api/src/handlers/user-settings.ts
  • watchlist api/src/handlers/watchlist.ts

Subscription tiers

free / pro / team — gated by: maxHoldings, maxNews, maxPerformance, maxTransactions, maxWatchlist, advancedFeatures, canExport, retentionDays

Built from 21 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY Meilisearch API key

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing