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★ 16,225+472 that day#4 on trendingC 58.6 health1.03% duplicated
C58.6/100
Duplication90
0.8% in tsx, typescript, bash, javascript, perlDead code26
17%Complexity86
9.3%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
12,165lines
62,533tokens
8clones
125duplicated lines (1.03%)
560duplicated tokens (0.9%)
By format
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| tsx | 49 | 4,511 | 3 | 43 | 0.95% |
| typescript | 30 | 3,715 | 3 | 34 | 0.92% |
| text | 1 | 371 | 1 | 30 | 8.09% |
| yaml | 2 | 273 | 1 | 18 | 6.59% |
| bash | 10 | 901 | 0 | 0 | 0% |
| markdown | 3 | 759 | 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:255–285⇆README.md:296–326
- 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:222–240⇆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 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 .