A runnable starting point for a Valaxy theme, with a separate demo that consumes the theme as a workspace package. Supports Valaxy 1.0.0-rc.14, Vue 3 and Vite 8. Requires Node.js 22.12+ and pnpm 10.
pnpm dlx degit valaxyjs/valaxy-theme-starter valaxy-theme-aurora
cd valaxy-theme-aurora
# Rename package references, configuration and component namespaces together.
pnpm theme:init aurora --owner your-github-name
pnpm install
pnpm devUse a lowercase kebab-case name without the valaxy-theme- prefix. --owner is optional. Initialization only runs on a fresh starter and refuses conflicting filenames. Review site metadata, package author and license attribution afterward. Retain existing copyright notices when reusing code.
Install the theme authoring Skill in your assistant's workspace:
pnpm dlx skills add YunYouJun/valaxy --skill valaxy-themeUse the Skill for the reusable development workflow and the brief generator for this theme’s audience, visual direction and required blog features. Choose Design brief + Skill when the Skill is installed, or Standalone prompt for an assistant without Skill support. You do not need to maintain two copies of the framework instructions. The Skill guides the assistant through framework APIs, accessible reading layouts, SSG and package verification. It runs in your coding assistant; this template does not call an AI service or require an API key.
Example request:
Create an editorial Valaxy theme for a personal engineering blog. Use serif headings, a warm paper palette and an archive with title and tag filtering. Include light/dark modes, a long article with an outline and a mobile layout. Keep theme options typed. Run the checks and verify a packed theme in a clean consumer before finishing.
theme/: the distributable package, with components, layouts, styles, typed configuration and setup.docs/: a Press documentation site for the new theme, with local search and guide pages.demo/: a real blog usingvalaxy-theme-starterthroughworkspace:*(renamed bytheme:init).scripts/init-theme.mjs: one-time package and component initialization.AGENTS.md: concise authoring guidance for coding assistants.
Valaxy discovers styles/index.ts, setup/main.ts, components/ and layouts/ automatically. components/ValaxyMain.vue receives the Markdown content slot. Render it through ValaxyMd so built-in Markdown enhancements continue to work. Keep layouts/ thin and namespace ordinary theme components.
pnpm lint # ESLint, Vue and formatting checks
pnpm build # SSG demo and docs builds; also generates declarations
pnpm docs:dev # develop theme documentation
pnpm build:site # assemble demo at / and docs at /docs/ in dist/
pnpm typecheck # Vue/TypeScript checks (run build first in a fresh checkout)
pnpm check # all checks, including initializer tests
pnpm pack:theme # writes a source-distributed .tgz under artifacts/Also inspect the homepage and a long article in desktop/mobile browsers, keyboard navigation and both color schemes. Check a non-root Vite base for subdirectory hosting. Before release, install the .tgz in a fresh Valaxy blog and build it: a workspace build alone does not prove package portability.
After reviewing package metadata and the packed archive, publish manually with pnpm --dir theme publish --access public --no-git-checks using your own npm credentials. The tag-triggered release workflow runs the checks and publishes the theme using your repository’s NPM_TOKEN secret. Configure it before creating a release tag. pnpm release runs the version helper; review its Git actions before accepting them.
CI exposes independent lint and typecheck jobs, plus Linux and Windows build/package checks on Node 22. pnpm check remains the local shortcut for all checks. The Pages workflow builds on pushes to main or manual dispatch and publishes the combined dist (demo at /, docs at /docs/) to gh-pages, preserving the starter’s branch-based hosting. In GitHub Pages settings, select Deploy from a branch, then gh-pages / (root). Set the demo Vite base and site URL for your hosting path, and remove or replace demo/public/CNAME if you use a custom domain.
MIT. The starter's original layout draws inspiration from vuejs/blog and tailwind-nextjs-starter-blog.
Keep installation, theme options, examples and upgrade notes in docs/pages/. Link to the Valaxy website for common framework instructions. Theme initialization updates the docs package, references and edit links while preserving theme: 'press'. Set the demo and docs site URLs after initialization; the placeholder domain is example.com. For subdirectory hosting, set the docs Vite base to the demo base followed by docs/. The documentation workspace is private and is not included in the theme package.
Valaxy and Press 1.0.0-rc.14 include the documentation and local-search fixes used here. The workspace consumes their published packages directly and does not require compatibility patches.
The documentation keeps one set of English content URLs and includes both English and Chinese interface translations. This preserves the language preference shared with the demo without creating duplicate /zh/ documentation pages.