Source: https://seerepo.com/r/CapSoftware/Cap/built
Markdown source: https://seerepo.com/r/CapSoftware/Cap/built.md
Description: Cap is a Rust repo built with axum, Tokio, objc2-app-kit, objc2-foundation, Vite, and 5 more. It stores its data in MySQL and reaches it with Drizzle.

# What is Cap built with?

Cap is a Rust repo built with axum, Tokio, objc2-app-kit, objc2-foundation, Vite, and 5 more. It stores its data in MySQL, reaches it with Drizzle, signs people in with keyring, jose, next-auth, and @aws-sdk/credential-providers, takes payments with Stripe, sends email with Resend, stores files in AWS S3, uses AI through ai, Anthropic, and OpenAI, watches its errors with Sentry, connects to GitHub, makes its content with image, resvg, expo-image-picker, expo-document-picker, react-markdown, and 3 more, validates its data with schemars, valibot, Zod, and @hookform/resolvers, is tested with Vitest, @playwright/test, jsdom, and react-test-renderer, deploys with tracing, tracing-subscriber, log, tracing-appender, @effect/opentelemetry, and 1 more, and uses expo-secure-store, Redis, @aws-sdk/s3-request-presigner, and MCP. It has 2,208 files and 1,176,626 written lines, with 687 test files.

Read on November 4, 2026, at commit 81ef0e4.

Repository: https://github.com/CapSoftware/Cap

## Frontend (/)

### Interface

- **metal**: 2 files
- **softbuffer**: 2 files
- **winit**: 2 files
- **ash**: 1 file

## Backend (/)

### Sign-in

- **keyring**: 1 file

## Support (/)

### The base

