Skip to content

Shatun website

Marketing site and docs for Shatun, built with VitePress.

Visual language matches the app SPA (resources/) — dark shell, terracotta accent, Inter.

Commands

bash
cd website
npm install
npm run dev      # http://localhost:5173
npm run build    # → .vitepress/dist
npm run preview  # serve production build

Layout

PathPurpose
index.mdLanding (English, default)
ru/, be/Russian and Belarusian mirrors
guide/Docs (Get started, Core features, Support)
changelog/Semver release notes (0.0.1.md, …)
.vitepress/config.tsLocales, nav, sidebar, outline, search
.vitepress/changelog.data.tsLoads + sorts changelog markdown
.vitepress/theme/Hero, capabilities, footer, styles

Languages

Same as the app: English, Русский, Беларуская (en / ru / be).
Paths: /, /ru/, /be/.

Changelog entries

Add a file per version, e.g. changelog/1.2.3.md:

md
---
version: 1.2.3
date: 2026-08-01
title: Optional title
---

## Highlights
-

Mirror under ru/changelog/ and be/changelog/ when translating. Newest semver appears first on the index.

Deploy (Cloudflare Pages)

On semver tag push (v*.*.* or *.*.*), .github/workflows/website.yml builds this package and deploys website/.vitepress/dist to Cloudflare Pages.

Secret / varRequiredNotes
CLOUDFLARE_API_TOKENyesAPI token with Account → Cloudflare Pages → Edit
CLOUDFLARE_ACCOUNT_IDyesCloudflare account id
CLOUDFLARE_PAGES_PROJECTnoPages project name (default shatun)
CLOUDFLARE_PAGES_BRANCHnoDeploy branch sent to Pages (default main). Must match the project’s Production branch in the Cloudflare dashboard, or the upload is a preview.

Custom domain: https://shatun.dev (attach in Cloudflare Pages → Custom domains).

Tag builds force --branch=main so production is updated even though the git ref is vX.Y.Z.

App UI remains in resources/ and is unrelated to this package at runtime.