Source: https://seerepo.com/r/convex/convex-backend/built
Markdown source: https://seerepo.com/r/convex/convex-backend/built.md
Description: convex-backend is a Rust repo built with axum, axum-extra, Tokio, Deno, utoipa-axum, and 5 more.

# What is convex-backend built with?

convex-backend is a Rust repo built with axum, axum-extra, Tokio, Deno, utoipa-axum, and 5 more. It stores its data in MySQL, Postgres, iceberg, moka, lru, and 1 more, signs people in with openidconnect, oauth2, tower-cookies, openid-client, and jose, takes payments with Stripe, stores files in AWS S3, uses AI through ai, LangChain, and tiktoken, measures its use with PostHog, watches its errors with Sentry, makes its content with csv-core and parquet, validates its data with Zod, zod-to-json-schema, yup, zod-error, and arktype, is tested with pretty_assertions, proptest, proptest-derive, shuttle, Jest, and 4 more, deploys with metrics, sentry-tracing, tracing, prometheus, tracing-appender, and 3 more, and uses aws-sdk-s3, mysql_async, postgres-protocol, rusqlite, tokio-postgres, and 9 more. It has 613,092 written lines, with 42 test files.

Read on November 10, 2026, at commit b9f41c0.

Repository: https://github.com/convex/convex-backend

## Backend (/)

### The base

