Source: https://seerepo.com/r/DouyinFE/semi-design/built
Markdown source: https://seerepo.com/r/DouyinFE/semi-design/built.md
Description: semi-design is a TypeScript repo built with React, Gatsby, react-router-dom, and Vite.

# What is semi-design built with?

semi-design is a TypeScript repo built with React, Gatsby, react-router-dom, and Vite. It makes its content with @mdx-js/react, gatsby-plugin-mdx, prismjs, and remark-gfm, validates its data with prop-types and async-validator, is tested with Cypress, enzyme, enzyme-to-json, @rstest/core, cypress-real-events, and 8 more, and uses MCP. It has 387,866 written lines, with 441 test files.

Read on November 13, 2026, at commit e3c6fc4.

Repository: https://github.com/DouyinFE/semi-design

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 74 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)
- **Gatsby**: 13 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 17 files
- **[Normalize.css](https://seerepo.com/uses/normalizecss)**: 1 file
- **typeface-inter**: 1 file

### Interface

- **[@floating-ui/dom](https://seerepo.com/uses/floating-ui-dom)**: 1 file
- **@visactor/react-vchart**: 1 file
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 1 file
- **[re-resizable](https://seerepo.com/uses/re-resizable)**: 1 file
- **[react-dnd](https://seerepo.com/uses/react-dnd)**: 1 file
- **[react-dnd-html5-backend](https://seerepo.com/uses/react-dnd-html5-backend)**: 1 file
- **[react-resizable](https://seerepo.com/uses/react-resizable)**: 1 file
- **react-sortable-hoc**: 1 file
- **[react-virtualized](https://seerepo.com/uses/react-virtualized)**: 1 file
- **[tiptap](https://seerepo.com/uses/tiptap)**: 1 file

## Support (/)

### Content

- **@mdx-js/react**: 1 file
- **gatsby-plugin-mdx**: 1 file
- **[prismjs](https://seerepo.com/uses/prismjs)**: 1 file

### Validation

- **[prop-types](https://seerepo.com/uses/prop-types)**: 5 files

### Testing

- **Cypress**: 3 files
- **enzyme**: 2 files
- **enzyme-to-json**: 2 files
- **@rstest/core**: 1 file
- **cypress-real-events**: 1 file
- **enzyme-adapter-react-16**: 1 file
- **jest-canvas-mock**: 1 file
- **jest-date-mock**: 1 file
- **jsdom**: 1 file
- **[Shopify](https://seerepo.com/uses/shopify)**: 1 file
- **sinon**: 1 file
- **Testing Library**: 1 file

### Tools

- **glob**: 1 file
- **mini-css-extract-plugin**: 1 file

### Other

- **react-intl**: 13 files
- **Lodash**: 11 files
- **Axios**: 2 files
- **chroma-js**: 2 files
- **copy-text-to-clipboard**: 2 files
- **crypto**: 2 files
- **jszip**: 2 files
- **sha1**: 2 files
- **date-fns**: 1 file
- **grapheme-splitter**: 1 file
- **immutability-helper**: 1 file
- **react-helmet**: 1 file
- **SemVer**: 1 file

## Backend (ecosystem/semi-mcp)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 10 files · [ecosystem/semi-mcp/src/server.ts, line 8](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/ecosystem/semi-mcp/src/server.ts#L8)

## Support (ecosystem/semi-mcp)

### Testing

- **@rstest/core**: 1 file

### Tools

- **Oxc**: 1 file

### Other

- **Axios**: 1 file
- **SemVer**: 1 file

## Frontend (packages/semi-animation-react)

### The base

- **[React](https://seerepo.com/uses/react)**: 15 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 1 file

## Support (packages/semi-animation-react)

### Validation

- **[prop-types](https://seerepo.com/uses/prop-types)**: 5 files

## Frontend (packages/semi-animation-styled)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

## Frontend (packages/semi-animation)

### Interface

- **bezier-easing**: 1 file

## Frontend (packages/semi-foundation)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 2 files

### Interface

- **[scroll-into-view-if-needed](https://seerepo.com/uses/scroll-into-view-if-needed)**: 3 files
- **lottie-web**: 1 file

## Support (packages/semi-foundation)

### Content

- **[prismjs](https://seerepo.com/uses/prismjs)**: 3 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Validation

- **async-validator**: 1 file

### Tools

- **Babel**: 1 file
- **esbuild**: 1 file
- **MDX**: 1 file

### Other

- **Lodash**: 62 files
- **date-fns**: 21 files
- **fast-copy**: 5 files
- **date-fns-tz**: 1 file
- **memoize-one**: 1 file

## Frontend (packages/semi-icons-lab)

### The base

- **[React](https://seerepo.com/uses/react)**: 85 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 1 file

## Frontend (packages/semi-icons)

### The base

- **[React](https://seerepo.com/uses/react)**: 524 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 1 file

## Frontend (packages/semi-illustrations)

### The base

- **[React](https://seerepo.com/uses/react)**: 16 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

## Frontend (packages/semi-json-viewer-core)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

## Support (packages/semi-json-viewer-core)

### Tools

- **esbuild**: 1 file

### Other

- **[jsonc-parser](https://seerepo.com/uses/jsonc-parser)**: 9 files

## Support (packages/semi-rspack)

### Tools

- **Webpack**: 8 files
- **Babel**: 1 file
- **enhanced-resolve**: 1 file

## Frontend (packages/semi-scss-compile)

### Styles

- **[Sass](https://seerepo.com/uses/sass)**: 1 file

## Support (packages/semi-scss-compile)

### Tools

- **arg**: 1 file

### Other

- **fs-extra**: 3 files
- **Lodash**: 2 files
- **fast-copy**: 1 file

## Frontend (packages/semi-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 679 files · [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 1 file

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 210 files
- **css**: 1 file

### Interface

- **[tiptap](https://seerepo.com/uses/tiptap)**: 14 files
- **[react-window](https://seerepo.com/uses/react-window)**: 10 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 4 files
- **[ProseMirror](https://seerepo.com/uses/prosemirror)**: 2 files
- **[react-resizable](https://seerepo.com/uses/react-resizable)**: 2 files
- **[@floating-ui/dom](https://seerepo.com/uses/floating-ui-dom)**: 1 file
- **[react-dnd](https://seerepo.com/uses/react-dnd)**: 1 file
- **[react-dnd-html5-backend](https://seerepo.com/uses/react-dnd-html5-backend)**: 1 file
- **[scroll-into-view-if-needed](https://seerepo.com/uses/scroll-into-view-if-needed)**: 1 file

## Support (packages/semi-ui)

### Validation

- **[prop-types](https://seerepo.com/uses/prop-types)**: 188 files
- **async-validator**: 1 file

### Testing

- **enzyme**: 154 files
- **Testing Library**: 38 files
- **sinon**: 22 files
- **jest-date-mock**: 13 files
- **@rstest/core**: 6 files
- **lottie-web**: 2 files
- **jsdom**: 1 file

### Tools

- **Storybook**: 21 files

### Other

- **Lodash**: 162 files
- **date-fns**: 94 files
- **copy-text-to-clipboard**: 6 files
- **fast-copy**: 6 files
- **grapheme-splitter**: 2 files
- **date-fns-tz**: 1 file

## Frontend (packages/semi-vite)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: 1 file

### Styles

- **[Sass](https://seerepo.com/uses/sass)**: 1 file

## Support (packages/semi-webpack)

### Tools

- **loader-utils**: 2 files
- **Babel**: 1 file
- **enhanced-resolve**: 1 file
- **Webpack**: 1 file

## Other repos with a similar stack

- [appsmithorg/appsmith](https://seerepo.com/r/appsmithorg/appsmith/built): React, MCP, react-router-dom, classnames, react-dnd, react-dnd-html5-backend, prismjs, scroll-into-view-if-needed, lottie-web, remark-gfm, Sass, react-window · [Compare](https://seerepo.com/compare/appsmithorg/appsmith/vs/DouyinFE/semi-design)
- [strapi/strapi](https://seerepo.com/r/strapi/strapi/built): React, MCP, react-router-dom, Vite, dnd-kit, react-dnd, react-dnd-html5-backend, prismjs, prop-types, react-window · [Compare](https://seerepo.com/compare/DouyinFE/semi-design/vs/strapi/strapi)
- [outline/outline](https://seerepo.com/r/outline/outline/built): React, MCP, react-router-dom, Vite, dnd-kit, scroll-into-view-if-needed, react-window, ProseMirror · [Compare](https://seerepo.com/compare/DouyinFE/semi-design/vs/outline/outline)
- [ToolJet/ToolJet](https://seerepo.com/r/ToolJet/ToolJet/built): React, react-router-dom, classnames, dnd-kit, react-dnd, react-dnd-html5-backend, remark-gfm, Sass · [Compare](https://seerepo.com/compare/DouyinFE/semi-design/vs/ToolJet/ToolJet)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, MCP, Vite, dnd-kit, react-resizable, scroll-into-view-if-needed, remark-gfm · [Compare](https://seerepo.com/compare/DouyinFE/semi-design/vs/supabase/supabase)
- [apache/superset](https://seerepo.com/r/apache/superset/built): React, MCP, classnames, re-resizable, prop-types, remark-gfm, react-window · [Compare](https://seerepo.com/compare/apache/superset/vs/DouyinFE/semi-design)

## Frequently asked questions

### What language is semi-design written in?

semi-design is written in TypeScript, with 387,866 written lines.

### What framework does semi-design use?

semi-design is built with React, Gatsby, react-router-dom, and Vite.

The proof: [in package.json](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/package.json)

### What services does semi-design use?

semi-design uses MCP.

The proof: [ecosystem/semi-mcp/src/server.ts, line 8](https://github.com/DouyinFE/semi-design/blob/e3c6fc48163e92dcb81df4619fa44ab3cf7525ea/ecosystem/semi-mcp/src/server.ts#L8)

### Does semi-design have tests?

Yes. semi-design has 441 test files and is tested with Cypress, enzyme, enzyme-to-json, @rstest/core, cypress-real-events, enzyme-adapter-react-16, jest-canvas-mock, jest-date-mock, jsdom, Shopify, sinon, Testing Library, and lottie-web.

### Which repos have a stack like semi-design's?

The ones that share most of its stack: appsmithorg/appsmith, strapi/strapi, and outline/outline.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
