What is the Total.js CMS: pages, layouts and widgets with no database
The Total.js CMS (totaljs/cms) is a content management system written with Total.js 5. You build a website from layouts (the frame of a page), pages (the content and its address) and widgets (reusable blocks), you edit it from an admin interface, and the same application serves the public site. It is open source under the MIT licence and it needs no database: the content lives in the file storage of Total.js inside the folder of the application.
What you get
- An admin interface at
/admin/with a plugin for each task: dashboard, pages, layouts, navigation, widgets, posts, files, redirects, variables and settings. - Pages and layouts whose HTML is stored as files, with a title, description and keywords for search engines, nested addresses, a language, a disabled flag and pages for signed-in visitors (see pages, layouts and navigation).
- Widgets: blocks with their own style, settings form and, when you need it, code that renders them on the server (see widgets). The official catalogue has 43 (the widgets repository).
- Navigation, redirects and variables: menus described once and drawn by your layout, permanent or temporary redirects, and
$NAMEplaceholders that you change in one place. - A sitemap (
/sitemap.xml), a page statistics dashboard and posts and files managers (see settings, posts and files). - A JSON API behind the admin, protected by a session, by a token or by OpenPlatform (see the admin API).
- Backup and restore of the whole site in one file.
How it is built
The application is small: index.js starts Total.js 5, the folder plugins/ holds the plugins of the admin, controllers/default.js renders the public site and definitions/func.js loads and saves the metadata of the site. The admin interface uses the Componentator components, and the public pages are compiled by the CMS compiler that is part of Total.js 5 itself.
These pages describe the CMS (revision 8071e48 of the repository). Continue with install and first start. The official documentation is at docs.totaljs.com/cms.