Source: https://seerepo.com/r/pastelsky/bundlephobia/built
Markdown source: https://seerepo.com/r/pastelsky/bundlephobia/built.md
Description: bundlephobia is a TypeScript repo built with React, Next.js, Fastify, Koa, Vite, and 1 more. It uses AI through natural and connects to GitHub.

# What is bundlephobia built with?

bundlephobia is a TypeScript repo built with React, Next.js, Fastify, Koa, Vite, and 1 more. It uses AI through natural, connects to GitHub, makes its content with dompurify, remark, and strip-markdown, validates its data with Zod and validate-npm-package-name, is tested with @playwright/test, deploys with prom-client and winston, and uses lru-cache, Firebase, and MCP. It has 50,445 written lines, with 69 test files.

Read on November 14, 2026, at commit 2a7d5b6.

Repository: https://github.com/pastelsky/bundlephobia

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 60 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 21 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

### Styles

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

### Interface

- **[Base UI](https://seerepo.com/uses/base-ui)**: 6 files
- **Anime.js**: 3 files
- **Contentful**: 1 file
- **d3-path**: 1 file
- **[d3-scale](https://seerepo.com/uses/d3-scale)**: 1 file
- **[downshift](https://seerepo.com/uses/downshift)**: 1 file
- **fabric**: 1 file
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 1 file

## Backend (/)

### The base

- **[Fastify](https://seerepo.com/uses/fastify)**: [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)
- **[Koa](https://seerepo.com/uses/koa)**: 24 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

### Data

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

### AI

- **natural**: 1 file

### Services

- **[Firebase](https://seerepo.com/uses/firebase)**: 2 files · [utils/firebase.utils.ts, line 3](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/utils/firebase.utils.ts#L3)
- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [server/clients/remote-mcp.client.ts, line 1](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/server/clients/remote-mcp.client.ts#L1)

## Support (/)

### Content

- **[dompurify](https://seerepo.com/uses/dompurify)**: 1 file
- **[remark](https://seerepo.com/uses/remark)**: 1 file
- **strip-markdown**: 1 file

### Validation

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

### Testing

- **@playwright/test**: 9 files

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 4 files
- **[winston](https://seerepo.com/uses/winston)**: 1 file

### Tools

- **esbuild-register**: 2 files
- **@contentful/rich-text-types**: 1 file
- **npm-package-arg**: 1 file
- **pacote**: 1 file
- **schema-dts**: 1 file

### Other

- **debug**: 8 files
- **Axios**: 7 files
- **performance-now**: 6 files
- **SemVer**: 5 files
- **date-fns**: 4 files
- **dotenv-defaults**: 4 files
- **query-string**: 3 files
- **ts-invariant**: 3 files
- **[D3](https://seerepo.com/uses/d3)**: 2 files
- **got**: 2 files
- **truncate**: 2 files
- **workerpool**: 2 files
- **@amplitude/analytics-browser**: 1 file
- **debounce**: 1 file
- **execa**: 1 file
- **git-url-parse**: 1 file
- **koa-proxies**: 1 file
- **koa-send**: 1 file
- **koa-static**: 1 file
- **Lodash**: 1 file
- **node-fetch**: 1 file
- **npm-registry-fetch**: 1 file
- **p-queue**: 1 file
- **safe-stable-stringify**: 1 file
- **unfetch**: 1 file

## Backend (build-service)

### The base

- **[Fastify](https://seerepo.com/uses/fastify)**: 1 file · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

## Support (build-service)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 3 files

### Deploy

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

### Tools

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

### Other

- **dotenv-defaults**: 1 file
- **safe-stable-stringify**: 1 file
- **truncate**: 1 file

## Backend (cache-service)

### The base

- **[Fastify](https://seerepo.com/uses/fastify)**: 2 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

### Data

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

### Services

- **[Firebase](https://seerepo.com/uses/firebase)**: 2 files · [utils/firebase.utils.ts, line 3](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/utils/firebase.utils.ts#L3)

## Support (cache-service)

### Other

- **debug**: 1 file
- **dotenv-defaults**: 1 file
- **SemVer**: 1 file

## Backend (installation-service)

### The base

- **[Fastify](https://seerepo.com/uses/fastify)**: 2 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

## Support (installation-service)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 3 files

### Tools

- **npm-package-arg**: 1 file
- **pacote**: 1 file

### Other

- **dotenv-defaults**: 1 file
- **p-queue**: 1 file
- **SemVer**: 1 file

## Support (jvm-package-build-stats)

### Tools

- **asm**
- **[JetBrains](https://seerepo.com/uses/jetbrains)**

### Other

- **org.jetbrains.kotlinx:kotlinx-serialization-json**: 4 files
- **info.picocli:picocli**: 1 file

## Backend (packages/library-discovery)

### Services

- **[GitHub](https://seerepo.com/uses/github)**: 1 file · [packages/library-discovery/cli.mjs, line 5](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/packages/library-discovery/cli.mjs#L5)

## Support (packages/library-discovery)

### Validation

- **[validate-npm-package-name](https://seerepo.com/uses/validate-npm-package-name)**: 2 files
- **[Zod](https://seerepo.com/uses/zod)**: 1 file

### Tools

- **npm-package-arg**: 1 file

### Other

- **p-throttle**: 1 file

## Support (packages/service-contracts)

### Validation

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

## Frontend (stats-app)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in stats-app/package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/stats-app/package.json)
- **[React](https://seerepo.com/uses/react)**: 5 files · [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 3 files

### Styles

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

### Interface

- **@tremor/react**: 11 files

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 7 files

## Support (stats-app)

### Validation

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

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 4 files

## Other repos with a similar stack

- [strapi/strapi](https://seerepo.com/r/strapi/strapi/built): React, Koa, MCP, Vite, react-router-dom, react-dropzone, dompurify, Zod, winston, Tailwind CSS · [Compare](https://seerepo.com/compare/pastelsky/bundlephobia/vs/strapi/strapi)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, lru-cache, MCP, Vite, react-dropzone, dompurify, Zod, winston, Tailwind CSS, Lucide · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/pastelsky/bundlephobia)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): React, Next.js, lru-cache, classnames, Base UI, dompurify, Zod, winston, Tailwind CSS, Lucide · [Compare](https://seerepo.com/compare/calcom/cal.diy/vs/pastelsky/bundlephobia)
- [LibreChat-AI/LibreChat](https://seerepo.com/r/LibreChat-AI/LibreChat/built): React, Firebase, MCP, Vite, dompurify, Zod, prom-client, winston, Tailwind CSS, Lucide · [Compare](https://seerepo.com/compare/LibreChat-AI/LibreChat/vs/pastelsky/bundlephobia)
- [ToolJet/ToolJet](https://seerepo.com/r/ToolJet/ToolJet/built): React, react-router-dom, classnames, Base UI, react-dropzone, dompurify, prom-client, winston, Tailwind CSS, Lucide · [Compare](https://seerepo.com/compare/pastelsky/bundlephobia/vs/ToolJet/ToolJet)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): React, Next.js, lru-cache, MCP, Vite, Base UI, Zod, Tailwind CSS, Lucide · [Compare](https://seerepo.com/compare/pastelsky/bundlephobia/vs/shadcn-ui/ui)

## Frequently asked questions

### What language is bundlephobia written in?

bundlephobia is written in TypeScript, with 50,445 written lines.

### What framework does bundlephobia use?

bundlephobia is built with React, Next.js, Fastify, Koa, Vite, and react-router-dom.

The proof: [in package.json](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/package.json)

### Does bundlephobia use AI?

Yes. bundlephobia uses AI through natural.

### What services does bundlephobia use?

bundlephobia connects to GitHub and uses lru-cache, Firebase, and MCP.

The proof: [packages/library-discovery/cli.mjs, line 5](https://github.com/pastelsky/bundlephobia/blob/2a7d5b6d69e8036509c5a507a1ee39f147230233/packages/library-discovery/cli.mjs#L5)

### Does bundlephobia have tests?

Yes. bundlephobia has 69 test files and is tested with @playwright/test.

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

The ones that share most of its stack: strapi/strapi, CherryHQ/cherry-studio, and calcom/cal.diy.

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