Installation Guide
Skill level: Beginner · Time: 10 minutes
You need two things on your computer: Node.js (the program that runs the theme) and a code editor to open the files. If you have never used a terminal before, read Tools You Need first.
Requirements
- Node.js 22.12.0 or later (declared in
package.json) - npm, which comes with Node.js. Kivo ships a
package-lock.json, so use npm rather than Yarn or pnpm - A code editor. VS Code is a good free choice; Kivo recommends its Astro, TOML, and Tailwind CSS extensions when you open the folder
Install Node.js
Download the LTS installer from nodejs.org and run it. Then open PowerShell and check the version:
node -vDownload the installer from nodejs.org, or use Homebrew:
brew install nodenode -vInstall Node.js with your package manager or the official installer, then check the version:
node -vThe result must be v22.12.0 or higher.
Run Kivo On Your Computer
-
Unzip the download. It contains three things:
themes/kivo/: the theme itself, the Astro project you work indocumentation.html: a shortcut that opens these docschangelog.html: a shortcut that opens the Kivo changelog online
Move the
kivofolder to wherever you keep your projects, then open it in your code editor. It is the folder that containspackage.jsonandREADME.md. -
Open a terminal inside that folder. In VS Code, use Terminal → New Terminal.
-
Install the dependencies (only needed once, and again after updates):
Terminal window npm cinpm ciinstalls the exact versions listed inpackage-lock.json.npm installworks too. -
Start the development server:
Terminal window npm run dev -
Open http://localhost:4321/ in your browser.
The theme’s README.md lists these same commands, where the main files live, and a short checklist for launch.
Leave the terminal running while you work. When you save a file, the browser updates on its own. Press Ctrl + C in the terminal to stop the server.
Build And Preview The Production Site
npm run buildnpm run previewnpm run build writes the finished site to the dist/ folder. npm run preview builds it again and serves it at http://localhost:4321/, so you can test it exactly as visitors will see it.
Until you set your own address in config.toml, the build prints a yellow [site] warning when the Astro step finishes (before the search index output): the theme ships with the placeholder https://example.com. That is expected on your computer; set the address before you deploy (Quick Start, step 1).
Every Script, In Plain Words
| Command | What it does |
|---|---|
npm run dev | Starts the local site with live reload |
npm run build | Builds the production site into dist/, creates the search index, and removes drafts from the sitemap. Warns while the site URL is still https://example.com |
npm run preview | Builds, then serves the production site locally |
npm run astro-check | Checks components and the content files that have a schema for mistakes. It doesn’t check section, contact, FAQ, or pricing files. Run it before you deploy |
npm run format | Tidies the formatting of files in src/ |
npm run generate-favicons | Creates every favicon size from [site.favicon] image in config.toml |
npm run generate-og-image | Redraws the shared social sharing image from your logo, colors, tagline, and description |
npm run remove-multilingual | Deletes every language except the default one. Read Internationalization first |
npm run generate-multilingual-content | Creates French from the English content and overwrites the existing French files. Don’t use it to add a language: see Internationalization |
npm run indexnow | Tells search engines which pages changed (after you set indexNowKey) |
npm run deploy:cf | Uploads dist/ to Cloudflare Pages. Needs Wrangler installed first (see Deployment) |
npm run toml:watch | Turns config.toml into .astro/config.generated.json. dev and build already run it |
Next: Quick Start, to make the site yours in about 30 minutes.