explaingit

open-dev-society/openstock

11,324TypeScriptAudience · generalComplexity · 3/5LicenseSetup · moderate

TLDR

A free, self-hosted stock market tracker with price charts, personal watchlists, company financials, Reddit sentiment, and AI-personalized daily news emails. An open-source alternative to paid market platforms.

Mindmap

mindmap
  root((OpenStock))
    What it does
      Stock chart viewer
      Watchlist tracking
      AI email digests
    Tech stack
      Next.js
      MongoDB
      Google Gemini
    Use cases
      Personal investing
      Team stock tracking
      Bloomberg alternative
    Audience
      Individual investors
      Dev communities
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run your own private stock watchlist and chart viewer without paying for Bloomberg or similar subscription tools.

USE CASE 2

Receive a daily AI-generated email summarizing news for the specific stocks on your personal watchlist.

USE CASE 3

Host OpenStock for a small community so members can track and share stock ideas at no cost.

Tech stack

TypeScriptNext.jsMongoDBTailwind CSSGoogle GeminiInngestDocker

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires a MongoDB connection, Finnhub API key, Gmail account for emails, and Docker Compose for local setup.

Free to use and modify, but if you deploy it as a web service you must publish your modifications under the same AGPL-3.0 license and credit the original authors.

In plain English

OpenStock is a free, open-source web application for tracking stock market data. It is positioned as an alternative to paid market platforms like Bloomberg or similar subscription tools. The project was built by a community group called Open Dev Society, which builds free tools as a matter of principle: no paywalls, no subscriptions, no advertising. The application lets users search for stocks, view price charts, and save a personal watchlist of symbols they want to monitor. Stock data comes from Finnhub, a market data API. Charts are rendered using TradingView widgets, the same charting tools used on many financial sites. Company profile information, financials, and sentiment data from sources like Reddit and news feeds can also be displayed on a stock's detail page. User accounts are supported with email and password login. Each account stores a watchlist in MongoDB, a document database. During signup, the app collects some preferences (country, investment goals, risk tolerance, preferred industry) and uses those to personalize a welcome email. A daily news summary email based on the user's watchlist is sent automatically via a background job scheduler called Inngest. The AI used to generate personalized email introductions is Google Gemini. The interface is a modern web app built with Next.js and styled with Tailwind CSS. It supports a command palette (opened with Cmd/Ctrl+K) for quickly jumping to stocks or actions, and defaults to a dark theme. Self-hosting requires a MongoDB connection, a Finnhub API key, and a Gmail account for sending emails. Docker Compose configuration is included for running it locally. The project is licensed under AGPL-3.0, which means anyone who modifies and deploys it, including as a web service, must publish their changes under the same license and credit the original authors. The README explicitly states this is not a brokerage and nothing on the site is financial advice.

Copy-paste prompts

Prompt 1
I'm self-hosting OpenStock. Walk me through setting up the MongoDB connection string, Finnhub API key, and Gmail sender credentials in the environment configuration file.
Prompt 2
How do I add a stock ticker to my OpenStock watchlist and view its TradingView chart alongside Reddit sentiment data?
Prompt 3
The Docker Compose setup for OpenStock isn't starting. Show me how to inspect the container logs and fix a MongoDB connection refused error.
Prompt 4
I want to customize the AI-generated daily news email in OpenStock to include a personalized subject line. Which file should I edit and what variables are available?
Open on GitHub → Explain another repo

← open-dev-society on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.