alinea
Version:
Headless git-based CMS
101 lines (70 loc) • 2.23 kB
Markdown
[](https://npmjs.org/package/alinea)
[](https://packagephobia.com/result?p=alinea)
<br />
<a href="https://vercel.com/oss">
<img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" />
</a>
<br />
# [Alinea CMS](https://alineacms.com)
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
```sh
npm install alinea
```
Initialize Alinea's config file
```sh
npx alinea init
```
Open the dashboard to have a look around
```sh
npx alinea dev
```
[Start configuring types and fields →](https://alineacms.com/docs/configuration)
## Configure
Configure Alinea in `cms.ts`
```tsx
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 →](https://alineacms.com/docs/configuration)
## Query
Retrieve content fully-typed and filter, order, limit as needed.
Select only the fields you need.
```tsx
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 →](https://alineacms.com/docs/content/query)
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 →](https://alineacms.com/docs/content)
## Deploy anywhere
Alinea supports custom backends that can be hosted as a simple Node.js process or on serverless runtimes.
[Setup your backend →](https://alineacms.com/docs/deploy)
## How to contribute to this project
Have a question or an idea? Found a bug? Read how to [contribute](contributing.md).