# Frontend client [#frontend-client] `@aventara/client` is a development-time generator. It reads your deployed server's client contract and writes a standalone, typed TypeScript client into your project. The generated code imports nothing from `@aventara/client` or `@aventara/core` at runtime, so `@aventara/client` stays a dev dependency. ```ts import avClient from "./api/AvClient"; const users = await avClient.User.find.many({ where: { email: { contains: "example.com" } } }); ``` Calls resolve to the data (a record, a list, a count; a first-style miss is `null`) and everything else throws a typed error. Only what your server advertises exists on the client, in the type and at runtime, and a `where` offers each field only the operators it allows. When the contract carries [field validators](/framework/docs/field-validators), the client checks them before it sends a call, and throws the same `AvValidationError` the server would answer. ## In this section [#in-this-section] | Page | Read it for | | -------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | [Client setup](/framework/docs/client-setup) | `avclient init`, `framework.client.ts`, how to import the client, Vite, Next.js, Node and CORS | | [Typed calls](/framework/docs/typed-calls) | `avClient.User.find.many`, named types, readonly results, typing helpers | | [Client errors](/framework/docs/client-errors) | The error classes and how to handle them | | [Client options](/framework/docs/client-options) | `new AvClient({ entrypoint, fetch })`, `AvCallOptions`, authentication, aborting | | [Keeping in sync](/framework/docs/keeping-in-sync) | Regenerating, "up to date", CI checks, what a stale client does | For the query language itself see [Querying](/framework/docs/querying); for atomic multi-step writes see [Transactions](/framework/docs/transactions). ## See also [#see-also] * [Getting started](/framework/docs/getting-started) * [CLI reference](/framework/docs/cli-reference) * [HTTP protocol](/framework/docs/http-protocol), for calling the API without the generated client * Guides: [Authentication and guards](/framework/docs/authentication-and-guards), [Request IDs and diagnostics](/framework/docs/request-ids-and-diagnostics), [Upgrading](/framework/docs/upgrading)