Alinea

Alinea

Content management, streamlined
GitHub
717
Created 2 years ago, last commit 6 days ago
10 contributors
1.68k commits
Stars added on GitHub, month by month
12
1
2
3
4
5
6
7
8
9
10
11
2022
2023
Stars added on GitHub, per day, on average
Yesterday
+2
Last week
+0.3 /day
Last month
+0.1 /day
Last 12 months
+0.3 /day
Package on NPM
alinea
0.4.3
Monthly downloads on NPM
12
1
2
3
4
5
6
7
8
9
10
11
2022
2023
README

npm install size

Alinea CMS logo

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 SQLite database
  • Content is fully typed

Get started

Install alinea in your project directory

npm install alinea

Initialize alinea's config file

npx alinea init --next

Open the dashboard to have a look around

npx alinea dev

Start configuring types and fields →

Configure

Configure alinea in cms.tsx

const BlogPost = alinea.type('Blog post', {
  title: alinea.text('Blog entry title'),
  body: alinea.richText('Body text')
})

Type options and fields →

Query

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

import {cms} from '@/cms'

console.log(
  await cms.find(
    BlogPost()
      .where(BlogPost.author.is('Me'))
      .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.