# What is the Total.js CMS: pages, layouts and widgets with no database

> The Total.js CMS is a content management system on Total.js 5 with an admin interface, pages, layouts, navigation, widgets, posts, files, redirects, variables, a sitemap and visitor statistics, MIT licensed and with no database to install.

Framework: cms
Product: CMS (cms@8071e48)
Language: en
Content-SHA256: ea92754b1c3f5bdf6adce7612131cac1cf492e6a847544fec063b68ee51656eb
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

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](/en/cms/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](/en/cms/widgets/)). The official catalogue has 43 ([the widgets repository](/en/cms/the-widgets-repository/)).
- **Navigation, redirects and variables**: menus described once and drawn by your layout, permanent or temporary redirects, and `$NAME` placeholders that you change in one place.
- **A sitemap** (`/sitemap.xml`), a page statistics dashboard and **posts** and **files** managers (see [settings, posts and files](/en/cms/settings-posts-and-files/)).
- **A JSON API** behind the admin, protected by a session, by a token or by [OpenPlatform](/en/openplatform/what-is-openplatform/) (see [the admin API](/en/cms/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](/en/cms/install-and-first-start/). The official documentation is at [docs.totaljs.com/cms](https://docs.totaljs.com/cms/).
