Introducing Alinea 🚀
A quick intro
Alinea is installable from NPM and bundles a few utilities to structure, manage and query content. The dashboard loads your configuration and lets you edit content based on a custom schema which can be composed of rich set of fields - or added to by building a custom field (which is just some configuration and a React component).
Content is structured hierarchically, following configuration settings to determine which page can have child pages. We've noticed that structuring content this way comes very natural for websites. Presenting the editor with a tree of pages that follows the website's navigation makes the editing experience so transparent it requires zero training. Have a look at the demo to judge for yourself.
Published content changes persist on the file system in json format (or markdown in the future), allowing content to be version controlled with git. The dashboard can be hosted with a backend which authorises users, keeps drafts and pushes changes to Github. It can be self-hosted or deployed in a few clicks with our cloud service.
While we're still hard at work at stabilizing the features below they'll give an overview of what we're trying to achieve.
No framework lock-in
Use any web framework, static site builder or ad-hoc script to display or transform data that is editable in the CMS.
Content is indexed in an embedded SQLite database. The database is deployed with your code and can be queried during build time or at runtime with Node.js or inside an edge or serverless function. This will also enable us to provide full text search out of box without requiring an extra service.
Configuration and content is fully typed when making use of TypeScript. It's a great feeling to be able to see what impact configuration changes have on your codebase.
The editing experience is built on Yjs primitives, which will allow multiple editors to collaborate without merge conflicts. We'll setup a WebRTC provider in the near future.
Content can be published in multiple languages and regions. We're polishing the UI that lets you switch and compare between languages.
The Alinea dashboard can be exported as a handful of static assets and a serverless function to be deployed to any cloud environment, or as a simple Node.js process.