# Convex Documentation > For general information about Convex, read [https://www.convex.dev/llms.txt](https://www.convex.dev/llms.txt). ## understanding Convex is the open source, reactive database where queries are TypeScript code - [Convex Overview](/understanding.md): Convex is the open source, reactive database where queries are TypeScript code - [Best Practices](/understanding/best-practices.md): This is a list of best practices and common anti-patterns around using Convex. - [TypeScript](/understanding/best-practices/typescript.md): Move faster with end-to-end type safety - [Dev workflow](/understanding/workflow.md): Development workflow from project creation to production deployment - [The Zen of Convex](/understanding/zen.md): Convex best practices and design philosophy ## quickstart - [Android Kotlin Quickstart](/quickstart/android.md): Add Convex to an Android Kotlin project - [Using Convex with Bun](/quickstart/bun.md): Add Convex to a Bun project - [Next.js Quickstart](/quickstart/nextjs.md): Add Convex to a Next.js project - [Node.js Quickstart](/quickstart/nodejs.md): Add Convex to a Node.js project - [Python Quickstart](/quickstart/python.md): Add Convex to a Python project - [React Quickstart](/quickstart/react.md): Add Convex to a React project - [React Native Quickstart](/quickstart/react-native.md): Add Convex to a React Native Expo project - [Remix Quickstart](/quickstart/remix.md): Add Convex to a Remix project - [Rust Quickstart](/quickstart/rust.md): Add Convex to a Rust project - [Script Tag Quickstart](/quickstart/script-tag.md): Add Convex to any website - [Svelte Quickstart](/quickstart/svelte.md): Add Convex to a Svelte project - [iOS Swift Quickstart](/quickstart/swift.md): Add Convex to an iOS Swift project - [TanStack Start Quickstart](/quickstart/tanstack-start.md): Add Convex to a TanStack Start project - [Vue Quickstart](/quickstart/vue.md): Add Convex to a Vue project ## functions Write functions to define your server behavior - [Functions](/functions.md): Write functions to define your server behavior - [Actions](/functions/actions.md): Call third-party services and external APIs from Convex - [Bundling](/functions/bundling.md): How Convex bundles and optimizes your function code - [Debugging](/functions/debugging.md): Debug Convex functions during development and production - [Error Handling](/functions/error-handling.md): Handle errors in Convex queries, mutations, and actions - [Application Errors](/functions/error-handling/application-errors.md): Handle expected failures in Convex functions - [HTTP Actions](/functions/http-actions.md): Build HTTP APIs directly in Convex - [Internal Functions](/functions/internal-functions.md): Functions that can only be called by other Convex functions - [Mutations](/functions/mutation-functions.md): Insert, update, and remove data from the database - [Queries](/functions/query-functions.md): Fetch data from the database with caching and reactivity - [Runtimes](/functions/runtimes.md): Learn the differences between the Convex and Node.js runtimes for functions - [Argument and Return Value Validation](/functions/validation.md): Validate function arguments and return values for security ## database Store JSON-like documents with a relational data model - [Database](/database.md): Store JSON-like documents with a relational data model - [OCC and Atomicity](/database/advanced/occ.md): Optimistic concurrency control and transaction atomicity in Convex - [Schema Philosophy](/database/advanced/schema-philosophy.md): Convex schema design philosophy and best practices - [System Tables](/database/advanced/system-tables.md): System tables enable read-only access to metadata for built-in Convex features. - [Backups](/database/backup-restore.md): Backup and restore your Convex data and files - [Document IDs](/database/document-ids.md): Create complex, relational data models using IDs - [Data Import & Export](/database/import-export.md): Import data from existing sources and export data to external systems - [Data Export](/database/import-export/export.md): Export your data out of Convex - [Data Import](/database/import-export/import.md): Import data into Convex - [Paginated Queries](/database/pagination.md): Load paginated queries - [Reading Data](/database/reading-data.md): Query and read data from Convex database tables - [Filtering](/database/reading-data/filters.md): Filter documents in Convex queries - [Indexes](/database/reading-data/indexes.md): Speed up queries with database indexes - [Introduction to Indexes and Query Performance](/database/reading-data/indexes/indexes-and-query-perf.md): Learn the effects of indexes on query performance - [Schemas](/database/schemas.md): Schema validation keeps your Convex data neat and tidy. It also gives you end-to-end TypeScript type safety! - [Data Types](/database/types.md): Supported data types in Convex documents - [Writing Data](/database/writing-data.md): Insert, update, and delete data in Convex database tables ## realtime Building realtime apps with Convex - [Realtime](/realtime.md): Building realtime apps with Convex ## auth Add authentication to your Convex app. - [Authentication](/auth.md): Add authentication to your Convex app. - [Custom OIDC Provider](/auth/advanced/custom-auth.md): Note: This is an advanced feature! We recommend sticking with the - [Custom JWT Provider](/auth/advanced/custom-jwt.md): Note: This is an advanced feature! We recommend sticking with the - [Convex & Auth0](/auth/auth0.md): Integrate Auth0 authentication with Convex - [Convex & Clerk](/auth/clerk.md): Integrate Clerk authentication with Convex - [Convex Auth](/auth/convex-auth.md): Built-in authentication for Convex applications - [Storing Users in the Convex Database](/auth/database-auth.md): Store user information in your Convex database - [Debugging Authentication](/auth/debug.md): Troubleshoot authentication issues in Convex - [Auth in Functions](/auth/functions-auth.md): Access user authentication in Convex functions ## scheduling Schedule functions to run once or repeatedly with scheduled functions and cron jobs - [Scheduling](/scheduling.md): Schedule functions to run once or repeatedly with scheduled functions and cron jobs - [Cron Jobs](/scheduling/cron-jobs.md): Schedule recurring functions in Convex - [Scheduled Functions](/scheduling/scheduled-functions.md): Schedule functions to run in the future ## file-storage Store and serve files of any type - [File Storage](/file-storage.md): Store and serve files of any type - [Deleting Files](/file-storage/delete-files.md): Delete files stored in Convex - [Accessing File Metadata](/file-storage/file-metadata.md): Access file metadata stored in Convex - [Serving Files](/file-storage/serve-files.md): Serve files stored in Convex to users - [Storing Generated Files](/file-storage/store-files.md): Store files generated in Convex actions - [Uploading and Storing Files](/file-storage/upload-files.md): Upload files to Convex storage ## search Run search queries over your Convex documents - [AI & Search](/search.md): Run search queries over your Convex documents - [Full Text Search](/search/text-search.md): Run search queries over your Convex documents - [Vector Search](/search/vector-search.md): Run vector search queries on embeddings ## components Self contained building blocks of your app - [Components](/components.md): Self contained building blocks of your app - [Using Components](/components/using-components.md): Using existing components ## ai How to use AI code generation effectively with Convex - [AI Code Generation](/ai.md): How to use AI code generation effectively with Convex - [Convex MCP Server](/ai/convex-mcp-server.md): Convex MCP server - [Using Cursor with Convex](/ai/using-cursor.md): Tips and best practices for using Cursor with Convex - [Using GitHub Copilot with Convex](/ai/using-github-copilot.md): Tips and best practices for using GitHub Copilot with Convex - [Using Windsurf with Convex](/ai/using-windsurf.md): Tips and best practices for using Windsurf with Convex ## agents Building AI Agents with Convex - [Building AI Agents with Convex](/agents.md): Building AI Agents with Convex ## testing Testing your backend - [Testing](/testing.md): Testing your backend - [Continuous Integration](/testing/ci.md): Set up continuous integration testing for Convex applications - [Testing Local Backend](/testing/convex-backend.md): Test functions using the local open-source Convex backend - [convex-test](/testing/convex-test.md): Mock Convex backend for fast automated testing of functions ## production Tips for building safe and reliable production apps - [Deploying Your App to Production](/production.md): Tips for building safe and reliable production apps - [Contact Us](/production/contact.md): Convex is a rapidly developing platform and we're always eager to hear your - [Environment Variables](/production/environment-variables.md): Store and access environment variables in Convex - [Hosting and Deployment](/production/hosting.md): Share your Convex backend and web app with the world - [Custom Domains & Hosting](/production/hosting/custom.md): Serve requests from any domains and host your frontend on any static hosting provider, such as GitHub. - [Using Convex with Netlify](/production/hosting/netlify.md): Host your frontend on Netlify and your backend on Convex - [Preview Deployments](/production/hosting/preview-deployments.md): Use Convex with your hosting provider's preview deployments - [Using Convex with Vercel](/production/hosting/vercel.md): Host your frontend on Vercel and your backend on Convex - [Integrations](/production/integrations.md): Integrate Convex with third party services - [Exception Reporting](/production/integrations/exception-reporting.md): Configure exception reporting integrations for your Convex deployment - [Log Streams](/production/integrations/log-streams.md): Configure logging integrations for your Convex deployment - [(Legacy) Event schema](/production/integrations/log-streams/legacy-event-schema.md): Log streams configured before May 23, 2024 will use the legacy format - [Streaming Data in and out of Convex](/production/integrations/streaming-import-export.md): Streaming Data in and out of Convex - [Multiple Repositories](/production/multiple-repos.md): Use Convex in multiple repositories - [Pausing a Deployment](/production/pause-deployment.md): Pausing a deployment is a way to "turn off" a deployment without deleting any - [Project Configuration](/production/project-configuration.md): Local development - [Status and Guarantees](/production/state.md): Please contact us with any specific requirements or - [Limits](/production/state/limits.md): We’d love for you to have unlimited joy building on Convex but engineering ## self-hosting Self Hosting Convex Projects - [Self Hosting](/self-hosting.md): Self Hosting Convex Projects ## cli The Convex command-line interface (CLI) is your interface for managing Convex - [CLI](/cli.md): The Convex command-line interface (CLI) is your interface for managing Convex - [Local Deployments for Development](/cli/local-deployments.md): Instead of syncing code to a Convex dev deployment hosted in the cloud, you can ## client - [Android Kotlin](/client/android.md): Convex Android client library enables your Android application to interact with - [Kotlin and Convex type conversion](/client/android/data-types.md): Customizing and converting types between the Kotlin app and Convex - [Convex JavaScript Clients](/client/javascript.md): Convex applications can be accessed from Node.js or any JavaScript runtime that - [Bun](/client/javascript/bun.md): Bun can be used to run scripts and servers that use Convex - [Node.js](/client/javascript/node.md): Convex supports point-in-time queries (see - [Script Tag](/client/javascript/script-tag.md): Sometimes you just want to get your data on a web page: no installing packages, - [OpenAPI & Other Languages](/client/open-api.md): Convex doesn’t have explicit support for many languages including Go, Java, and - [Python](/client/python.md): See the Python Quickstart and the - [Convex React](/client/react.md): Convex React is the client library enabling your React application to interact - [Convex React Native](/client/react-native.md): How Convex works in a React Native app - [Configuring Deployment URL](/client/react/deployment-urls.md): Configuring your project to run with Convex - [Next.js Pages Router](/client/react/nextjs-pages-router/nextjs-pages-router.md): This pages covers the Pages Router variant of Next.js. Alternatively see the - [Next.js Pages Quickstart](/client/react/nextjs-pages-router/quickstart.md): Learn how to query data from Convex in a Next.js app using the Pages Router. - [Next.js](/client/react/nextjs.md): How Convex works in a Next.js app - [Next.js Server Rendering](/client/react/nextjs/server-rendering.md): Next.js automatically renders both Client and Server Components on the server - [Optimistic Updates](/client/react/optimistic-updates.md): Even though Convex queries are completely reactive, sometimes you'll want to - [Create-React-App Quickstart](/client/react/quickstart-create-react-app.md): Add Convex to a Create React App project - [TanStack Start](/client/react/tanstack-start.md): How Convex works with TanStack Start - [TanStack Start with Clerk](/client/react/tanstack-start/tanstack-start-with-clerk.md): Using Clerk with Convex looks like following the - [Rust](/client/rust.md): See the Rust Quickstart and - [Svelte](/client/svelte.md): Convex is a great fit for reactive UI frameworks like Svelte. The - [iOS & macOS Swift](/client/swift.md): The Convex Swift client library enables your iOS or macOS application to - [Swift and Convex type conversion](/client/swift/data-types.md): Customizing and converting types between the Swift app and Convex - [Convex with TanStack Query](/client/tanstack-query.md): TanStack Query is an excellent, popular - [Vue](/client/vue.md): The community-maintained ## dashboard Learn how to use the Convex dashboard - [Dashboard](/dashboard.md): Learn how to use the Convex dashboard - [Deployments](/dashboard/deployments.md): Each project in Convex has a main production deployment, and each developer on - [Data](/dashboard/deployments/data.md): Data Dashboard Page - [Settings](/dashboard/deployments/deployment-settings.md): The deployment settings page - [File Storage](/dashboard/deployments/file-storage.md): The file storage page displays - [Functions](/dashboard/deployments/functions.md): Functions Dashboard View - [Health](/dashboard/deployments/health.md): The health page is the landing page - [History](/dashboard/deployments/history.md): History Dashboard Page - [Logs](/dashboard/deployments/logs.md): Logs Dashboard Page - [Schedules](/dashboard/deployments/schedules.md): The schedules page displays - [Projects](/dashboard/projects.md): Project settings - [Teams](/dashboard/teams.md): In Convex, your projects are organized by team. Teams are used to share access ## error Understand specific errors thrown by Convex - [Errors and Warnings](/error.md): Understand specific errors thrown by Convex ## eslint ESLint rules for Convex - [ESLint rules](/eslint.md): ESLint rules for Convex ## tutorial Convex provides you with a fully featured backend with cloud functions, - [Convex Tutorial: A chat app](/tutorial.md): Convex provides you with a fully featured backend with cloud functions, - [Convex Tutorial: Calling external services](/tutorial/actions.md): In the previous step, you built a fully self-contained - [Convex Tutorial: Scaling your app](/tutorial/scale.md): Convex was designed from the ground up for scale. In the previous section we ## api TypeScript/JavaScript client libraries and CLI for Convex. - [Convex](/api.md): TypeScript/JavaScript client libraries and CLI for Convex. - [Class: BaseConvexClient](/api/classes/browser.BaseConvexClient.md): browser.BaseConvexClient - [Class: ConvexClient](/api/classes/browser.ConvexClient.md): browser.ConvexClient - [Class: ConvexHttpClient](/api/classes/browser.ConvexHttpClient.md): browser.ConvexHttpClient - [Class: ConvexReactClient](/api/classes/react.ConvexReactClient.md): react.ConvexReactClient - [Class: Crons](/api/classes/server.Crons.md): server.Crons - [Class: Expression](/api/classes/server.Expression.md): server.Expression - [Class: FilterExpression](/api/classes/server.FilterExpression.md): server.FilterExpression - [Class: HttpRouter](/api/classes/server.HttpRouter.md): server.HttpRouter - [Class: IndexRange](/api/classes/server.IndexRange.md): server.IndexRange - [Class: SchemaDefinition](/api/classes/server.SchemaDefinition.md): server.SchemaDefinition - [Class: SearchFilter](/api/classes/server.SearchFilter.md): server.SearchFilter - [Class: TableDefinition](/api/classes/server.TableDefinition.md): server.TableDefinition - [Class: ConvexError](/api/classes/values.ConvexError.md): values.ConvexError - [Class: VAny](/api/classes/values.VAny.md): values.VAny - [Class: VArray](/api/classes/values.VArray.md): values.VArray - [Class: VBoolean](/api/classes/values.VBoolean.md): values.VBoolean - [Class: VBytes](/api/classes/values.VBytes.md): values.VBytes - [Class: VFloat64](/api/classes/values.VFloat64.md): values.VFloat64 - [Class: VId](/api/classes/values.VId.md): values.VId - [Class: VInt64](/api/classes/values.VInt64.md): values.VInt64 - [Class: VLiteral](/api/classes/values.VLiteral.md): values.VLiteral - [Class: VNull](/api/classes/values.VNull.md): values.VNull - [Class: VObject](/api/classes/values.VObject.md): values.VObject - [Class: VRecord](/api/classes/values.VRecord.md): values.VRecord - [Class: VString](/api/classes/values.VString.md): values.VString - [Class: VUnion](/api/classes/values.VUnion.md): values.VUnion - [Interface: BaseConvexClientOptions](/api/interfaces/browser.BaseConvexClientOptions.md): browser.BaseConvexClientOptions - [Interface: MutationOptions](/api/interfaces/browser.MutationOptions.md): browser.MutationOptions - [Interface: OptimisticLocalStore](/api/interfaces/browser.OptimisticLocalStore.md): browser.OptimisticLocalStore - [Interface: SubscribeOptions](/api/interfaces/browser.SubscribeOptions.md): browser.SubscribeOptions - [Interface: ConvexReactClientOptions](/api/interfaces/react.ConvexReactClientOptions.md): react.ConvexReactClientOptions - [Interface: MutationOptions](/api/interfaces/react.MutationOptions.md): react.MutationOptions - [Interface: ReactAction](/api/interfaces/react.ReactAction.md): react.ReactAction - [Interface: ReactMutation](/api/interfaces/react.ReactMutation.md): react.ReactMutation - [Interface: Watch](/api/interfaces/react.Watch.md): react.Watch - [Interface: WatchQueryOptions](/api/interfaces/react.WatchQueryOptions.md): react.WatchQueryOptions - [Interface: Auth](/api/interfaces/server.Auth.md): server.Auth - [Interface: BaseTableReader](/api/interfaces/server.BaseTableReader.md): server.BaseTableReader - [Interface: BaseTableWriter](/api/interfaces/server.BaseTableWriter.md): server.BaseTableWriter - [Interface: CronJob](/api/interfaces/server.CronJob.md): server.CronJob - [Interface: DefineSchemaOptions](/api/interfaces/server.DefineSchemaOptions.md): server.DefineSchemaOptions - [Interface: FilterBuilder](/api/interfaces/server.FilterBuilder.md): server.FilterBuilder - [Interface: GenericActionCtx](/api/interfaces/server.GenericActionCtx.md): server.GenericActionCtx - [Interface: GenericDatabaseReader](/api/interfaces/server.GenericDatabaseReader.md): server.GenericDatabaseReader - [Interface: GenericDatabaseReaderWithTable](/api/interfaces/server.GenericDatabaseReaderWithTable.md): server.GenericDatabaseReaderWithTable - [Interface: GenericDatabaseWriter](/api/interfaces/server.GenericDatabaseWriter.md): server.GenericDatabaseWriter - [Interface: GenericDatabaseWriterWithTable](/api/interfaces/server.GenericDatabaseWriterWithTable.md): server.GenericDatabaseWriterWithTable - [Interface: GenericMutationCtx](/api/interfaces/server.GenericMutationCtx.md): server.GenericMutationCtx - [Interface: GenericQueryCtx](/api/interfaces/server.GenericQueryCtx.md): server.GenericQueryCtx - [Interface: IndexRangeBuilder](/api/interfaces/server.IndexRangeBuilder.md): server.IndexRangeBuilder - [Interface: OrderedQuery](/api/interfaces/server.OrderedQuery.md): server.OrderedQuery - [Interface: PaginationOptions](/api/interfaces/server.PaginationOptions.md): server.PaginationOptions - [Interface: PaginationResult](/api/interfaces/server.PaginationResult.md): server.PaginationResult - [Interface: Query](/api/interfaces/server.Query.md): server.Query - [Interface: QueryInitializer](/api/interfaces/server.QueryInitializer.md): server.QueryInitializer - [Interface: Scheduler](/api/interfaces/server.Scheduler.md): server.Scheduler - [Interface: SearchFilterBuilder](/api/interfaces/server.SearchFilterBuilder.md): server.SearchFilterBuilder - [Interface: SearchFilterFinalizer](/api/interfaces/server.SearchFilterFinalizer.md): server.SearchFilterFinalizer - [Interface: SearchIndexConfig](/api/interfaces/server.SearchIndexConfig.md): server.SearchIndexConfig - [Interface: StorageActionWriter](/api/interfaces/server.StorageActionWriter.md): server.StorageActionWriter - [Interface: StorageReader](/api/interfaces/server.StorageReader.md): server.StorageReader - [Interface: StorageWriter](/api/interfaces/server.StorageWriter.md): server.StorageWriter - [Interface: SystemDataModel](/api/interfaces/server.SystemDataModel.md): server.SystemDataModel - [Interface: UserIdentity](/api/interfaces/server.UserIdentity.md): server.UserIdentity - [Interface: ValidatedFunction](/api/interfaces/server.ValidatedFunction.md): server.ValidatedFunction - [Interface: VectorFilterBuilder](/api/interfaces/server.VectorFilterBuilder.md): server.VectorFilterBuilder - [Interface: VectorIndexConfig](/api/interfaces/server.VectorIndexConfig.md): server.VectorIndexConfig - [Interface: VectorSearchQuery](/api/interfaces/server.VectorSearchQuery.md): server.VectorSearchQuery - [convex](/api/modules.md): Modules - [Module: browser](/api/modules/browser.md): Tools for accessing Convex in the browser. - [Module: nextjs](/api/modules/nextjs.md): Helpers for integrating Convex into Next.js applications using server rendering. - [Module: react](/api/modules/react.md): Tools to integrate Convex into React applications. - [Module: react-auth0](/api/modules/react_auth0.md): React login component for use with Auth0. - [Module: react-clerk](/api/modules/react_clerk.md): React login component for use with Clerk. - [Module: server](/api/modules/server.md): Utilities for implementing server-side Convex query and mutation functions. - [Module: values](/api/modules/values.md): Utilities for working with values stored in Convex. - [Namespace: Base64](/api/namespaces/values.Base64.md): values.Base64 ## generated-api Convex uses code generation to create code that is specific to your app's data - [Generated Code](/generated-api.md): Convex uses code generation to create code that is specific to your app's data - [api.js](/generated-api/api.md): These exports are not directly available in the convex package! - [dataModel.d.ts](/generated-api/data-model.md): These exports are not directly available in the convex package! - [server.js](/generated-api/server.md): These exports are not directly available in the convex package! ## http-api Connecting to Convex directly with HTTP - [HTTP APIs](/http-api.md): Connecting to Convex directly with HTTP ## chef How to use Chef by Convex - [Chef](/chef.md): How to use Chef by Convex