UNPKG

alinea

Version:
101 lines (70 loc) 2.23 kB
[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=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).