尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证DividendWatch: Dividenden-Tracker für Anleger in der DACH-Region. Next.js + Prisma
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗██████╗ ██╗██╗ ██╗██╗██████╗ ███████╗███╗ ██╗██████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗
██╔══██╗██║██║ ██║██║██╔══██╗██╔════╝████╗ ██║██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║
██║ ██║██║██║ ██║██║██║ ██║█████╗ ██╔██╗ ██║██║ ██║██║ █╗ ██║███████║ ██║ ██║ ███████║
██║ ██║██║╚██╗ ██╔╝██║██║ ██║██╔══╝ ██║╚██╗██║██║ ██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║
██████╔╝██║ ╚████╔╝ ██║██████╔╝███████╗██║ ╚████║██████╔╝╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║
╚═════╝ ╚═╝ ╚═══╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═══╝╚═════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
Dividend stock intelligence for DACH retail investors.
Track yields, simulate savings plans, and assess sustainability — all in one dark, fast, open-source app.
Live Demo · Report Bug · Request Feature
DividendWatch is a free, open-source financial tool built specifically for retail investors in the DACH region (🇨🇭 Switzerland · 🇩🇪 Germany · 🇦🇹 Austria). It cuts through noise to answer one question:
Which dividend stocks are actually worth holding?
No ads. No paywalls. No data selling. Just clean, fast, honest financial data.
Browse and filter 67 dividend stocks from Swiss (SIX), European (XETRA, AMS, EPA), Austrian (Vienna), UK (LSE), and Scandinavian (Nasdaq Stockholm, Nasdaq Copenhagen) exchanges, plus US (NYSE, NASDAQ) — sorted by yield, filtered by region.
Each stock gets a sustainability badge based on payout ratio and dividend growth history:
Compound your wealth with a full Dividend Reinvestment Plan (DRIP) simulator. Set your monthly budget, stock price, dividend, and growth rate — see exactly where you land after 1–40 years, with an interactive chart.
Enter any CHF amount and instantly see: how many shares you can buy, annual dividend income, monthly income, and leftover cash.
Side-by-side comparison of Dividend vs. Growth strategies with a grid of top growth stocks (NVDA, MSFT, AMZN, AAPL, and more) including P/E, Beta, and Market Cap.
Every stock detail page includes jurisdiction-specific tax notes — Swiss Verrechnungssteuer, US withholding tax under the DBA treaty, EU per-country rates — so you know your real after-tax return.
System-aware dark mode powered by next-themes, with a manual toggle in the header — respects your OS preference by default and remembers your choice.
Track your own holdings at /portfolio — add tickers and share counts to see your live position value and dividend income across currencies. Stored entirely in your browser via zustand + localStorage, no login or database required.
Every stock detail page includes a Recharts line chart of dividend payments over time, built from the same dividend history data that powers the sustainability score.
Export the currently filtered and sorted stock table to CSV or JSON with one click — handy for your own spreadsheets or further analysis.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| Styling | Tailwind CSS v4 + shadcn/ui |
| Database | PostgreSQL via Prisma ORM |
| Data Source | yahoo-finance2 |
| Charts | Recharts |
| Icons | Lucide React |
| Fonts | Syne · DM Sans · JetBrains Mono |
| Deployment | Vercel |
| Package Manager | pnpm |
git clone https://github.com/Vinyxsoftware/dividendwatch.git
cd dividendwatch
pnpm install
cp .env.example .env
Open .env and set your values:
# PostgreSQL connection string (Supabase, Neon, Railway, etc.)
DATABASE_URL="postgresql://user:password@host:5432/dividendwatch?sslmode=require"
# Secret for the /api/refresh endpoint (any random string)
REFRESH_SECRET="change-me-in-production"
# Push schema and generate Prisma client
pnpm prisma migrate deploy
pnpm prisma generate
# Seed with live market data from Yahoo Finance
pnpm seed
pnpm dev
Open http://localhost:3000 — you should see the full app with live data.
dividendwatch/
├── app/
│ ├── page.tsx # Homepage — rankings + budget calculator
│ ├── portfolio/page.tsx # Portfolio tracker — your own holdings
│ ├── simulator/page.tsx # DRIP savings plan simulator
│ ├── wachstum/page.tsx # Growth stocks comparison
│ ├── stock/[ticker]/ # Stock detail page
│ ├── error.tsx # Route error boundary
│ ├── loading.tsx # Route loading skeleton
│ └── api/
│ ├── stocks/ # REST endpoint — list + detail
│ └── refresh/ # Trigger data refresh from Yahoo Finance
├── components/
│ ├── SiteHeader.tsx # Shared glass nav header
│ ├── StockTable.tsx # Filterable dividend ranking table
│ ├── BudgetCalculator.tsx # Interactive budget → dividend calculator
│ ├── SimulatorChart.tsx # Recharts DRIP area chart
│ ├── DividendHistoryChart.tsx # Recharts dividend history line chart
│ ├── PortfolioClient.tsx # Portfolio tracker UI
│ ├── ThemeProvider.tsx # next-themes dark mode provider
│ └── SustainabilityBadge.tsx
├── lib/
│ ├── prisma.ts # Prisma client singleton
│ ├── yahoo.ts # Yahoo Finance fetcher + ticker list
│ ├── calculations.ts # Sustainability scoring logic
│ ├── export.ts # CSV/JSON export helpers
│ ├── fx.ts # Approximate FX rates for cross-currency totals
│ └── portfolioStore.ts # zustand store for portfolio holdings (localStorage)
├── prisma/
│ └── schema.prisma # Stock, Dividend, PriceSnapshot models
└── scripts/
└── seed.ts # Bulk data seeder
Stock data is fetched from Yahoo Finance. To refresh manually, call the API endpoint with your secret:
curl -X POST https://your-deployment.vercel.app/api/refresh \
-H "Authorization: Bearer YOUR_REFRESH_SECRET"
To automate refreshes, set up a cron job or use Vercel Cron.
The fastest way to self-host your own instance:
You'll need to set DATABASE_URL and REFRESH_SECRET in the Vercel project environment variables after cloning.
Contributions are what make open source great. All contributions are welcome — bug fixes, new features, better data sources, UI improvements, additional ticker lists for other regions.
git checkout -b feat/your-featuregit commit -m 'feat: add your feature'lib/fx.ts)Please open an issue before starting large changes so we can discuss the approach.
Distributed under the MIT License — see LICENSE for details.