Citation is a new generation CMS merging ideas of: Headless / GraphQL, static site generation and JavaScript component pre-rendering
Citation is a new way of building websites. It brings users the ability to fully configure a website by specifying the routing and organizing all the components of each page.
It's able to manage your website structure as well as all your contents through an easy to use administration interface which store every data in a Git repository. It gives you full control on your data: historic, branches, merges...
Developers will still be able to have a full control on the project. It's possible to use several frameworks, its own components and use the Web tooling of Citation or once again, use its own.
Citation can operate from a fully packaged and configurable solution to a set of development tools helping developers to create their very specific website.
New project bootstraping is yet still too much manual and we are in the process of simplifying it.
The principal steps will be the following:
citation-server
with Yarn or NPM.citation-server
The main goal of this project is to develop a solution to easily build websites with the best modern technologies.
It has to be and remain fully Open Source, downloadable, not "only SaaS".
It has to be usable by "not developers" users as well as "developers".
To make these promises possible, Citation merge many new approaches and technologies:
Italic is for points not yet started
There is a lot of similar solutions in the wild. As far as I now, not one is bringing all the same package of feature that we are but I could have missed one.
Here is a list of the major references I considered. If you don't see an interesting one, please, let me know.
(SSR for Server Side Rendering, SSG for Static Site Generation)
The project is organized in several sub projects.
This is a meta project, there is nothing directly here.
We use (and recommand) using Yarn yet, all commands should work with their NPM equivalent.
yarn
yarn bootstrap
There is a bunch of commands that you can run from each modules of the project or directly from here to run it on each module:
Linting with ESLint
yarn lint
Build with Babel for backend module and Webpack for frontend ones
yarn build
Test with AVA or Jest
yarn test
Development mode
yarn dev
It will run Babel in watch mode on backend projects, launch a dev server on frontend projects.
Launched here, it will run Babel in watch mode on each backend module and run Citation server with nodemon from the citation-react-demo folder.
To start the demo inside of a Docker container, let's first build the image:
docker build -t citation .
You can also pull the image on the Docker Hub with:
docker pull ayaxp/citation
And start the container using the matching port on 4000:
docker run -p 4000:4000 citation
The project is started inside a "IT services company", no lies about that. Our goals with this project are not hidden (sorted by eventual popularity groth):