Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Beautiful, simple and easy-to-use blog theme for Astro v5 with dark mode, search, giscus comments, and RSS.
Charm is an open-source blog theme for Astro v5, distributed as the astro-charm integration, that turns a folder of Markdown posts into a fast static blog with search, dark mode, category and tag pages, RSS, sitemap, and GitHub-backed comments.
Charm is a blog theme built as an Astro integration for Astro v5. It takes Markdown content from an Astro project's content collection and generates a static blog site with built-in category and tag listing pages, a light/dark mode toggle, client-side search, and RSS and sitemap support. The theme is created by Yuhanawa, hosted on GitHub, and has a live demo deployed on Vercel.
pnpm astro add astro-charm or by creating a new project with pnpm create astro-theme@latest use astro-charm.twoslash or colorize-brackets in code fence info strings.site URL in astro.config.ts.title and published frontmatter, and deploy the generated static site.astro.config.ts for language, title, description, sidebar bio, navigation links, font behavior, and TOC settings.After installation, Charm registers an Astro integration that reads your site config and Markdown content collections. You add the provided collections from astro-charm/content to your project's src/content.config.ts, and you must set site in astro.config.ts for sitemap and RSS. The theme then generates static pages from posts in src/content/posts/.
Yes. The theme is publicly available on the GitHub repository, contributions and pull requests are welcome, and there are no paid tiers mentioned.
Create a new project with pnpm create astro-theme@latest use astro-charm, or add it to an existing Astro project with pnpm astro add astro-charm and merge the collection config as shown in the README.
Charm uses giscus, which relies on GitHub Discussions. You must provide the repository name, repository ID, category, and category ID in the giscus config object. The theme then injects the comment widget into each post.
Each Markdown post needs at least a title and a published date. Posts are stored in src/content/posts/, and the theme provides the collection schema through astro-charm/content.
Yes, the config schema supports options for language, title, description, sidebar title and bio, navigation and footer icons, font mode (including auto and disabled), TOC depth and minimum length, and a shooting star animation toggle.
