Skip to content

Repository files navigation

npminstall size


Vercel OSS Program

Alinea is a modern content management system.

  • Content is stored in flat files and committed to your repository
  • Content is easily queryable through an in-memory database
  • Content is fully typed

Get started

Install Alinea in your project directory

npm install alinea

Initialize Alinea's config file

npx alinea init

Open the dashboard to have a look around

npx alinea dev

Start configuring types and fields →

Coding agents

If you are working in a project that depends on alinea, a handbook is included in the npm distribution at ./llms-full.txt.

Configure

Configure Alinea in cms.ts

import{Config,Field}from'alinea'constBlogPost=Config.document('Blog post',{fields: {title: Field.text('Blog entry title'),body: Field.richText('Body text')}})constBlog=Config.document('Blog',{contains: [BlogPost]})

Type options and fields →

Query

Retrieve content fully-typed and filter, order, limit as needed.
Select only the fields you need.

import{Query}from'alinea'console.log(awaitcms.get({type: Blog,select: {title: Blog.title,posts: Query.children({type: BlogPost,select: {title: BlogPost.title}})}}))

See the full api →

Content is available during static site generation and when server side querying.
Content is bundled with your code and can be queried with zero network overhead.

How alinea bundles content →

Deploy anywhere

Alinea supports custom backends that can be hosted as a simple Node.js process or on serverless runtimes.

Setup your backend →

How to contribute to this project

Have a question or an idea? Found a bug? Read how to contribute.

Releases

Packages

Used by

Contributors

Languages