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.
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:
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:
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:
git clone --depth 1 --branch v1.1.0 \
[email protected]: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/orsrc/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 copysrc/wholesale instead of naming the three.
Then reconcile whatever host files the changelog lists — usually none — and run the checks:
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:
git remote add upstream [email protected]:Astro-Craft-Theme/astro-starter.git
Then, per release:
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.
rm src/content/blog/*.md src/content/projects/*.md
Do not delete
src/content/itself. It also holdsfeeds.ts, which states the draft rule, the ordering and the entry-URL shape that RSS,llms.txtand 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.
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.