Core is the base layer every Pluto app extends. With no other layer, Pluto is a Markdown CMS on Git: content is files in your repository, and each save is a commit.
What it adds
- The admin at
/admin: the shell, the navigation, the dashboard, the command palette, and the settings pages. - The content model: declare a content type once. Pluto makes the list page, the form, the navigation entry, and the dashboard tile.
- The media library: uploads with a preview image, kinds of files that layers add, and one picker for every field.
- The Git CMS: content is Markdown files with YAML frontmatter. In development they are in your local Git repository. On a deployed site they are in GitHub.
- The public API: published content for a site in any stack, at
/api/pluto/v1/content/<type>. - The extension registry: a layer adds menus, pages, widgets, and media kinds with one function.
- Mail and i18n: Pluto sends its own emails, and the admin speaks English and Brazilian Portuguese.
Install
Install the package first, with the command at the top of this page. extends does not install it.
Then extend it:
nuxt.config.ts
export default defineNuxtConfig({
extends: ['@plutocms/core']
})
An app that uses a backend layer (for example @plutocms/supabase) does not add core: the backend layer brings it.