Source: https://seerepo.com/r/dream-num/univer/built
Markdown source: https://seerepo.com/r/dream-num/univer/built.md
Description: univer is a TypeScript repo built with React and Vue. It is tested with Vitest, Testing Library, and jest-canvas-mock.

# What is univer built with?

univer is a TypeScript repo built with React and Vue. It is tested with Vitest, Testing Library, and jest-canvas-mock. It has 1,280,577 written lines, with 1,916 test files.

Read on November 4, 2026, at commit c13b042.

Repository: https://github.com/dream-num/univer

## Frontend (/)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (/)

### Testing

- **Vitest**: 1 file

## Frontend (common/debugger)

### The base

- **[React](https://seerepo.com/uses/react)**: 6 files
- **[Vue](https://seerepo.com/uses/vue)**: 1 file

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 1 file

## Support (common/debugger)

### Other

- **rxjs**: 2 files

## Frontend (common/shared)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (common/shared)

### Testing

- **Vitest**: 3 files

### Tools

- **tsdown**: 7 files
- **TypeScript**: 2 files

## Frontend (packages/action-recorder)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 2 files

## Support (packages/action-recorder)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 1 file

## Support (packages/core)

### Testing

- **Vitest**: 150 files

### Other

- **rxjs**: 30 files
- **rbush**: 2 files
- **Lodash**: 1 file

## Support (packages/data-validation)

### Testing

- **Vitest**: 4 files

### Other

- **rxjs**: 2 files

## Frontend (packages/design)

### The base

- **[React](https://seerepo.com/uses/react)**: 67 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 4 files

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 6 files
- **[sonner](https://seerepo.com/uses/sonner)**: 2 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file

### Icons

- **@univerjs/icons**: 24 files

## Support (packages/design)

### Testing

- **Vitest**: 61 files
- **Testing Library**: 56 files

## Frontend (packages/docs-drawing-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 4 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 2 files

## Support (packages/docs-drawing-ui)

### Testing

- **Vitest**: 22 files
- **Testing Library**: 2 files

### Other

- **rxjs**: 9 files

## Support (packages/docs-drawing)

### Testing

- **Vitest**: 7 files

## Support (packages/docs-find-replace)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 2 files

## Frontend (packages/docs-hyper-link-ui)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 3 files

## Support (packages/docs-hyper-link-ui)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 2 files

## Support (packages/docs-hyper-link)

### Testing

- **Vitest**: 2 files

## Frontend (packages/docs-thread-comment-ui)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 1 file

## Support (packages/docs-thread-comment-ui)

### Testing

- **Vitest**: 7 files

### Other

- **rxjs**: 4 files

## Support (packages/docs-thread-comment)

### Testing

- **Vitest**: 1 file

## Frontend (packages/docs-toc-ui)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (packages/docs-toc-ui)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 2 files

## Support (packages/docs-toc)

### Testing

- **Vitest**: 1 file

### Other

- **rxjs**: 1 file

## Frontend (packages/docs-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 34 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 13 files

## Support (packages/docs-ui)

### Testing

- **Vitest**: 117 files
- **jest-canvas-mock**: 1 file

### Other

- **rxjs**: 45 files

## Frontend (packages/drawing-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 12 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 11 files

## Support (packages/drawing-ui)

### Testing

- **Vitest**: 29 files

### Other

- **rxjs**: 13 files

## Support (packages/drawing)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 3 files
- **@noble/hashes**: 1 file

## Support (packages/engine-formula)

### Testing

- **Vitest**: 569 files

### Other

- **rxjs**: 9 files
- **decimal.js**: 1 file

## Frontend (packages/engine-render)

### The base

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

### Interface

- **[@floating-ui/dom](https://seerepo.com/uses/floating-ui-dom)**: 1 file

## Support (packages/engine-render)

### Testing

- **Vitest**: 111 files
- **jest-canvas-mock**: 1 file

### Tools

- **rollup-plugin-polyfill-node**: 1 file
- **tsdown**: 1 file

### Other

- **rxjs**: 13 files

## Frontend (packages/find-replace)

### The base

- **[React](https://seerepo.com/uses/react)**: 3 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 3 files

## Support (packages/find-replace)

### Testing

- **Vitest**: 8 files

### Other

- **rxjs**: 5 files

## Support (packages/network)

### Testing

- **Vitest**: 12 files

### Other

- **rxjs**: 11 files

## Support (packages/protocol)

### Testing

- **Vitest**: 1 file

### Other

- **@grpc/grpc-js**: 8 files
- **rxjs**: 8 files

## Support (packages/rpc-node)

### Other

- **rxjs**: 2 files

## Support (packages/rpc)

### Testing

- **Vitest**: 6 files

### Other

- **rxjs**: 3 files

## Frontend (packages/sheets-conditional-formatting-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 16 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 7 files

## Support (packages/sheets-conditional-formatting-ui)

### Testing

- **Vitest**: 14 files

### Other

- **rxjs**: 3 files

## Support (packages/sheets-conditional-formatting)

### Testing

- **Vitest**: 16 files

### Other

- **rxjs**: 4 files

## Frontend (packages/sheets-crosshair-highlight)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 1 file

## Support (packages/sheets-crosshair-highlight)

### Testing

- **Vitest**: 7 files

### Other

- **rxjs**: 4 files

## Frontend (packages/sheets-data-validation-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 8 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 5 files

## Support (packages/sheets-data-validation-ui)

### Testing

- **Vitest**: 19 files

### Other

- **rxjs**: 9 files

## Support (packages/sheets-data-validation)

### Testing

- **Vitest**: 14 files

### Other

- **rxjs**: 3 files

## Frontend (packages/sheets-drawing-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 5 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Support (packages/sheets-drawing-ui)

### Testing

- **Vitest**: 30 files

### Other

- **rxjs**: 8 files

## Support (packages/sheets-drawing)

### Testing

- **Vitest**: 9 files

## Frontend (packages/sheets-filter-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 6 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 7 files

## Support (packages/sheets-filter-ui)

### Testing

- **Vitest**: 6 files

### Other

- **rxjs**: 6 files

## Support (packages/sheets-filter)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 3 files

## Support (packages/sheets-find-replace)

### Testing

- **Vitest**: 6 files

### Other

- **rxjs**: 2 files

## Frontend (packages/sheets-formula-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 34 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 7 files

## Support (packages/sheets-formula-ui)

### Testing

- **Vitest**: 37 files

### Other

- **rxjs**: 10 files

## Support (packages/sheets-formula)

### Testing

- **Vitest**: 27 files

### Other

- **rxjs**: 2 files

## Frontend (packages/sheets-hyper-link-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 3 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 3 files

## Support (packages/sheets-hyper-link-ui)

### Testing

- **Vitest**: 15 files

### Other

- **rxjs**: 5 files

## Support (packages/sheets-hyper-link)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 1 file

## Frontend (packages/sheets-note-ui)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 1 file

## Support (packages/sheets-note-ui)

### Testing

- **Vitest**: 4 files

### Other

- **rxjs**: 5 files

## Support (packages/sheets-note)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 1 file

## Frontend (packages/sheets-numfmt-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 12 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 2 files

## Support (packages/sheets-numfmt-ui)

### Testing

- **Vitest**: 11 files

### Other

- **rxjs**: 5 files

## Support (packages/sheets-numfmt)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 1 file

## Frontend (packages/sheets-sort-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 4 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 5 files

## Support (packages/sheets-sort-ui)

### Testing

- **Vitest**: 3 files

### Other

- **rxjs**: 3 files

## Support (packages/sheets-sort)

### Testing

- **Vitest**: 3 files

## Frontend (packages/sheets-table-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 10 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 9 files

## Support (packages/sheets-table-ui)

### Testing

- **Vitest**: 16 files

### Other

- **rxjs**: 6 files

## Support (packages/sheets-table)

### Testing

- **Vitest**: 25 files

### Other

- **rxjs**: 2 files

## Frontend (packages/sheets-thread-comment-ui)

### The base

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

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 2 files

## Support (packages/sheets-thread-comment-ui)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 8 files

## Support (packages/sheets-thread-comment)

### Testing

- **Vitest**: 8 files

### Other

- **rxjs**: 1 file

## Frontend (packages/sheets-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 43 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 21 files

## Support (packages/sheets-ui)

### Testing

- **Vitest**: 138 files

### Other

- **rxjs**: 77 files

## Support (packages/sheets)

### Testing

- **Vitest**: 115 files

### Other

- **rxjs**: 19 files

## Frontend (packages/thread-comment-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 5 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 3 files

## Support (packages/thread-comment-ui)

### Testing

- **Vitest**: 10 files

### Other

- **rxjs**: 4 files

## Support (packages/thread-comment)

### Testing

- **Vitest**: 5 files

### Other

- **rxjs**: 1 file

## Frontend (packages/ui-adapter-vue3)

### The base

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

## Frontend (packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 60 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Icons

- **@univerjs/icons**: 19 files

## Support (packages/ui)

### Testing

- **Vitest**: 92 files
- **Testing Library**: 36 files

### Other

- **rxjs**: 46 files

## Support (packages/watermark)

### Testing

- **Vitest**: 3 files

### Other

- **rxjs**: 1 file

## Other repos with a similar stack

- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/Significant-Gravitas/AutoGPT)
- [farion1231/cc-switch](https://seerepo.com/r/farion1231/cc-switch/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/farion1231/cc-switch)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/shadcn-ui/ui)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/supabase/supabase)
- [OpenCut-app/OpenCut](https://seerepo.com/r/OpenCut-app/OpenCut/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/OpenCut-app/OpenCut)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): React, Tailwind CSS, class-variance-authority, Radix UI, sonner, cmdk · [Compare](https://seerepo.com/compare/dream-num/univer/vs/infiniflow/ragflow)

## Frequently asked questions

### What language is univer written in?

univer is written in TypeScript, with 1,280,577 written lines.

### What framework does univer use?

univer is built with React and Vue.

### Does univer have tests?

Yes. univer has 1,916 test files and is tested with Vitest, Testing Library, and jest-canvas-mock.

### Which repos have a stack like univer's?

The ones that share most of its stack: Significant-Gravitas/AutoGPT, farion1231/cc-switch, and shadcn-ui/ui.

## 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.
