Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
An Astro static theme for blogs, knowledge bases, and product documentation, with bilingual routing, Pagefind search, docs sidebars, and dark mode.

Content-first blog starter built with Next.js 16, React 19, Tailwind CSS v4 and Contentlayer2, with Markdown/MDX, Fuse.js search and dark mode.

Docsy is an Apache-2.0 Hugo theme for technical documentation sites, with built-in navigation, site structure, and PostCSS/Sass build support.
ermaozi is an Astro static site theme for blogs, knowledge bases, and product documentation, installed through the npm package create-astro-theme-ermaozi and heavily customized from VuePress Theme Plume.
ermaozi is an Astro static theme that turns Markdown files plus one site.config.mjs file into a deployable static site written to a dist/ directory. It handles three content types in a single project — blog posts, regular pages, and documentation — and ships bilingual Chinese and English routing with hreflang tags. The theme is maintained by ermaozi and published to npm, where npm create astro-theme-ermaozi resolves to the stable release of the generator package. It requires Node.js 22.12 or newer and works with npm, pnpm, or Yarn, with a live demo running at astro.ermao.net.
type accepts post, doc, or page; doc pages automatically get grouped sidebars, previous/next links, and mobile documentation navigation.content/blog/category/ and English content in content/en/blog/category/; a translationOf field points English entries at the Chinese route and the theme emits hreflang tags.npm run build followed by npm run preview.theme/styles/ (global variables, theme styles, and Plume compatibility styles) with UI components in theme/components/ and shared logic in theme/lib/.group, order, and badge fields set documentation sidebar grouping, sorting, and badges, and permalink pins stable URLs while file paths otherwise generate routes with leading numeric prefixes such as 1. stripped.site.config.mjs.translationOf and hreflang output to keep both routes connected.dist/ output.theme/components/, theme/lib/, and theme/scripts/audit.mjs, since the theme directory is shared between the generator template and regular sites.content/ with Markdown files, set tags and createTime in frontmatter, and get categories, tag pages, archives, and client-side pagination without touching theme code.content/docs/ and content/en/docs/, control sidebar grouping with group, order, and badge, and keep day-to-day edits limited to site.config.mjs and Markdown so theme updates stay easy.check, build, test, test:visual, audit, and validate — to catch configuration, SEO, privacy, unsafe markup, and responsive layout problems before deploying.npm create astro-theme-ermaozi my-site; an interactive wizard asks for Simplified Chinese or English as the root language and whether to show the language switcher. For automated setup, append the flags -- --yes --lang=en-US --multilingual.site.config.mjs for domain, site name, author, navigation, and optional services, replace public/img/logo.svg, and swap the sample content for your own Markdown.validate script, then build with npm run build and check the output with npm run preview; npm run deploy produces a deployable dist/ without uploading it, and pnpm users need pnpm run deploy to avoid a conflict with pnpm's built-in deploy command.ermaozi is free and open source: the project code is released under the MIT License, and the bundled VuePress Theme Plume compatibility styles keep their own preserved MIT license in theme/styles/vendor/LICENSE. The code license does not automatically cover articles, images, or third-party materials you add to a site.
Yes. Project code is licensed under the MIT License, and the Plume compatibility styles in theme/styles/vendor/ keep their original MIT license. The code license does not automatically cover the articles, images, or third-party materials you add to your own site.
ermaozi needs Node.js 22.12 or newer plus npm, pnpm, or Yarn. The dev script starts the Astro development server with hot reloading, and dev:fast remains available as a legacy alias for it.
No. Development mode does not generate a Pagefind index, so search returns nothing until you run a full build. Verify search and the production output by running the build command followed by the preview command.
No. The 0.2 series is still in beta: features and configuration are not yet fully stable and future releases may introduce breaking changes, so pin your version during the beta period and read the release notes before upgrading.
Yes for static content, since comments, view counts, likes, and popular posts are disabled by default and a purely static deployment needs no server. Enabling those features requires configured service URLs, and Algolia, Waline, Twikoo, and Artalk still need connections to real services. Static content encryption is not a substitute for server-side access control, so passwords and genuinely confidential content should not be committed to a public repository.
