← All Projects
Shipped · 2023—2025

Investors Center

An AI-assisted equity research platform: a Next.js analytics product backed by a separate Flask analysis service for screening, portfolio analytics, and market intelligence.

System

Investors Center is a financial analytics product for retail equity research, built as two services. A Next.js application owns accounts, subscriptions, portfolios, and presentation; a separate Flask analysis service owns market-data aggregation, scoring, and AI summarisation. The product surface covers a stock scanner, watchlists, portfolio analysis, side-by-side comparison, alerts, and political-trading views, while the analysis service sits behind API-key authentication, rate limiting, and a two-tier memory and Redis cache.

Constraint

Retail investors get either raw data terminals or opinionated newsletters. Turning scattered market data, filings, news, and sentiment into something a non-professional can act on means aggregating unreliable third-party feeds, scoring them consistently, and presenting the result without implying more certainty than the data supports.

Contribution

Split the system in two so analysis workloads never block the product. A Next.js 15 application handles auth, Stripe subscriptions, MongoDB persistence, and the product API surface. A Flask service on Heroku handles market-data aggregation, catalyst scoring, and LLM summarisation through both OpenAI and Anthropic, behind API-key auth, request rate limiting, and layered caching. Brokerage linking runs through SnapTrade; market data comes from yfinance, FMP, and Finnhub.

Architecture

Input

Market data · yfinance · FMP · FinnhubSEC + congressional disclosureLinked brokerage · SnapTrade

System

Next.js product · auth · Stripe · MongoDBFlask analysis service · API-key authRate limits · memory + Redis cache

Outcome

Scanner · portfolio analyticsAI summaries · PDF reportsAlerts · paper-traded strategies

Verified

Two-service split: product and analysis

Typed API routes across the product surface

API-key auth with rate limiting and tiered caching

Dual-provider LLM summarisation

Capabilities

Portfolio, brokerage & automated strategiesBrokerage accounts, positions, and trade history through SnapTrade, plus paper-traded strategies with backtesting, optimisation, and global risk limits.
Platform operations & internal toolingHealth checks, error and performance monitoring, cache invalidation, scheduled jobs, the analysis-service proxy, and a signed webhook the analysis service fires when its API schema changes.
Market data & stock analysisQuotes, a stock scanner, technical and contrarian signals, side-by-side comparison, batch analysis, market pulse, digests, earnings expectations, and news.
Subscriptions, billing & premium tiersStripe subscription lifecycle, waitlist and email invitation flow, and the tier-gated mirrors of the premium data feeds.
Regulatory & alternative intelligenceCongressional trading disclosure with politician profiles, trade patterns, and network and family relationships, plus insider filings, SEC watch and summarisation, and social sentiment.
Community & socialChat channels, messages, presence and typing indicators, alongside profiles, a following graph, and a leaderboard.
Accounts, auth & securitySession and JWT authentication, user records, API keys, CSRF token issuance, and CSP violation reporting.
AI analysis, summarisation & reportingTicker summaries, a planning oracle over the user’s own portfolio, guided discovery, a coaching endpoint, and PDF report generation.
Alerts & notificationsUser-defined alerts with history, bulk management, trigger evaluation, delivery statistics, and email dispatch.
Learning & scenario simulationGuided learning modules with achievement progress, and seeded market-crisis scenarios a user works through as a session.

Stack

Next.js 15TypeScriptFlask · PythonMongoDBRedisStripeHeroku

Next

Want the architecture behind this, or something like it built for your team?

Start a conversation

More work

AIC (AI Companion)
Local-first multimodal agent runtime spanning voice, vision, memory, tool use, and an embodied real-time interface
Genius Care
Clinical AI agent platform spanning voice reception, clinical documentation, workflow automation, and safe human escalation — deployed, and onboarding its first pilot practice
Toolshed
Agent capability and operations layer with a library of skills spanning research, commerce, prediction, browser, voice, infrastructure, and content, plus executable services, scheduled workflows, and multi-host deployment