6 views
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 trending
C58/100
Duplication90
0.9% in tsx, typescript, bash, javascript, perlDead code26
17%Complexity85
9.9% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
0.83%duplicated code · 71 of 8,578 lines
5clones in code
95code files of 117 scanned
1.1%duplicated over all files · 8 clones
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
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 13 lines in 2 placestsx71 tokens
87<OpenDevSocietyBranding outerClassName="mt-10 flex justify-center" /> 88<div className="mt-5 flex justify-center"> 89 <a href="https://peerlist.io/ravixalgorithm/project/openstock" target="_blank" rel="noreferrer"> 90 <img 91 src="https://peerlist.io/api/v1/projects/embed/PRJH8OED7MBL9MGB9HRMKAKLM66KNN?showUpvote=true&theme=light" 92 alt="OpenStock" 93 style={{ width: 'auto', height: '72px' }} 94 /> 95 </a> 96</div>First 10 of 13 lines.
- 14 lines in 2 placestsx58 tokens
52</p> 53 54<form onSubmit={handleSubmit(onSubmit)} className="space-y-5"> 55 <InputField 56 name="email" 57 label="Email" 58 placeholder="[email protected]" 59 register={register} 60 error={errors.email} 61 validation={{First 10 of 14 lines.
- 19 lines in 2 placestsx57 tokens
51<InputField 52 name="email" 53 label="Email" 54 placeholder="[email protected]" 55 register={register} 56 error={errors.email} 57 validation={{ 58 required: 'Email is required', 59 pattern: { 60 value: /^[\w-.]+@([\w-]+\.)+[\w-]{2,}$/,First 10 of 19 lines.
2 more
- 15 lines in 2 placestypescript57 tokens
- 10 lines in 2 placestypescript53 tokens
Largest clones over all files, tests and data included
- 31 lines in 2 placestextdocs and examples146 tokens
259# Better Auth 260BETTER_AUTH_SECRET=your_better_auth_secret 261BETTER_AUTH_URL=http://localhost:3000 262 263# Finnhub 264# Note: NEXT_PUBLIC_FINNHUB_API_KEY is required for Vercel deployment 265NEXT_PUBLIC_FINNHUB_API_KEY=your_finnhub_key 266FINNHUB_BASE_URL=https://finnhub.io/api/v1 267 268# Sentiment insights (optional)First 10 of 31 lines.
- 13 lines in 2 placestsx71 tokens
87<OpenDevSocietyBranding outerClassName="mt-10 flex justify-center" /> 88<div className="mt-5 flex justify-center"> 89 <a href="https://peerlist.io/ravixalgorithm/project/openstock" target="_blank" rel="noreferrer"> 90 <img 91 src="https://peerlist.io/api/v1/projects/embed/PRJH8OED7MBL9MGB9HRMKAKLM66KNN?showUpvote=true&theme=light" 92 alt="OpenStock" 93 style={{ width: 'auto', height: '72px' }} 94 /> 95 </a> 96</div>First 10 of 13 lines.
- 19 lines in 2 placesyamldocs and examples68 tokens
226mongodb: 227 image: mongo:7 228 container_name: mongodb 229 restart: unless-stopped 230 environment: 231 MONGO_INITDB_ROOT_USERNAME: root 232 MONGO_INITDB_ROOT_PASSWORD: example 233 ports: 234 - "27017:27017" 235 volumes:First 10 of 19 lines.
- 14 lines in 2 placestsx58 tokens
- 19 lines in 2 placestsx57 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| tsx | 49 | 4,511 | 3 | 46 | 1.02% |
| typescript | 24 | 2,598 | 2 | 25 | 0.96% |
| javascript | 12 | 651 | 0 | 0 | 0% |
| bash | 9 | 644 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| 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 | 663 | 0 | 0 | 0% |
| javascript | 12 | 651 | 0 | 0 | 0% |
| css | 1 | 489 | 0 | 0 | 0% |
| markup | 4 | 181 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 24, 2026 | #5 | 18,937 (+344) | 117 | 11,409 | 8 | 1.1% | 0.83% | C 58 | 7570db2 |
| Sep 22, 2026 | #2 | 17,964 (+844) | 117 | 11,409 | 8 | 1.1% | 0.83% | C 58.1 | 9677edd |
| Sep 21, 2026 | #8 | 16,997 (+755) | 117 | 11,405 | 8 | 1.1% | 0.83% | C 58.6 | 53553ec |
| Sep 20, 2026 | #4 | 16,225 (+472) | 117 | 11,405 | 8 | 1.1% | 0.83% | C 58.6 | 53553ec |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.