Documentation
Getting Started
Two ways to get started with Byline: add it to an existing TanStack Start app with the CLI, or clone this repo and run the example application in dev mode.
Why Byline
The thinking behind Byline: why it exists, the problems it sets out to solve, and what it means to build a content platform for an era in which both people and machines read your content.
Key Architectural Decisions
The load-bearing design decisions behind Byline: universal EAV storage, immutable versioning, the document-level vs version-level split (path, available locales, tree edge), patch-based updates, the schema/admin split, and the authorization model. Each links to its full reference.
Collections
Defining collections in Byline: defineCollection, the workflow system, lifecycle hooks (beforeCreate, beforeRead, afterUpdate…), and the admin presentation split.
Reading & Delivery
How content leaves Byline and reaches its readers — the typed client SDK, the server-function transport surface, future HTTP transports, markdown and llms.txt for agents, an MCP server, a pluggable search/retrieval seam, and the caching strategy that ties them together.
Auth & Security
How Byline controls who can do what, and how it records what was done — the actor and ability model, two-layer access control with read-side row scoping, and the version and document-level audit trails.
Internationalization (i18n)
Byline separates interface translation from content translation, and treats both independently from the language a document is published in. An overview of the three i18n axes — host interface, admin interface, and content locales — and how they stay decoupled.
Admin UI
The building blocks of Byline's admin interface — the framework-agnostic UI Kit it is built from, and how the admin/editor configuration is registered into a host application without leaking into its public bundles.
Testing
Two suites, two commands: pnpm test (unit, no Postgres) and pnpm test:integration (real db). Isolation, safety guards, and how to run a single test file.