1 view
vercel-labs/json-render
The Generative UI framework
TypeScript★ 17,511+291 that day#9 on trending
E39.9/100
Duplication14
24.3% in typescript, tsx, svelte, bash, python, javascript, perl, vueDead code83
2%Complexity54
44.6% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
22.98%duplicated code · 17,311 of 75,325 lines
554clones in code
617code files of 1,628 scanned
23.6%duplicated over all files · 1,543 clones
Most complex files
- examples/stripe-app/drawer-app/src/lib/render/catalog/actions.ts457 cx
- examples/stripe-app/fullpage-app/src/lib/render/catalog/actions.ts453 cx
- apps/web/lib/render/registry.tsx347 cx
- packages/react-three-fiber/src/components.tsx338 cx
- packages/ink/src/components/standard.tsx317 cx
- packages/core/src/schema.ts313 cx
- packages/shadcn/src/components.tsx306 cx
- apps/web/components/playground.tsx249 cx
- examples/stripe-app/drawer-app/src/lib/render/catalog/components.tsx236 cx
- examples/stripe-app/fullpage-app/src/lib/render/catalog/components.tsx236 cx
Dead code 2% unused · 142 findings
- packages/react-email/src/__fixtures__/examples.tsunused-file
- apps/web/components/generation-modes-diagram.tsxunused-file
- skills/remotion-best-practices/rules/assets/charts-bar-chart.tsxunused-file
- apps/web/lib/examples.tsunused-file
- apps/web/components/package-install.tsxunused-file
- apps/web/mdx-components.tsxunused-file
- skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsxunused-file
- skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsxunused-file
- apps/web/components/ui/card.tsxunused-file
- apps/web/components/code-tabs.tsxunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 1 generated file: packages/core/src/directives.ts.
Largest clones in the code
- 262 lines in 3 placestsx1,342 tokenspackages/react-email/src/contexts/validation.tsx:1–262packages/react-native/src/contexts/validation.tsx:1–308packages/react-pdf/src/contexts/validation.tsx:1–262
1import React, { 2 createContext, 3 useContext, 4 useState, 5 useCallback, 6 useMemo, 7 type ReactNode, 8} from "react"; 9import { 10 runValidation,First 10 of 262 lines.
- 426 lines in 2 placestypescript2,158 tokens
81 z.object({ 82 label: z.string(), 83 value: z.string(), 84 }), 85 ), 86 defaultValue: z.string().nullable(), 87 value: z.string().nullable(), 88}), 89slots: ["default"], 90events: ["change"],First 10 of 426 lines.
- 135 lines in 3 placestsx557 tokensapps/web/components/code-block.tsx:5–139apps/web/components/code.tsx:3–137apps/web/components/package-install.tsx:2–136
5import { CopyButton } from "./copy-button"; 6 7const vercelDarkTheme = { 8 name: "vercel-dark", 9 type: "dark" as const, 10 colors: { 11 "editor.background": "transparent", 12 "editor.foreground": "#EDEDED", 13 }, 14 settings: [First 10 of 135 lines.
7 more
- 232 lines in 2 placestsx1,011 tokens
- 221 lines in 2 placestypescript1,005 tokens
- 219 lines in 2 placestypescript1,003 tokens
- 251 lines in 2 placestsx897 tokens
- 190 lines in 2 placestsx831 tokens
- 184 lines in 2 placestsx705 tokens
- 33 lines in 5 placestypescript171 tokens
Largest clones over all files, tests and data included
- 1385 lines in 2 placestypescriptdocs and examples8,549 tokensexamples/stripe-app/drawer-app/src/lib/render/catalog/actions.ts:202–1586examples/stripe-app/fullpage-app/src/lib/render/catalog/actions.ts:182–1566
202 } 203}, 204 205createPaymentIntent: async (params, setState) => { 206 try { 207 await stripe.paymentIntents.create({ 208 amount: (params?.amount as number) ?? 0, 209 currency: (params?.currency as string) ?? "usd", 210 customer: (params?.customerId as string) ?? undefined, 211 description: (params?.description as string) ?? undefined,First 10 of 1385 lines.
- 1358 lines in 2 placestypescriptdocs and examples7,640 tokensexamples/stripe-app/drawer-app/src/lib/render/catalog.ts:1–1358examples/stripe-app/fullpage-app/src/lib/render/catalog.ts:1–1358
1import { defineCatalog } from "@json-render/core"; 2import { schema } from "@json-render/react/schema"; 3import { z } from "zod"; 4 5/** 6 * Stripe UIXT Catalog 7 * 8 * Comprehensive catalog mapping to Stripe UI Extension SDK components. 9 */ 10export const stripeCatalog = defineCatalog(schema, {First 10 of 1358 lines.
- 1400 lines in 2 placestsxdocs and examples7,242 tokensexamples/stripe-app/drawer-app/src/lib/render/catalog/components.tsx:6–1405examples/stripe-app/fullpage-app/src/lib/render/catalog/components.tsx:6–1405
6import type { FunctionComponent } from "react"; 7import type { ComponentRenderProps } from "@json-render/react"; 8import { 9 Box, 10 Badge as UIBadge, 11 Banner as UIBanner, 12 Button as UIButton, 13 Checkbox as UICheckbox, 14 DateField as UIDateField, 15 Divider as UIDivider,First 10 of 1400 lines.
- 1046 lines in 2 placestypescriptdocs and examples3,940 tokens
- 124 lines in 3 placescssdocs and examples1,463 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 285 | 37,454 | 283 | 7,689 | 20.53% |
| tsx | 155 | 31,768 | 266 | 9,551 | 30.06% |
| html | 70 | 1,277 | 3 | 49 | 3.84% |
| javascript | 6 | 228 | 2 | 22 | 9.65% |
| svelte | 87 | 3,223 | 0 | 0 | 0% |
| bash | 9 | 644 | 0 | 0 | 0% |
| python | 3 | 508 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| css | 1 | 49 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 604 | 86,992 | 694 | 19,014 | 21.86% |
| tsx | 422 | 71,657 | 618 | 20,543 | 28.67% |
| markdown | 156 | 19,725 | 93 | 3,230 | 16.38% |
| json | 109 | 4,523 | 93 | 1,913 | 42.29% |
| css | 20 | 2,482 | 26 | 981 | 39.52% |
| html | 112 | 2,225 | 14 | 232 | 10.43% |
| javascript | 11 | 407 | 3 | 64 | 15.72% |
| yaml | 18 | 269 | 2 | 20 | 7.43% |
| svelte | 138 | 4,647 | 0 | 0 | 0% |
| bash | 18 | 719 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 21, 2026 | #9 | 17,511 (+291) | 1,628 | 194,865 | 1,543 | 23.6% | 22.98% | E 39.9 | 3ad3818 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.