Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

Open-Dev-Society/OpenStock

Finance

A self-hostable stock market dashboard for tracking quotes, watchlists, alerts and company data across eight markets.

21,321
2,653
TypeScript
AGPL-3.0
1 year old

Overview

OpenStock is a Next.js market dashboard positioned as a free, open-source alternative to subscription market platforms. It covers eight market groups — US, India, Germany, Canada, Australia, Saudi Arabia, crypto and forex — and combines TradingView charts with Finnhub quotes, company profiles, financials and technicals. Signed-in users get a watchlist of up to 50 stocks and price alerts; the app can also send a weekly AI-written news digest.

It is aimed at two audiences: people who want a hosted stock dashboard without a paywall, and developers who want to run or modify the stack themselves with MongoDB, Finnhub keys and optional email, AI and Inngest integrations.

Quick start

You need Node.js 22 LTS, a MongoDB database (a free Atlas cluster works) and a free Finnhub API key. From a clone of the repository:

git clone https://github.com/Open-Dev-Society/OpenStock.git
cd OpenStock
npm ci
cp .env.example .env         # fill in MONGODB_URI, BETTER_AUTH_SECRET and FINNHUB_API_KEY
node scripts/check-env.mjs   # checks your .env
npm run test:db              # checks the MongoDB connection
npm run dev                  # http://localhost:3000

Generate BETTER_AUTH_SECRET with openssl rand -hex 32; auth will refuse to run in production without it. Welcome emails, price alerts and the weekly digest are Inngest jobs, so run npx inngest-cli@latest dev alongside the app if you need them. Every configuration variable is documented in .env.example. The hosted instance is available at openstock-ods.vercel.app.

For a container deployment, Docker Compose starts the app and MongoDB together with docker compose up -d --build; a prebuilt image is also published on GHCR. Railway and Vercel deployment paths each require their own environment setup, including an Inngest app pointing at /api/inngest (self-hosting instructions).

Data freshness and market coverage

Charts stream from TradingView, while quotes, watchlist prices and alerts come from Finnhub. On the community site and a default self-host, quotes refresh hourly and are shared across users; setting NEXT_PUBLIC_OPENSTOCK_DATA_MODE=realtime with your own Finnhub keys changes this to every 15 seconds and enables email price alerts. That variable is fixed at build time, so changing it requires a rebuild.

Coverage is uneven across markets. Only the US and crypto pairs have live quotes plus watchlist and alert support through the free Finnhub tier. Forex has live charts but no quotes or alerts; Canada and Australia are delayed; Saudi Arabia uses delayed Yahoo Finance quotes; India and Germany are end-of-day only. The market support table lists the full breakdown, and the README notes that data may be delayed depending on provider and setup. OpenStock is not a brokerage and does not provide financial advice.

Constraints

  • Infrastructure dependencies: MongoDB is required; production sign-in needs BETTER_AUTH_SECRET and BETTER_AUTH_URL. Social login, email, AI digests and sentiment cards only work when their respective credentials are configured.
  • Build-time limits: NEXT_PUBLIC_OPENSTOCK_DATA_MODE must be set before building. The prebuilt GHCR image runs in cached mode, so realtime requires building it yourself.
  • Alerts: email alerts depend on Inngest and Nodemailer/Gmail credentials, and only work in realtime mode.
  • Licensing: AGPL-3.0. Modifying, redistributing or deploying it as a service requires releasing your source under the same license and crediting the original authors.
  • Data accuracy: quotes and alerts come from third-party providers and may be delayed or incomplete; the project explicitly does not treat its output as financial advice.

HotRepo's take

OpenStock first appears in HotRepo's snapshot records on 2026-05-26 at 11,902 stars with 128 daily additions. Through late September 2026 the daily snapshots show a sustained run: 477 stars on September 19, climbing to 752, 843, 844, 832 and then 344 on September 24. Its latest recorded snapshot, 2026-11-08, shows 21,317 stars and 90 additions for the day and places it 14th on the TypeScript daily list. That trajectory is consistent with a broadly used finance dashboard rather than a launch spike, but the data only covers the snapshot dates, so it cannot establish continuous growth between them.

The project's substance matches the attention: a full Next.js application with auth, database models, background jobs, Docker packaging and a documented self-hosting path. Its main practical limitation is not the concept but the free-tier data: self-hosters who expect live quotes everywhere will find that only US and crypto markets support them without paid providers.

Written by AI from the project's README, updated . The project's own docs are the source of truth.