- **[axum](https://seerepo.com/uses/axum)**
- **[Tokio](https://seerepo.com/uses/tokio)**: 81 files
- **objc2-app-kit**: 1 file
- **objc2-foundation**: 1 file

### Content

- **image**: 14 files
- **resvg**: 3 files

### Validation

- **schemars**

### Deploy

- **tracing**: 129 files
- **tracing-subscriber**: 5 files
- **log**: 4 files
- **tracing-appender**: 3 files

### Tools

- **proc-macro2**
- **quote**
- **clap**: 20 files
- **clap_complete**: 1 file
- **TypeScript**: 1 file

### Other

- **bitflags**
- **crossbeam-channel**
- **dispatch2**
- **flate2**
- **futures-util**
- **miniz_oxide**
- **nix**
- **objc2-core-foundation**
- **objc2-core-graphics**
- **rand**
- **regex**
- **scopeguard**
- **semver**
- **smol_str**
- **stable_deref_trait**
- **time**
- **windows-sys**
- **serde_json**: 93 files
- **serde**: 87 files
- **tempfile**: 78 files
- **anyhow**: 58 files
- **thiserror**: 55 files
- **windows**: 43 files
- **futures**: 37 files
- **libc**: 19 files
- **bytemuck**: 18 files
- **uuid**: 16 files
- **reqwest**: 12 files
- **dirs**: 7 files
- **chrono**: 6 files
- **url**: 6 files
- **either**: 5 files
- **sha2**: 5 files
- **base64**: 4 files
- **strum**: 3 files
- **blake3**: 2 files
- **libloading**: 2 files
- **objc2**: 2 files
- **zbus**: 2 files
- **byteorder**: 1 file
- **crc32fast**: 1 file
- **directories**: 1 file
- **imgref**: 1 file
- **indexmap**: 1 file
- **rayon**: 1 file
- **rgb**: 1 file
- **toml**: 1 file

## Frontend (apps/chrome-extension)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)
- **[React](https://seerepo.com/uses/react)**: 22 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 2 files

### Icons

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

## Support (apps/chrome-extension)

### Testing

- **Vitest**: 17 files
- **@playwright/test**: 4 files
- **jsdom**: 1 file

### Other

- **clsx**: 9 files

## Frontend (apps/desktop-gpui)

### Interface

- **global-hotkey**: 4 files
- **rfd**: 4 files
- **objc2-quartz-core**: 1 file
- **tray-icon**: 1 file

## Support (apps/desktop-gpui)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 27 files
- **objc2-app-kit**: 4 files
- **objc2-foundation**: 4 files

### Content

- **image**: 35 files
- **resvg**: 2 files

### Deploy

- **tracing**: 81 files
- **tracing-appender**: 1 file
- **tracing-subscriber**: 1 file

### Other

- **objc2-core-graphics**
- **serde_json**: 47 files
- **anyhow**: 17 files
- **futures-util**: 16 files
- **serde**: 16 files
- **windows-sys**: 15 files
- **tempfile**: 14 files
- **chrono**: 11 files
- **reqwest**: 10 files
- **libc**: 9 files
- **objc2**: 8 files
- **raw-window-handle**: 6 files
- **dirs**: 4 files
- **base64**: 3 files
- **block2**: 3 files
- **rodio**: 3 files
- **semver**: 3 files
- **crc32fast**: 1 file
- **flate2**: 1 file
- **minisign-verify**: 1 file
- **sha2**: 1 file
- **sys-locale**: 1 file
- **toml**: 1 file
- **unicode-segmentation**: 1 file

## Backend (apps/discord-bot)

### Sign-in

- **jose**: 1 file

### Services

- **[GitHub](https://seerepo.com/uses/github)**: 1 file · [apps/discord-bot/src/index.ts, line 6](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/discord-bot/src/index.ts#L6)

## Support (apps/discord-bot)

### The base

- **Hono**: 1 file

### Validation

- **valibot**: 1 file

### Testing

- **Vitest**: 3 files

### Other

- **buffer**: 1 file
- **tweetnacl**: 1 file

## Support (apps/media-server)

### The base

- **Hono**: 7 files

### Validation

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

## Frontend (apps/mobile)

### The base

- **react-native**: 33 files
- **[React](https://seerepo.com/uses/react)**: 27 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)
- **Expo**: 18 files · [in apps/mobile/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/mobile/package.json)

### Interface

- **react-native-reanimated**: 11 files
- **expo-image**: 7 files
- **react-native-safe-area-context**: 5 files
- **react-native-svg**: 5 files
- **expo-glass-effect**: 3 files
- **react-native-gesture-handler**: 2 files
- **expo-camera**: 1 file
- **Shopify**: 1 file

## Backend (apps/mobile)

### Data

- **expo-secure-store**: 1 file

## Support (apps/mobile)

### Content

- **expo-image-picker**: 3 files
- **expo-document-picker**: 1 file

### Testing

- **Vitest**: 35 files
- **react-test-renderer**: 19 files

### Other

- **expo-haptics**: 5 files
- **expo-clipboard**: 3 files
- **expo-file-system**: 3 files
- **expo-constants**: 2 files
- **expo-web-browser**: 2 files
- **expo-device**: 1 file
- **expo-linking**: 1 file

## Frontend (apps/status)

### The base

- **[React](https://seerepo.com/uses/react)**: 3 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 2 files · [in packages/web-backend/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/web-backend/package.json)

## Backend (apps/status)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [apps/status/lib/store.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/status/lib/store.ts#L1)

## Frontend (apps/web)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: 438 files · [in packages/web-backend/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/web-backend/package.json)
- **[React](https://seerepo.com/uses/react)**: 393 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

### Styles

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

### Interface

- **sonner**: 106 files
- **motion**: 53 files
- **Framer**: 34 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 12 files
- **@uidotdev/usehooks**: 5 files
- **React Hook Form**: 4 files
- **canvas-confetti**: 1 file
- **react-tweet**: 1 file
- **recharts**: 1 file

### Icons

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

## Backend (apps/web)

### Data

- **@aws-sdk/s3-request-presigner**: 1 file

### Data access

- **Drizzle**: 221 files

### Sign-in

- **next-auth**: 15 files

### AI

- **ai**: 6 files

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 8 files · [apps/web/app/(org)/login/form.tsx, line 10](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/app/(org)/login/form.tsx#L10)
- **[Stripe](https://seerepo.com/uses/stripe)**: 4 files · [apps/web/components/pages/checkout/CheckoutForm.tsx, line 10](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/components/pages/checkout/CheckoutForm.tsx#L10)
- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/web/lib/mcp-card-client.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/lib/mcp-card-client.ts#L1)
- **[Anthropic](https://seerepo.com/uses/anthropic)**: 1 file · [apps/web/lib/ai/provider.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/lib/ai/provider.ts#L1)
- **[GitHub](https://seerepo.com/uses/github)**: 1 file · [apps/discord-bot/src/index.ts, line 6](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/discord-bot/src/index.ts#L6)
- **[OpenAI](https://seerepo.com/uses/openai)**: 1 file · [apps/web/lib/ai/provider.ts, line 3](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/lib/ai/provider.ts#L3)

## Support (apps/web)

### The base

- **Hono**: 20 files

### Content

- **react-markdown**: 7 files
- **remark-gfm**: 5 files
- **[dompurify](https://seerepo.com/uses/dompurify)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 35 files
- **@hookform/resolvers**: 4 files

### Testing

- **Vitest**: 400 files
- **jsdom**: 4 files

### Deploy

- **@effect/opentelemetry**: 1 file

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **Effect**: 132 files
- **clsx**: 94 files
- **TanStack**: 55 files
- **server-only**: 33 files
- **date-fns**: 7 files
- **@aws-sdk/client-cloudfront**: 4 files
- **tldts**: 2 files
- **.ENV**: 1 file
- **moment**: 1 file
- **OpenTelemetry**: 1 file
- **uuid**: 1 file

## Frontend (packages/config)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: 2 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

## Support (packages/config)

### Tools

- **@vitejs/plugin-react**: 1 file

## Frontend (packages/database)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: [in packages/web-backend/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/web-backend/package.json)
- **[React](https://seerepo.com/uses/react)**: 2 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

## Backend (packages/database)

### Data

- **[MySQL](https://seerepo.com/uses/mysql)**: 4 files · [packages/database/loops/health.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/database/loops/health.ts#L1)

### Data access

- **Drizzle**: 14 files

### Sign-in

- **next-auth**: 3 files

### Services

- **[Resend](https://seerepo.com/uses/resend)**: 1 file · [packages/database/emails/config.ts, line 3](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/database/emails/config.ts#L3)

## Support (packages/database)

### Content

- **@react-email/components**: 14 files

### Validation

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

### Other

- **nanoid**: 1 file

## Support (packages/env)

### Validation

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

## Support (packages/recorder-core)

### Testing

- **Vitest**: 8 files

## Frontend (packages/sdk-embed)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

## Frontend (packages/sdk-recorder)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

## Frontend (packages/ui)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)
- **[React](https://seerepo.com/uses/react)**: 15 files · [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

### 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)**: 9 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **React Hook Form**: 1 file

### Icons

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

## Support (packages/ui)

### Other

- **clsx**: 1 file

## Frontend (packages/utils)

### Styles

- **tailwind-merge**: 1 file

## Backend (packages/utils)

### Services

- **[Stripe](https://seerepo.com/uses/stripe)**: 1 file · [apps/web/components/pages/checkout/CheckoutForm.tsx, line 10](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/components/pages/checkout/CheckoutForm.tsx#L10)

## Support (packages/utils)

### Other

- **clsx**: 1 file

## Support (packages/web-api-contract-effect)

### Other

- **Effect**: 1 file

## Support (packages/web-api-contract)

### Validation

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

## Frontend (packages/web-backend)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: [in packages/web-backend/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/web-backend/package.json)
- **[React](https://seerepo.com/uses/react)**: [in apps/chrome-extension/package.json](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/chrome-extension/package.json)

## Backend (packages/web-backend)

### Data

- **@aws-sdk/s3-request-presigner**: 1 file

### Data access

- **Drizzle**: 16 files

### Sign-in

- **@aws-sdk/credential-providers**: 1 file

### Services

- **[AWS S3](https://seerepo.com/uses/aws-s3)**: 1 file · [packages/web-backend/src/S3Buckets/S3BucketClientProvider.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/web-backend/src/S3Buckets/S3BucketClientProvider.ts#L1)

## Support (packages/web-backend)

### Deploy

- **Vercel**: 1 file

### Other

- **Effect**: 38 files
- **@smithy/types**: 3 files

## Support (packages/web-domain)

### Other

- **Effect**: 19 files

## Other repos with a similar stack

- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Next.js, Redis, Sentry, Stripe, Anthropic, OpenAI, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, jose, Zod, sonner, motion, Framer, React Hook Form, canvas-confetti, recharts, ai, react-markdown, remark-gfm, @hookform/resolvers, cmdk · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/Significant-Gravitas/AutoGPT)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Vite, React, Next.js, Sentry, Stripe, MCP, OpenAI, Tailwind CSS, class-variance-authority, Radix UI, Lucide, Zod, sonner, motion, @uidotdev/usehooks, React Hook Form, recharts, ai, react-markdown, remark-gfm, @hookform/resolvers, cmdk, @aws-sdk/credential-providers, Vercel · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/supabase/supabase)
- [farion1231/cc-switch](https://seerepo.com/r/farion1231/cc-switch/built): axum, Tokio, objc2-app-kit, objc2-foundation, Vite, React, log, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide, Zod, sonner, Framer, React Hook Form, recharts, @hookform/resolvers, cmdk · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/farion1231/cc-switch)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): Vite, React, Next.js, MCP, Tailwind CSS, class-variance-authority, Radix UI, Lucide, Zod, sonner, motion, React Hook Form, recharts, ai, cmdk, Vercel · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/shadcn-ui/ui)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): Vite, React, Redis, MCP, OpenAI, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide, Framer, react-markdown, remark-gfm, dompurify, cmdk · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/langflow-ai/langflow)
- [NousResearch/hermes-agent](https://seerepo.com/r/NousResearch/hermes-agent/built): Tokio, Vite, React, tracing, tracing-subscriber, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide, Zod, motion, dompurify, cmdk · [Compare](https://seerepo.com/compare/CapSoftware/Cap/vs/NousResearch/hermes-agent)

## Frequently asked questions

### What language is Cap written in?

Cap is written in Rust: 2,208 files and 1,176,626 written lines.

### What framework does Cap use?

Cap is built with axum, Tokio, objc2-app-kit, objc2-foundation, Vite, React, Hono, react-native, Expo, and Next.js.

### What database does Cap use?

Cap stores its data in MySQL and reaches it with Drizzle.

The proof: [packages/database/loops/health.ts, line 1](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/database/loops/health.ts#L1)

### What does Cap sign people in with?

Cap signs people in with keyring, jose, next-auth, and @aws-sdk/credential-providers.

### What does Cap take payments with?

Cap takes payments with Stripe.

The proof: [apps/web/components/pages/checkout/CheckoutForm.tsx, line 10](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/apps/web/components/pages/checkout/CheckoutForm.tsx#L10)

### Does Cap use AI?

Yes. Cap uses AI through ai, Anthropic, and OpenAI.

### What services does Cap use?

Cap sends email with Resend, stores files in AWS S3, watches its errors with Sentry, connects to GitHub, and uses expo-secure-store, Redis, @aws-sdk/s3-request-presigner, and MCP.

The proof: [packages/database/emails/config.ts, line 3](https://github.com/CapSoftware/Cap/blob/81ef0e4bcd950cd7f9cad098e0bcfff5cc1eee8e/packages/database/emails/config.ts#L3)

### Does Cap have tests?

Yes. Cap has 687 test files and is tested with Vitest, @playwright/test, jsdom, and react-test-renderer.

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

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

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