Skip to content

alineacms/alinea

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

npm install size Open in StackBlitz

Alinea CMS logo

Current status: expect alpha software and out of date docs.

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

Open the dashboard to have a look around

npx alinea serve

Start configuring types and fields →

Examples

Configure

Configure alinea in alinea.config.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 {initPages} from '@alinea/content/pages'
const pages = initPages()
console.log(
  await pages
    .whereType('BlogPost')
    .where(post => post.author.is('Me'))
    .select(post => ({title: post.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.