# Updating

> Which version you are on, which three directories a release replaces, and the one step that is destructive by omission rather than by action.

Source: https://editor.astrocraftthemes.com/docs/updating/

## Which version am I on?

`src/admin/version.ts`. It travels with the copied source, which is the only thing you have — your repository shares no history with the template's, so there is no tag or commit of ours to read.

## Read the changelog first

`CHANGELOG.md` names **which directories each release touches**, because that is the question you actually have: what do I replace, and does anything of mine move?

Most releases are a drop-in replacement of three directories. The ones that are not say so, and name the host files to reconcile. Versions are semver against the **adoption surface** — the four host files and the shape of `admin.config.ts` — so a major bump means one of them changed and you have work to do.

## Ours and yours

Three directories are **ours**, and an update replaces them wholesale:

```text
src/admin/                    the CMS
src/components/primitives/    the UI library it sits on
src/components/svg/           the icon registry
```

Two are **yours**. They were seeded once when you installed and are never touched again:

```text
src/styles/    your theme
src/assets/    your logo and sign-in artwork
```

## If you copied the editor in

The path most people are on. Clone the version you want beside your project, then replace the three:

```bash
git clone --depth 1 --branch v1.1.0 \
  git@github.com:Astro-Craft-Theme/astro-starter.git /tmp/astrocraft

rm -rf src/admin src/components/primitives src/components/svg
cp -r /tmp/astrocraft/src/admin                  src/admin
cp -r /tmp/astrocraft/src/components/primitives  src/components/primitives
cp -r /tmp/astrocraft/src/components/svg         src/components/svg
```

> **Do not copy `src/styles/` or `src/assets/`.** They hold your theme and your logo. Nothing will warn you: the build still passes, the CMS still runs, and the first thing you notice is your own logo gone from the sign-in screen. This is the only genuinely destructive step on this page, and it is destructive **by omission** — it happens when you copy `src/` wholesale instead of naming the three.

Then reconcile whatever host files the changelog lists — usually none — and run the checks:

```bash
pnpm check && pnpm build
```

**`git diff` is the real review.** Everything you see should be ours. If your own files appear in it, you copied too much, and the two directories above are where to look first.

## If you cloned the template

You have the history, so a merge works. Once:

```bash
git remote add upstream git@github.com:Astro-Craft-Theme/astro-starter.git
```

Then, per release:

```bash
git fetch upstream --tags
git merge v1.1.0
```

Releases never touch `src/content/` or `src/pages/`, so the demo roastery you replaced on day one will not come back to fight you.

## If your updates have lapsed

Nothing stops. Your licence is perpetual and includes twelve months of updates from purchase. After that you keep everything you have, including Publish, and simply stop receiving new versions.

## Clearing the demo content

**Only if you cloned the template.** If you copied the editor into a site you already have, you never received any of this — the demo lives in `src/content/` and `src/pages/`, which are not among the directories you copied and which no release ever touches.

```bash
rm src/content/blog/*.md src/content/projects/*.md
```

> **Do not delete `src/content/` itself.** It also holds `feeds.ts`, which states the draft rule, the ordering and the entry-URL shape that RSS, `llms.txt` and the list pages all read — plus the tests beside it. Removing the directory takes part of the suite with it.

Then replace the pages in `src/pages/` with your own, define your collections in `src/content.config.ts`, and name them in `src/admin.config.ts`.

Nothing about the CMS assumes a blog. `collections` is a map, the list route is generic, and the sidebar's sections are generated from that map — which is why the demo deliberately ships two collections shaped differently from each other.

## Troubleshooting

**My logo is gone from the sign-in screen.** You re-copied `src/assets/`. Restore it from your own git history.

**`pnpm check` reports hundreds of errors after an update.** Usually the test runner again — a release that adds test files to a copy with no `vitest` installed reproduces the install-time failure. See [Installation](/docs/installation/).

**The build fails after an update naming a host file.** The changelog listed it under _Host files_. Reconcile it by hand; the three copied directories cannot do it for you, which is exactly why those four files are counted and named.

**`git diff` shows changes to files I wrote.** You copied too much. `src/styles/`, `src/assets/`, `src/admin.config.ts` and `src/site.domain.ts` are yours.