Singletons
When you want a “one-of-a-kind” data entry, such as a “Settings” page or maybe a very specific set of fields for the “Homepage” of a website, you will want to use a singleton.
Example
Here's how you'd define a settings singleton:
// keystatic.config.ts
import { config, singleton } from '@keystatic/core';
export default config({
// ...
singletons: {
settings: singleton({
label: 'Settings',
schema: {}
}),
},
});Options
Entry layout
entryLayout — change the layout of the Admin UI for the singleton data entry.
Learn more on the Entry Layout page.
Format
format — provides options around the data format of your singleton.
Learn more on the Format Options page.
Label
label — defines the name of the singleton. This is used in the Admin UI.
Path
path — allows you to you specify where to store the singleton data:
path: 'custom/content/path/settings'Learn more about the path option on the Content Organisation page.
Preview URL
previewURL — used to configure Real-time Previews of your content.
Schema
schema — defines the fields that the singleton should have.
Type signature
Find the latest version of the Singleton type signature at: https://docsmill.dev/npm/@keystatic/core@latest#/.Singleton