# Documentation - [Better Tables](/docs): Type-safe tables from your database schema to React UI — filtering, sorting, pagination, and URL state included. - [Why Better Tables](/docs/why-better-tables): What Better Tables covers end-to-end, how it compares to headless table libraries, and when not to use it. - [Quick Start](/docs/quick-start): Go from empty project to a typed, filterable table in a few steps. - [Architecture](/docs/architecture): Layers of the Better Tables monorepo and how data moves from schema to UI. - **Guides** - Columns - [Column Definition](/docs/columns): defineTable path builders, modifiers, computed columns, and type inference. - [Auto Columns](/docs/columns/auto-columns): Infer columns from adapter schema introspection with explicit overrides. - [Filtering](/docs/filtering): Typed FilterState objects, the full operator reference by column type, per-column filter config, and AND/OR query groups. - [Sorting](/docs/sorting): Multi-column sort descriptors, the multiSort UI, and SortingConfig options. - [Pagination](/docs/pagination): 1-based page and limit, passing limit / initialPagination, and the pagination controls. - [Facets](/docs/facets): Faceted value counts and range facets with useFacets, FacetedFilterSidebar, and the adapter facet contract. - [Selection & Actions](/docs/selection-and-actions): Row selection with checkboxes, and bulk actions that operate on the selected set. - [Export](/docs/export): Download the current (filtered, sorted) view as CSV or JSON — an opt-in UI module plus a data plugin. - [Inline Editing](/docs/inline-editing): Per-column .editable() with monolith server actions, HTTP writes, or full-control callbacks. - [Large Datasets](/docs/large-datasets): Row virtualization with the virtualized prop, and how it combines with server pagination. - [URL State](/docs/url-state): Framework-agnostic sync of filters, pagination, sorting, column visibility, and column order to query parameters. - [Next.js Integration](/docs/nextjs): Server fetch, lazy DB init for builds, UI copy, and client URL sync. - **Adapters & UI** - Adapters - [Adapters](/docs/adapters): How Better Tables talks to databases and HTTP backends. - [Drizzle Adapter](/docs/adapters/drizzle): Schema introspection, JOINs from relationship paths, filters, facets, factory options, and performance tuning. - [HTTP Adapter](/docs/adapters/http): Pair httpAdapter with createAdapterRouteHandler for browser ↔ server adapter calls. - [Custom Adapters](/docs/adapters/custom): Implement the TableAdapter contract for any backend, with the ORM-agnostic toolkit doing the heavy lifting. - [UI & CLI](/docs/ui-and-cli): Copy React table components into your app with better-tables init. - **Reference** - [BetterTable Props](/docs/better-table): Complete reference for every prop on the copied component. - Packages - [Packages](/docs/packages): npm vs CLI-copy matrix for every Better Tables package. - [@better-tables/core](/docs/packages/core): Column builders, managers, HTTP adapter helpers, and adapter contracts. - [@better-tables/adapters-drizzle](/docs/packages/adapters-drizzle): Drizzle ORM adapter for Postgres, MySQL, and SQLite. - [@better-tables/adapters-toolkit](/docs/packages/adapters-toolkit): ORM-agnostic primitives for writing custom Better Tables adapters. - [@better-tables/ui](/docs/packages/ui): React table and filter components — distributed via CLI copy. - [@better-tables/cli](/docs/packages/cli): better-tables init and docs commands. - Examples - [Examples](/docs/examples): Live dogfood demos on this site — open them, then copy the patterns. - [Troubleshooting](/docs/troubleshooting): Common failures — build-time DB crashes, init prerequisites, read-only cells, HTTP 403s, and multi-table SchemaErrors.