- **[axum](https://seerepo.com/uses/axum)**: 35 files
- **[axum-extra](https://seerepo.com/uses/axum-extra)**: 5 files

### Data

- **[aws-sdk-s3](https://seerepo.com/uses/aws-sdk-s3)**
- **mysql_async**
- **postgres-protocol**
- **[rusqlite](https://seerepo.com/uses/rusqlite)**
- **[tokio-postgres](https://seerepo.com/uses/tokio-postgres)**
- **tokio-postgres-rustls**
- **[MySQL](https://seerepo.com/uses/mysql)**: 17 files · [crates/mysql/src/connection.rs, line 71](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/mysql/src/connection.rs#L71)
- **[Postgres](https://seerepo.com/uses/postgres)**: 6 files · [crates/postgres/src/lib.rs, line 124](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/postgres/src/lib.rs#L124)
- **iceberg**: 4 files
- **[moka](https://seerepo.com/uses/moka)**: 4 files
- **[lru](https://seerepo.com/uses/lru)**: 3 files
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [crates/sqlite/src/lib.rs, line 71](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/sqlite/src/lib.rs#L71)
- **aws-sdk-firehose**: 1 file
- **aws-sdk-rds**: 1 file
- **hashlink**: 1 file
- **iceberg-storage-opendal**: 1 file
- **[rocksdb](https://seerepo.com/uses/rocksdb)**: 1 file

### Sign-in

- **openidconnect**: 5 files
- **[oauth2](https://seerepo.com/uses/oauth2)**: 1 file
- **tower-cookies**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 24 files · [crates/common/src/sentry.rs, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/common/src/sentry.rs#L5)
- **[AWS S3](https://seerepo.com/uses/aws-s3)**: 5 files · [crates/aws_s3/src/lib.rs, line 6](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/aws_s3/src/lib.rs#L6)

## Support (/)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 128 files
- **Deno**: 40 files
- **utoipa-axum**: 11 files
- **[tower](https://seerepo.com/uses/tower)**: 6 files

### Content

- **csv-core**: 1 file
- **[parquet](https://seerepo.com/uses/parquet)**: 1 file

### Testing

- **pretty_assertions**
- **proptest**
- **proptest-derive**
- **shuttle**

### Deploy

- **[metrics](https://seerepo.com/uses/metrics)**
- **sentry-tracing**
- **[tracing](https://seerepo.com/uses/tracing)**: 149 files
- **[prometheus](https://seerepo.com/uses/prometheus)**: 23 files
- **[tracing-appender](https://seerepo.com/uses/tracing-appender)**: 1 file
- **[tracing-subscriber](https://seerepo.com/uses/tracing-subscriber)**: 1 file
- **tracy-client**: 1 file

### Tools

- **derive_more**: 35 files
- **utoipa**: 28 files
- **clap**: 10 files
- **paste**: 2 files
- **jemalloc_pprof**: 1 file
- **memory-stats**: 1 file
- **quote**: 1 file
- **syn**: 1 file
- **tonic-prost-build**: 1 file

### Other

- **common**
- **errors**
- **http_client**
- **phf**
- **search**
- **tonic-prost**
- **anyhow**: 597 files
- **serde**: 214 files
- **serde_json**: 158 files
- **futures**: 135 files
- **fastrace**: 118 files
- **async-trait**: 74 files
- **parking_lot**: 63 files
- **bytes**: 46 files
- **http**: 42 files
- **rand**: 40 files
- **strum**: 39 files
- **itertools**: 38 files
- **thiserror**: 33 files
- **base64**: 29 files
- **imbl**: 24 files
- **semver**: 24 files
- **uuid**: 24 files
- **reqwest**: 22 files
- **tokio-stream**: 19 files
- **url**: 18 files
- **maplit**: 16 files
- **tantivy**: 16 files
- **headers**: 15 files
- **indexmap**: 12 files
- **serde_bytes**: 12 files
- **aws-lc-rs**: 11 files
- **chrono**: 11 files
- **rand_chacha**: 11 files
- **humansize**: 10 files
- **tokio-util**: 10 files
- **tonic**: 10 files
- **regex**: 9 files
- **tempfile**: 8 files
- **const_format**: 7 files
- **governor**: 7 files
- **async-broadcast**: 6 files
- **async-recursion**: 6 files
- **compact_str**: 6 files
- **mime**: 6 files
- **pin-project**: 6 files
- **prost**: 6 files
- **aws-config**: 5 files
- **byteorder**: 5 files
- **flexbuffers**: 5 files
- **slab**: 5 files
- **sourcemap**: 5 files
- **thousands**: 5 files
- **const-oid**: 4 files
- **spki**: 4 files
- **aws-credential-types**: 3 files
- **bytesize**: 3 files
- **enum-iterator**: 3 files
- **http-body-util**: 3 files
- **Hyper**: 3 files
- **hyper-util**: 3 files
- **pkcs8**: 3 files
- **saffron**: 3 files
- **scopeguard**: 3 files
- **sha2**: 3 files
- **ahash**: 2 files
- **atomic_refcell**: 2 files
- **aws-types**: 2 files
- **bitvec**: 2 files
- **either**: 2 files
- **fnv**: 2 files
- **futures-util**: 2 files
- **memchr**: 2 files
- **prost-reflect**: 2 files
- **prost-types**: 2 files
- **rustls**: 2 files
- **smallvec**: 2 files
- **tokio-tungstenite**: 2 files
- **tower-http**: 2 files
- **tungstenite**: 2 files
- **arc-swap**: 1 file
- **arrow-array**: 1 file
- **async_zip**: 1 file
- **aws-smithy-http**: 1 file
- **aws-smithy-runtime**: 1 file
- **aws-smithy-types-convert**: 1 file
- **backoff**: 1 file
- **colored**: 1 file
- **crossbeam-channel**: 1 file
- **ctrlc**: 1 file
- **dashmap**: 1 file
- **data-url**: 1 file
- **deno_core_icudata**: 1 file
- **dotenvy**: 1 file
- **encoding_rs**: 1 file
- **event-listener**: 1 file
- **fastrand**: 1 file
- **flate2**: 1 file
- **hdrhistogram**: 1 file
- **home**: 1 file
- **libc**: 1 file
- **lz4_flex**: 1 file
- **multer**: 1 file
- **once_cell**: 1 file
- **ref-cast**: 1 file
- **reqwest-middleware**: 1 file
- **rsa**: 1 file
- **rustls-native-certs**: 1 file
- **rustls-pki-types**: 1 file
- **rustls-platform-verifier**: 1 file
- **scoped-tls**: 1 file
- **serde_with**: 1 file
- **sha1**: 1 file
- **tikv-jemalloc-sys**: 1 file
- **tikv-jemallocator**: 1 file
- **tonic-health**: 1 file
- **urlencoding**: 1 file
- **walkdir**: 1 file

## Backend (npm-packages/@convex-dev/ai-sdk-provider)

### AI

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

## Support (npm-packages/@convex-dev/ai-sdk-provider)

### Validation

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

## Frontend (npm-packages/@convex-dev/bundle-analyzer)

### Interface

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

## Support (npm-packages/@convex-dev/bundle-analyzer)

### Tools

- **@commander-js/extra-typings**: 10 files
- **esbuild**: 3 files

### Other

- **string-width**: 4 files
- **chalk**: 3 files
- **cli-truncate**: 1 file
- **url**: 1 file

## Frontend (npm-packages/@convex-dev/codemod)

### Interface

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

## Backend (npm-packages/@convex-dev/codemod)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 3 files · [crates/common/src/sentry.rs, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/common/src/sentry.rs#L5)

## Support (npm-packages/@convex-dev/codemod)

### Testing

- **Jest**: 1 file

### Tools

- **ts-morph**: 6 files
- **Babel**: 1 file
- **commander**: 1 file

### Other

- **chalk**: 4 files
- **execa**: 1 file
- **SemVer**: 1 file

## Frontend (npm-packages/@convex-dev/design-system)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[classnames](https://seerepo.com/uses/classnames)**: 9 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file
- **tailwind-variants**: 1 file

### Interface

- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 7 files
- **[@floating-ui/react](https://seerepo.com/uses/floating-ui-react)**: 4 files
- **@radix-ui/react-tooltip**: 1 file

### Icons

- **Radix UI**: 7 files

## Support (npm-packages/@convex-dev/design-system)

### Other

- **Lodash**: 3 files
- **url**: 3 files
- **fuzzy**: 2 files
- **clsx**: 1 file
- **react-use**: 1 file

## Support (npm-packages/@convex-dev/eslint-plugin)

### Testing

- **Vitest**: 1 file

### Tools

- **typescript-eslint**: 14 files
- **TypeScript**: 5 files

### Other

- **url**: 1 file

## Support (npm-packages/@convex-dev/platform)

### Other

- **openapi-fetch**: 1 file

## Frontend (npm-packages/@convex-dev/react-query)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in npm-packages/shared-cursors/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/shared-cursors/package.json)
- **[React](https://seerepo.com/uses/react)**: 2 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

## Support (npm-packages/@convex-dev/react-query)

### Tools

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

### Other

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

## Frontend (npm-packages/@convex-dev/workos)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

## Support (npm-packages/components/ratelimiter)

### Testing

- **convex-test**: 1 file

## Frontend (npm-packages/convex-chat-speculative)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in npm-packages/shared-cursors/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/shared-cursors/package.json)
- **[React](https://seerepo.com/uses/react)**: 3 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

## Frontend (npm-packages/convex)

### The base

- **[React](https://seerepo.com/uses/react)**: 10 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Interface

- **[ora](https://seerepo.com/uses/ora)**: 4 files
- **[Inquirer](https://seerepo.com/uses/inquirer)**: 1 file

## Backend (npm-packages/convex)

### Sign-in

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

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 11 files · [crates/common/src/sentry.rs, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/common/src/sentry.rs#L5)
- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [npm-packages/convex/src/cli/mcp.ts, line 4](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/convex/src/cli/mcp.ts#L4)
- **Auth0**: 1 file · [npm-packages/convex/src/react-auth0/ConvexProviderWithAuth0.tsx, line 1](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/convex/src/react-auth0/ConvexProviderWithAuth0.tsx#L1)

## Support (npm-packages/convex)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 30 files
- **[zod-to-json-schema](https://seerepo.com/uses/zod-to-json-schema)**: 1 file

### Testing

- **Vitest**: 1 file

### Deploy

- **serve-handler**: 1 file

### Tools

- **@commander-js/extra-typings**: 39 files
- **esbuild**: 7 files
- **Babel**: 1 file
- **chokidar**: 1 file
- **commander**: 1 file
- **depcheck**: 1 file
- **find-up**: 1 file
- **Prettier**: 1 file
- **[Vercel](https://seerepo.com/uses/vercel)**: 1 file

### Other

- **chalk**: 63 files
- **.ENV**: 6 files
- **ws**: 4 files
- **open**: 3 files
- **url**: 3 files
- **detect-port**: 2 files
- **SemVer**: 2 files
- **adm-zip**: 1 file
- **fetch-retry**: 1 file
- **json5**: 1 file
- **openapi-fetch**: 1 file
- **undici**: 1 file

## Frontend (npm-packages/dashboard-common)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: 44 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[classnames](https://seerepo.com/uses/classnames)**: 32 files
- **[next-themes](https://seerepo.com/uses/next-themes)**: 3 files

### Interface

- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 18 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 11 files
- **[react-window](https://seerepo.com/uses/react-window)**: 10 files
- **[Formik](https://seerepo.com/uses/formik)**: 8 files
- **[xyflow](https://seerepo.com/uses/xyflow)**: 8 files
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 7 files
- **[monaco-editor](https://seerepo.com/uses/monaco-editor)**: 5 files
- **[@floating-ui/react](https://seerepo.com/uses/floating-ui-react)**: 4 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 4 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 4 files
- **[recharts](https://seerepo.com/uses/recharts)**: 3 files
- **@radix-ui/react-switch**: 2 files
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 2 files
- **[sonner](https://seerepo.com/uses/sonner)**: 2 files
- **[elkjs](https://seerepo.com/uses/elkjs)**: 1 file
- **[react-virtualized-auto-sizer](https://seerepo.com/uses/react-virtualized-auto-sizer)**: 1 file
- **react-window-infinite-loader**: 1 file

### Icons

- **Radix UI**: 99 files
- **[@heroicons/react](https://seerepo.com/uses/heroicons-react)**: 11 files

## Support (npm-packages/dashboard-common)

### Validation

- **[yup](https://seerepo.com/uses/yup)**: 8 files
- **[Zod](https://seerepo.com/uses/zod)**: 4 files
- **zod-error**: 1 file

### Tools

- **acorn**: 3 files

### Other

- **react-use**: 29 files
- **Lodash**: 27 files
- **date-fns**: 13 files
- **fuzzy**: 5 files
- **SWR**: 4 files
- **url**: 4 files
- **SemVer**: 3 files
- **base64-js**: 2 files
- **js-base64**: 2 files
- **object-sizeof**: 1 file

## Frontend (npm-packages/dashboard-self-hosted)

### The base

- **[React](https://seerepo.com/uses/react)**: [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 2 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Styles

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

### Interface

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

### Icons

- **Radix UI**: 4 files

## Support (npm-packages/dashboard-self-hosted)

### Validation

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

### Other

- **react-use**: 2 files

## Frontend (npm-packages/dashboard)

### The base

- **[React](https://seerepo.com/uses/react)**: [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 96 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[classnames](https://seerepo.com/uses/classnames)**: 16 files
- **[next-themes](https://seerepo.com/uses/next-themes)**: 4 files

### Interface

- **[Formik](https://seerepo.com/uses/formik)**: 21 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 14 files
- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 10 files
- **[recharts](https://seerepo.com/uses/recharts)**: 5 files
- **[monaco-editor](https://seerepo.com/uses/monaco-editor)**: 2 files
- **[radix-ui](https://seerepo.com/uses/radix-ui)**: 2 files
- **cobe**: 1 file
- **[nprogress](https://seerepo.com/uses/nprogress)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 1 file
- **react-sparklines**: 1 file

### Icons

- **Radix UI**: 95 files
- **[@heroicons/react](https://seerepo.com/uses/heroicons-react)**: 14 files

## Backend (npm-packages/dashboard)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 36 files · [crates/common/src/sentry.rs, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/common/src/sentry.rs#L5)
- **[Stripe](https://seerepo.com/uses/stripe)**: 5 files · [npm-packages/dashboard/src/hooks/useStripe.ts, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/src/hooks/useStripe.ts#L5)
- **[PostHog](https://seerepo.com/uses/posthog)**: 4 files · [npm-packages/dashboard/src/hooks/usePostHog.ts, line 2](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/src/hooks/usePostHog.ts#L2)

## Support (npm-packages/dashboard)

### Validation

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

### Testing

- **jsdom-testing-mocks**: 1 file
- **Testing Library**: 1 file

### Tools

- **openapi-typescript-helpers**: 1 file

### Other

- **Lodash**: 32 files
- **react-use**: 27 files
- **SWR**: 9 files
- **@workos-inc/node**: 8 files
- **date-fns**: 5 files
- **url**: 5 files
- **launchdarkly-react-client-sdk**: 2 files
- **.ENV**: 1 file
- **@team-plain/typescript-sdk**: 1 file
- **chalk**: 1 file
- **fetch-retry**: 1 file
- **http**: 1 file
- **[jsonc-parser](https://seerepo.com/uses/jsonc-parser)**: 1 file
- **openapi-fetch**: 1 file

## Frontend (npm-packages/local-store)

### The base

- **[React](https://seerepo.com/uses/react)**: 6 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Icons

- **Radix UI**: 1 file

## Backend (npm-packages/local-store)

### Data

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

## Support (npm-packages/local-store)

### Validation

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

## Backend (npm-packages/node-executor)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in npm-packages/node-executor/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/node-executor/package.json)

### Sign-in

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

## Support (npm-packages/node-executor)

### Validation

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

### Tools

- **@commander-js/extra-typings**: 1 file

### Other

- **adm-zip**: 1 file
- **archiver**: 1 file
- **concat-stream**: 1 file
- **uuid**: 1 file

## Backend (npm-packages/scenario-runner)

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**: 1 file
- **[tiktoken](https://seerepo.com/uses/tiktoken)**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [crates/common/src/sentry.rs, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/common/src/sentry.rs#L5)

## Support (npm-packages/scenario-runner)

### Tools

- **@commander-js/extra-typings**: 1 file

### Other

- **random-words**: 5 files
- **ws**: 2 files

## Support (npm-packages/shapes)

### Validation

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

## Frontend (npm-packages/shared-cursors)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in npm-packages/shared-cursors/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/shared-cursors/package.json)
- **[React](https://seerepo.com/uses/react)**: 4 files · [in npm-packages/dashboard/package.json](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/package.json)

### Interface

- **uplot**: 2 files

## Support (npm-packages/system-udfs)

### Validation

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

### Other

- **js-base64**: 1 file
- **Lodash**: 1 file

## Support (npm-packages/udf-runtime)

### Other

- **object-inspect**: 6 files
- **abortcontroller-polyfill**: 1 file
- **web-streams-polyfill**: 1 file

## Support (npm-packages/version)

### Validation

- **arktype**: 1 file

### Other

- **SemVer**: 2 files
- **chalk**: 1 file

## Other repos with a similar stack

- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Sentry, Vite, React, MCP, Next.js, Stripe, PostHog, ai, Zod, D3, Tailwind CSS, Radix UI, next-themes, xyflow, react-resizable-panels, monaco-editor, dnd-kit, recharts, react-day-picker, sonner, @heroicons/react, cmdk · [Compare](https://seerepo.com/compare/convex/convex-backend/vs/supabase/supabase)
- [BerriAI/litellm](https://seerepo.com/r/BerriAI/litellm/built): axum, aws-sdk-s3, rusqlite, Postgres, moka, SQLite, Tokio, tower, React, Next.js, tracing, tracing-subscriber, Zod, Tailwind CSS, next-themes, react-resizable-panels, react-hotkeys-hook, recharts, sonner, @heroicons/react, cmdk, tiktoken · [Compare](https://seerepo.com/compare/BerriAI/litellm/vs/convex/convex-backend)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Postgres, Sentry, React, Next.js, Stripe, PostHog, dexie, ai, Zod, Tailwind CSS, tailwind-merge, Radix UI, next-themes, react-window, recharts, react-day-picker, sonner, cmdk, jose, tiktoken · [Compare](https://seerepo.com/compare/convex/convex-backend/vs/Significant-Gravitas/AutoGPT)
- [ruvnet/ruflo](https://seerepo.com/r/ruvnet/ruflo/built): Postgres, SQLite, Tokio, Vite, React, MCP, Express, tracing, Zod, Tailwind CSS, tailwind-merge, Radix UI, openid-client, next-themes, react-resizable-panels, recharts, react-day-picker, sonner, cmdk, jose · [Compare](https://seerepo.com/compare/convex/convex-backend/vs/ruvnet/ruflo)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): MySQL, Postgres, AWS S3, React, MCP, Zod, D3, Tailwind CSS, classnames, tailwind-merge, @floating-ui/react, Radix UI, next-themes, xyflow, react-resizable-panels, recharts, react-day-picker, sonner, cmdk · [Compare](https://seerepo.com/compare/convex/convex-backend/vs/infiniflow/ragflow)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): SQLite, Sentry, Vite, React, MCP, PostHog, dexie, ai, Zod, Tailwind CSS, tailwind-merge, Radix UI, TanStack, xyflow, react-resizable-panels, dnd-kit, react-hotkeys-hook, react-day-picker, cmdk · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/convex/convex-backend)

## Frequently asked questions

### What language is convex-backend written in?

convex-backend is written in Rust, with 613,092 written lines.

### What framework does convex-backend use?

convex-backend is built with axum, axum-extra, Tokio, Deno, utoipa-axum, tower, Vite, React, Next.js, and Express.

### What database does convex-backend use?

convex-backend stores its data in MySQL, Postgres, iceberg, moka, lru, and SQLite.

The proof: [crates/mysql/src/connection.rs, line 71](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/mysql/src/connection.rs#L71)

### What does convex-backend sign people in with?

convex-backend signs people in with openidconnect, oauth2, tower-cookies, openid-client, and jose.

### What does convex-backend take payments with?

convex-backend takes payments with Stripe.

The proof: [npm-packages/dashboard/src/hooks/useStripe.ts, line 5](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/npm-packages/dashboard/src/hooks/useStripe.ts#L5)

### Does convex-backend use AI?

Yes. convex-backend uses AI through ai, LangChain, and tiktoken.

### What services does convex-backend use?

convex-backend stores files in AWS S3, measures its use with PostHog, watches its errors with Sentry, and uses aws-sdk-s3, mysql_async, postgres-protocol, rusqlite, tokio-postgres, tokio-postgres-rustls, aws-sdk-firehose, aws-sdk-rds, hashlink, iceberg-storage-opendal, rocksdb, MCP, Auth0, and dexie.

The proof: [crates/aws_s3/src/lib.rs, line 6](https://github.com/convex/convex-backend/blob/b9f41c0eba8ed043bfd96670a62685fc8e1e6b50/crates/aws_s3/src/lib.rs#L6)

### Does convex-backend have tests?

Yes. convex-backend has 42 test files and is tested with pretty_assertions, proptest, proptest-derive, shuttle, Jest, Vitest, convex-test, jsdom-testing-mocks, and Testing Library.

### Which repos have a stack like convex-backend's?

The ones that share most of its stack: supabase/supabase, BerriAI/litellm, and Significant-Gravitas/AutoGPT.

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