# typed-schema > TypeScript-first Sanity schemas Declare a content model once. Get its TypeScript types and a runtime validator from the same definition. ## Table of Contents ### Introduction - [Why typed schemas](/typed-schema/guide/why.md) - [Getting started](/typed-schema/guide/getting-started.md) ### Guide - [Declaring a document](/typed-schema/guide/declaring-a-document.md) - [Parsing and errors](/typed-schema/guide/parsing.md) - [Standard Schema](/typed-schema/guide/standard-schema.md) - [Arrays and `_key`](/typed-schema/guide/arrays.md) - [Portable Text](/typed-schema/guide/portable-text.md) - [Composing schemas](/typed-schema/guide/composing.md) - [Custom creators](/typed-schema/guide/custom-creators.md) - [Partial and required variants](/typed-schema/guide/partial-and-required.md) - [Document lifecycles](/typed-schema/guide/lifecycles.md) - [Recursive schemas](/typed-schema/guide/recursive-schemas.md) - [Schema annotations](/typed-schema/guide/annotations.md) - [Loading documents and references](/typed-schema/guide/loaders.md) - [GraphQL compatibility](/typed-schema/guide/graphql.md) - [Using a typed schema in Sanity Studio](/typed-schema/guide/studio.md) - [Limitations](/typed-schema/guide/limitations.md) ### API reference - [Schema types](/typed-schema/api/schema-types.md) - [Modifiers and transforms](/typed-schema/api/transforms.md) - [Parsing](/typed-schema/api/parsing.md) - [Annotations](/typed-schema/api/annotations.md) - [Lifecycle helpers](/typed-schema/api/lifecycle.md) - [Loaders](/typed-schema/api/loaders.md) - [Utility types](/typed-schema/api/utility-types.md)