OpenStock is an open-source, self-hosted market dashboard for tracking stock prices, written in TypeScript on top of Next.js. It is aimed at retail investors who want live prices, charts and alerts without paying a monthly subscription to a market data platform, and at developers who are comfortable deploying a web app and connecting it to a market data provider and a database.
What it does
The project covers the everyday surface of a market tracker rather than a trading terminal. From the dashboard you search a ticker and get a page for that company, and the pieces the project puts forward are:
- Real-time price tracking for any stock
- Personalized alerts that trigger when a price moves
- Company insight pages built on Finnhub data
- Live TradingView charts that update as the market moves
- Instant ticker search from the dashboard
Notably absent, and worth stating plainly: nothing in the materials describes order placement, brokerage connections or portfolio accounting. This is a watching-and-alerting tool, not a place where you buy anything.
How it works
The stack is a conventional modern TypeScript web application. Next.js provides the app and its server-side pieces; the interface is built from shadcn/ui components over Tailwind CSS; MongoDB stores the data that has to persist, which in a tool like this means user accounts, watched tickers and alert rules. Market data comes from Finnhub, and the charts are TradingView's, embedded rather than reimplemented — a sensible division of labor, since charting and market data feeds are exactly the two parts you do not want to rewrite.
Inngest appears among the repository's topics. The project does not explain its role in the material available here, but alerts are the classic case for it: deciding that a price crossed a threshold and notifying someone cannot happen inside a page request, and Inngest is a background and scheduled job service. CodeRabbit, also listed as a topic, is an automated reviewer that comments on pull requests — a hint about how the maintainers handle the contribution volume that comes with a repository this popular.
The license is AGPL-3.0, which matters more than usual for a web application. Running a modified copy as a service that other people use obliges you to offer those users your modified source. For personal or internal use this is irrelevant; for anyone thinking of turning it into a closed commercial product, it is the whole story.
Getting started
Treat it as a standard Next.js project: clone the repository, install dependencies, supply configuration, run the dev server. What you need to bring is the external pieces — a MongoDB database and access to Finnhub for the market data. The exact environment variables and commands belong to the repository's own README, which is where you should read them rather than trusting a summary; they change as the project moves, and it is moving. A deployment target that runs Next.js comfortably, plus somewhere for the background jobs to run, is the rest of the requirement.
When to use it / when not
Use it when you want a market dashboard you control: the data stays on your infrastructure, the alert logic is code you can read and change, and there is no per-seat billing between you and a stock quote. It is also a reasonable reference for developers who want to see a full Next.js application — auth, persistence, third-party data, background jobs, a component library — assembled in one working codebase rather than in a tutorial.
Skip it if you want something that works the moment you sign up; this is software you have to host, and a hosted competitor will always be less work. Skip it if your requirements are institutional — tick-level history, guaranteed latency, exchange coverage beyond what your Finnhub plan gives you, since the quality and limits of the data are the provider's, not the project's. Skip it too if you intended to wrap it in a paid service and keep your changes private, because the AGPL says otherwise.
OpenStock is worth taking seriously by two groups. The first is anyone who already pays for a price-watching tool and does not need the rest of the platform it came bundled with; the feature list here is small, but it is the part most people actually use, and self-hosting turns a recurring cost into a one-time setup. The second is developers looking for a live, heavily-exercised example of the current TypeScript web stack — the repository has gathered roughly 15,900 stars and 2,000 forks since it appeared in September 2025, and it was still being pushed to a year later, so the code you read is code that people are running and fixing. Neither group should expect a Bloomberg terminal. Expect a well-assembled tracker whose source you own, and judge it on that.