Skip to content
Type something to search...
Kivo Theme Documentation

Deployment & Launch

Kivo builds a static site into dist/, so it runs on any static host. It ships ready-made settings for Netlify, Vercel, and Cloudflare Pages.

SettingValue
Build commandnpm run build
Output directorydist
Node.js version22.12.0 or later
Package managernpm (package-lock.json)

Before You Launch

Go through this list once. Each item links to the page that explains it.

  • [site] baseUrl is your real address, not the shipped https://example.com placeholder, and npm run build shows no [site] warning (SEO & AI Visibility)
  • Site name, logo, favicon, and colors are yours (Quick Start)
  • The contact form and the newsletter post to your own accounts (Forms)
  • The log-in and sign-up screens post to your app (form.action in src/content/auth/), or are deleted
  • docsUrl points to your documentation, and [settings.contactInfo] has your phone, email, and address
  • [settings.layoutSwitcher] enable = false (the default), and PUBLIC_DEMO_MODE is not set in your host’s environment variables
  • The Pages demo menu is hidden, and no menu link points to # (Menus)
  • Demo pages you don’t need are deleted, for example the demo homepages, /components/, /elements/, and /status/ if you don’t run a status page (Pages)
  • Demo content is replaced: features, customers, team, careers, blog, changelog, integrations, testimonials. The sample job roles are deleted or replaced with real openings (Collections)
  • The privacy policy, terms, and cookie policy are reviewed for your business, and their placeholder notices removed
  • Social links in src/config/social.json are yours
  • Analytics scripts are in [head], gated on consent if the cookie banner is on (Cookies & Analytics)
  • npm run astro-check and npm run build finish without errors, and you have looked at the section, contact, FAQ, and pricing pages you changed (astro-check doesn’t check those files)

Deploy

  1. Push your project to GitHub, GitLab, or Bitbucket.
  2. In Netlify, choose Add new site → Import an existing project and pick the repository.
  3. Netlify reads netlify.toml: build command npm run build, publish folder dist, Node.js 22. Click Deploy.

The build uses baseUrl from config.toml unless you add a SITE_URL environment variable in the Netlify site settings.

netlify.toml also sets long-term caching for /_astro/* and /images/*, and sends missing /fr/... URLs to the French 404 page. Add a block for each extra language.

Using Netlify Forms? Set contactFormProvider = "netlify" and contactFormAction = "/", enable form detection under Forms, and redeploy.

After You Launch

  1. Open the live site and click through the main pages, in light and dark mode, on a phone.
  2. Send a test message through the contact form, and sign up for the newsletter once.
  3. Test search (⌘K or Ctrl+K).
  4. Submit https://your-domain/sitemap-index.xml in Google Search Console and Bing Webmaster Tools.
  5. Optional: set [seo.ai] indexNowKey, deploy, and run npm run indexnow -- --all. After later deploys, run npm run indexnow.
  6. Share a link in a chat app to check the preview image.

Updating The Live Site

With a git-connected host, every push to your main branch deploys automatically. Build locally first (npm run build) to catch errors before they reach your visitors.