Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

alineacms/alinea

Repository files navigation

npm install 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 →

Configure

Configure Alinea in cms.ts

import {Config, Field} from 'alinea'
const BlogPost = Config.document('Blog post', {
 fields: {
 title: Field.text('Blog entry title'),
 body: Field.richText('Body text')
 }
})
const Blog = 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(
 await cms.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.

AltStyle によって変換されたページ (->オリジナル) /