Open-Dev-Society/OpenStock
OpenStock is an open-source alternative to expensive market platforms. Track real-time prices, set personalized alerts, and explore detailed company insights — built openly, for everyone, forever free.
TypeScript★ 18,937+344 that day#5 on trendingC 58 health1.09% duplicated
C58/100
Duplication90
0.9% in tsx, typescript, bash, javascript, perlDead code26
17%Complexity85
9.9%Most complex files
- lib/actions/finnhub.actions.ts63 cx
- lib/utils.ts56 cx
- lib/inngest/functions.ts51 cx
- __tests__/ai-provider.test.ts49 cx
- __tests__/utils.test.ts47 cx
- lib/actions/adanos.helpers.ts36 cx
- lib/ai-provider.ts29 cx
- components/watchlist/WatchlistTable.tsx28 cx
- components/SearchCommand.tsx24 cx
- components/WatchlistButton.tsx23 cx
Dead code 17.03% unused · 72 findings
- lib/nodemailer/templates.ts:VOLUME_ALERT_EMAIL_TEMPLATEunused-export
- lib/nodemailer/templates.ts:STOCK_ALERT_LOWER_EMAIL_TEMPLATEunused-export
- lib/nodemailer/templates.ts:STOCK_ALERT_UPPER_EMAIL_TEMPLATEunused-export
- components/watchlist/WatchlistTable.tsxunused-file
- lib/nodemailer/templates.ts:INACTIVE_USER_REMINDER_EMAIL_TEMPLATEunused-export
- scripts/migrate-users-to-kit.mjsunused-file
- scripts/resolve_srv.jsunused-file
- scripts/seed-inactive-user.mjsunused-file
- scripts/verify-watchlist.mjsunused-file
- scripts/test-kit.mjsunused-file
117files
11,453lines
62,552tokens
8clones
125duplicated lines (1.09%)
560duplicated tokens (0.9%)
By format
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| tsx | 49 | 4,511 | 3 | 46 | 1.02% |
| typescript | 30 | 3,715 | 3 | 37 | 1% |
| text | 1 | 91 | 1 | 24 | 26.37% |
| yaml | 2 | 52 | 1 | 18 | 34.62% |
| markdown | 3 | 763 | 0 | 0 | 0% |
| bash | 10 | 713 | 0 | 0 | 0% |
| javascript | 12 | 651 | 0 | 0 | 0% |
| css | 1 | 489 | 0 | 0 | 0% |
| markup | 4 | 181 | 0 | 0 | 0% |
| perl | 1 | 168 | 0 | 0 | 0% |
Largest clones
- 31 lines · 146 tokens textREADME.md:259–289⇆README.md:300–330
- 13 lines · 71 tokens tsxapp/(auth)/sign-in/page.tsx:87–99⇆app/(auth)/sign-up/page.tsx:142–154
- 19 lines · 68 tokens yamlREADME.md:226–244⇆docker-compose.yml:15–33
- 14 lines · 58 tokens tsxapp/(auth)/forgot-password/page.tsx:52–65⇆app/(auth)/sign-in/page.tsx:48–61
- 19 lines · 57 tokens tsxapp/(auth)/sign-in/page.tsx:51–69⇆app/(auth)/sign-up/page.tsx:72–90
- 15 lines · 57 tokens typescriptlib/constants.ts:195–209⇆lib/constants.ts:221–235
- 10 lines · 53 tokens typescriptlib/kit.ts:42–51⇆lib/kit.ts:109–118
- 12 lines · 50 tokens typescript__tests__/ai-provider.test.ts:102–113⇆__tests__/ai-provider.test.ts:256–267
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | Duplication | Health | Commit |
|---|---|---|---|---|---|---|---|---|
| Sep 24, 2026 | #5 | 18,937 (+344) | 117 | 11,453 | 8 | 1.09% | C 58 | 7570db2 |
| Sep 22, 2026 | #2 | 17,964 (+844) | 117 | 12,181 | 8 | 1.03% | C 58.1 | 9677edd |
| Sep 21, 2026 | #8 | 16,997 (+755) | 117 | 12,165 | 8 | 1.03% | C 58.6 | 53553ec |
| Sep 20, 2026 | #4 | 16,225 (+472) | 117 | 12,165 | 8 | 1.03% | C 58.6 | 53553ec |
Want this for your own project? Install jscpd and run jscpd .