sitereal
v0.1

Ship & extend

Presets

Carrying a way of building into the next project, without carrying the site.

A preset is how you build, not which site this is: the design system, variables, global styles, components, templates, snippets, and the settings that describe your way of working. Save one from a project you like, apply it to the next.

What is in one

CarriedNot carried
the design system (all eleven modules)pages
variablesthe site name, URL and social links
global stylesheetsverification tokens
components, templates, snippetsthe homepage route
the settings about workinganything about this site's identity

The split is deliberate: name, URL, social links and verification tokens describe one site, so they are their own part, off by default. The homepage route is never carried at all.

Applying one

Lists merge by meaningful name — a variable by its slug, a font by its family — never by id. Ids are per project, so merging by id would duplicate every entry. A preset is a button you press to gain something, not a way to lose work.

You choose which parts to apply. Taking only the design system from one preset and the components from another is a normal thing to do.

The default for new projects

Mark a preset as the one new projects start from and it is applied before the project file is first written — so the project has never existed without your design system, and the engine generates the token sheet from it on first open exactly as it would after any other change.

The site name you typed a moment earlier survives, because identity is not what a preset carries.

Where they live

In the app's own config folder, not inside any project — which is what lets one be the default for all of them.

Good uses

  • A house style. Your colour roles, your type scale, your button variants, your callout component — every project starts there.
  • A client kit. One preset per client, so a second site for them starts identical.
  • A starting point to throw away. Apply it, then change everything; a preset is a copy, not a link.