Generates static sites with Astro, uses Tailwind CSS for styling, and provides page transition animations via Swup
Firefly — Astro Blog Template
By slepoh
Firefly is an Astro-based static blog theme template, forked and extended from Fuwari, offering a multilingual interface, Pagefind full-text search, multiple wallpaper and sidebar layouts, and configurable site appearance and features.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Built-in i18n with UI support for Simplified Chinese, Traditional Chinese, English, Japanese, Russian, and Korean
Client-side full-text search using Pagefind, capable of indexing post content
Wallpaper supports banner, fullscreen, fullscreen transparent, and solid color modes, with 360° hue adjustment for theme colors
Sidebar supports single or dual sidebars, and post lists support single-column list and grid (multi-column/masonry) layouts
Extended Markdown syntax includes four styles of admonitions, GitHub repository cards, and Expressive Code enhanced code blocks
Template Details
Firefly is an Astro-based static blog theme template maintained by slepoh. The repository describes it as a secondary development based on Fuwari. The template uses Astro to generate static sites, Tailwind CSS for styling, and Swup for page transition animations. The interface includes built-in i18n, with UI support for Simplified Chinese, Traditional Chinese, English, Japanese, Russian, and Korean; search is handled client-side by Pagefind and can index post content.
For appearance and layout, the template offers single-sidebar and dual-sidebar configurations, post lists support single-column list and grid (multi-column/masonry) layouts, wallpaper modes include banner wallpaper, fullscreen wallpaper, fullscreen transparent wallpaper, and solid color background, theme colors support 360° hue adjustment, and switching among light, dark, and system-follow modes. The navbar logo, title, and links, as well as footer HTML content, are customizable; fonts, cover images, announcements, comments, music player, live2d, gallery, friend links, and sponsorship modules each correspond to separate configuration files under src/config/.
For content writing, posts use Markdown/MDX, and frontmatter supports fields such as title, publish date, description, cover image, tags, categories, draft, language, pinned, and comment toggle. In addition to GitHub Flavored Markdown, it provides admonitions (supporting GitHub, Obsidian, VitePress, and Docusaurus styles), GitHub repository cards, and enhanced code blocks based on Expressive Code, with integrated Mermaid and PlantUML diagram configuration. Dynamic content is stored in src/content/dynamic/, where one dynamic entry corresponds to one Markdown file, and it can also connect to Memos as a data source.
The project also has a separate repository, Firefly-Admin, which remotely manages TS configuration files and md/mdx content via the GitHub API, committing to GitHub on save, and can work with Cloudflare for automatic redeployment. Local development requires Node.js ≥ 22 and pnpm ≥ 9. Common commands include pnpm dev, pnpm build, pnpm preview, pnpm check, pnpm format, as well as pnpm new-post and pnpm new-d for creating posts and dynamic entries. Deployment can follow the official Astro guide; platforms like Vercel and Netlify automatically select adapters based on the environment, and build output goes to dist.
Regarding usage limitations, the repository uses the MIT license, allowing free use, modification, commercial use, and distribution of this version of the code, provided the copyright notice and full MIT license notice are retained when distributing, and the code is provided as-is. Third-party assets such as demo images, fonts, and icons must be checked separately under their respective licenses; external services such as domains and hosting may incur additional charges. The template does not state performance metrics or production environment behavior in the materials, so actual results need to be verified by building it yourself.
Is it right for your project?
Use Cases
- Building a personal static blog written in Markdown/MDX that needs a multilingual interface
- Wanting to adjust appearance details such as sidebar, wallpaper, theme color, fonts, and footer via configuration files
- Needing common blog capabilities such as client-side full-text search, pinned posts, drafts, categories, and tags
- Remotely managing content via Firefly-Admin with the GitHub API, triggering automatic redeployment on save
- Deploying the site to static hosting platforms such as Vercel, Netlify, and Cloudflare Pages
Suitable For
- Developers familiar with Astro or willing to modify src/config/ configuration files according to the documentation
- Personal blog authors who write in Markdown/MDX and need a multilingual UI
- Sites that need configurable layouts such as single/dual sidebars and list or grid layouts
- Users planning to manage content with a GitHub repository and deploy to a static hosting platform
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Local environment requires Node.js ≥ 22 and pnpm ≥ 9; after cloning the repository, run pnpm install to install dependencies
- 2
Blog settings are centralized in the src/config/ directory; the site language is set in siteConfig.ts via SITE_LANG
- 3
Start the development server with pnpm dev, default address http://localhost:4321; build with pnpm build, output goes to dist
- 4
When deploying, choose Astro as the framework preset, build command pnpm run build, install command pnpm install, output directory dist
- 5
Third-party assets such as demo images, fonts, and icons must be checked separately under their respective licenses; do not judge solely by the code's MIT license
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version of the code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses; do not judge solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- The README recommends forking to your own repository before cloning and suggests starring before forking; this is recommended guidance, not a mandatory usage restriction.
- To use the Memos dynamic data source, you need to deploy or connect to a Memos service yourself and configure the memos option in dynamicConfig.ts; this is an optional external service dependency.
- Deployment requires third-party hosting platforms such as Vercel, Netlify, Cloudflare Pages, and EdgeOne Pages; these external services may incur costs or require accounts.
- The admin management feature depends on the separate Firefly-Admin repository and operates on content via the GitHub API, requiring a GitHub account and appropriate permissions.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
**先 [Fork](https://github.com/CuteLeaf/Firefly/fork) 到自己仓库再克隆(推荐),记得先点 Star 再 Fork 哦!**
Original README
也支持对接 [Memos](https://www.usememos.com/) 作为数据源,在 `src/config/dynamicConfig.ts` 中配置 `memos` 选项即可实时获取 Memos 动态
Original README
**参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, Cloudflare Pages, EdgeOne Pages 等。**
Original README
https://github.com/slepoh/Firefly/blob/master/LICENSEhttps://github.com/slepoh/Firefly/blob/master/README.md([Firefly-Admin](https://github.com/slepoh/Firefly-Admin))专为Firefly开发的一款内容管理后台,让Firefly的TS文件及md/mdx后缀的文件可视化管理,直接通过 GitHub API 远程增删改博客内容
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 80 / 100
- Technologies
- Astro
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-21
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-13
Inspect the recorded source material
SHA-256: e85a1398afe3f91591d0e520d59fb15d9982b6be74b3884f0cf6fa93f8c168f9
2026-10-13T01:24:28.479Z
Source file / repository⚡ 静态站点生成: 基于 Astro 的超快加载速度和 SEO 优化 🎨 现代化设计: 简洁美观的界面,支持自定义主题色 📱 移动友好: 完美的响应式体验,移动端专项优化 🔧 高度可配置: 大部分功能模块均可通过配置文件自定义 ## 后台管理 ([Firefly-Admin](https://github.com/slepoh/Firefly-Admin))专为Firefly开发的一款内容管理后台,让Firefly的TS文件及md/mdx后缀的文件可视化管理,直接通过 GitHub API 远程增删改博客内容、配置博客信息等操作, 保存即提交到 GitHub,Cloudflare 自动重新部署。 ## ✨ 功能特性 ### 核心功能 - [x] **Astro + Tailwind CSS** - 基于现代技术栈的超快静态站点生成 - [x] **流畅动画** - Swup 页面过渡动画,提供丝滑的浏览体验 - [x] **响应式设计** - 完美适配桌面端、平板和移动设备 - [x] **多语言支持** - i18n 国际化,UI 支持简体中文、繁体中文、英文、日文、俄语、韩文 - [x] **全文搜索** - 基于 Pagefind 的客户端搜索,支持文章内容索引 ### 个性化 - [x] **动态侧边栏** - 支持配置单侧边栏、双侧边栏 - [x] **文章布局** - 支持配置(单列)列表、网格(多列/瀑布流)布局 - [x] **字体管理** - 支持自定义字体,丰富的字体选择器 - [x] **页脚配置** - HTML 内容注入,完全自定义 - [x] **亮暗色模式** - 支持亮色/暗色/跟随系统三种模式 - [x] **导航栏自定义** - Logo、标题、链接全面自定义 - [x] **壁纸模式切换** - 横幅壁纸、全屏壁纸、全屏透明壁纸、纯色背景 - [x] **主题色自定义** - 360° 色相调节 如果你有好用的功能和优化,请提交 [Pull Request](https://github.com/CuteLeaf/Firefly/pulls) ## 🚀 快速开始 ### 环境要求 - Node.js ≥ 22 - pnpm ≥ 9 ### 本地开发部署 1. **克隆仓库:** ```bash git clone https://github.com/Cuteleaf/Firefly.git cd Firefly ``` **先 [Fork](https://github.com/CuteLeaf/Firefly/fork) 到自己仓库再克隆(推荐),记得先点 Star 再 Fork 哦!** ```bash git clone https://github.com/you-github-name/Firefly.git cd Firefly ``` 3. **安装依赖:** ```bash # 如果没有安装 pnpm,先安装 npm install -g pnpm # 安装项目依赖 pnpm install ``` 4. **配置博客:** - 编辑 `src/config/` 目录下的配置文件自定义博客设置 5. **启动开发服务器:** ```bash pnpm dev ``` 博客将在 `http://localhost:4321` 可用 ### 社区教程 Cloudflare Workers 部署:[【不用服务器,无需备案,零成本搭建一个自己的个人博客】](https://www.bilibili.com/video/BV1hX9XBKEhm) ### 平台托管部署 - **参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, Cloudflare Pages, EdgeOne Pages 等。** - **Vercel**、**Netlify** 等主流平台自动部署,会根据环境自动选择适配器。 框架预设: `Astro` 根目录: `./` 输出目录: `dist` 构建命令: `pnpm run build` 安装命令: `pnpm install` [](https://vercel.com/new/clone?repository-url=https://github.com/CuteLeaf/Firefly&project-name=Firefly&repository-name=Firefly) [](https://app.netlify.com/start/deploy?repository=https://github.com/CuteLeaf/Firefly) ## 📖 配置说明 > 📚 **详细配置文档**: 查看 [Firefly 使用文档](https://docs-firefly.cuteleaf.cn/) 获取完整的配置指南 ### 设置网站语言 要设置博客的默认语言,请编辑 `src/config/siteConfig.ts` 文件: ```typescript // 定义站点语言 const SITE_LANG = "zh_CN"; ``` **支持的语言代码:** - `zh_CN` - 简体中文 - `zh_TW` - 繁体中文 - `en` - 英文 - `ja` - 日文 - `ru` - 俄文 - `ko` - 韩文 ### 配置文件结构 ``` src/ ├── config/ │ ├── index.ts # 配置索引文件 │ ├── siteConfig.ts # 站点基础配置 │ ├── analyticsConfig.ts # 统计分析配置 │ ├── announcementConfig.ts # 公告配置 │ ├── backgroundWallpaper.ts # 背景壁纸配置 │ ├── commentConfig.ts # 评论系统配置 │ ├── coverImageConfig.ts # 封面图配置 │ ├── displaySettingsConfig.ts # 设置面板配置 │ ├── dynamicConfig.ts # 动态页面配置 │ ├── effectsConfig.ts # 动画特效配置(樱花等) │ ├── expressiveCodeConfig.ts # 代码高亮配置 │ ├── fontConfig.ts # 字体配置 │ ├── footerConfig.ts # 页脚配置 │ ├── friendsConfig.ts # 友链配置 │ ├── galleryConfig.ts # 相册配置 │ ├── licenseConfig.ts # 许可证配置 │ ├── musicConfig.ts # 音乐播放器配置 │ ├── navBarConfig.ts # 导航栏配置 │ ├── pioConfig.ts # 看板娘配置 │ ├── mermaidConfig.ts # Mermaid 图表配置 │ ├── plantumlConfig.ts # PlantUML 图表配置 │ ├── profileConfig.ts # 用户资料配置 │ ├── sidebarConfig.ts # 侧边栏布局配置 │ └── sponsorConfig.ts # 打赏配置 ``` ## ⚙️ 文章 Frontmatter ```yaml --- title: My First Blog Post published: 2023-09-09 description: This is the first post of my new Astro blog. image: ./cover.jpg # 或使用 "api" 来启用随机封面图 tags: [Foo, Bar] category: Front-end draft: false lang: zh-CN # 仅当文章语言与 `siteConfig.ts` 中的网站语言不同时需要设置 pinned: false # 置顶 comment: true # 是否允许评论 --- ``` ## 动态 动态文件保存在 `src/content/dynamic/` 中,一个 Markdown 文件对应一条动态。可以使用快捷命令创建: ```bash pnpm new-d 今天心情不错,出去吃了一顿火锅 ``` `pnpm new-dynamic <content>` 也可以使用,和 `new-d` 完全等价。 ```yaml --- published: 2026-07-15 16:15:29 pinned: true # 置顶 location: China # 位置 --- 动态内容可以使用 Markdown 语法。 ``` 也支持对接 [Memos](https://www.usememos.com/) 作为数据源,在 `src/config/dynamicConfig.ts` 中配置 `memos` 选项即可实时获取 Memos 动态,支持置顶同步和图片附件展示。详见[动态文档](https://docs-firefly.cuteleaf.cn/zh/guide/dynamic.html)。 ## 🧩 Markdown 扩展语法 除了 Astro 默认支持的 [GitHub Flavored Markdown](https://github.github.com/gfm/) 之外,还包含了一些额外的 Markdown 功能: - 提醒块(Admonitions) - 支持 GitHub, Obsidian, VitePress, Docusaurus 四种风格主题配置 ([预览和用法](https://firefly.cuteleaf.cn/posts/markdown-extended/)) - GitHub 仓库卡片 ([预览和用法](https://firefly.cuteleaf.cn/posts/markdown-extended/)) - 基于 Expressive Code 的增强代码块 ([预览](http://firefly.cuteleaf.cn/posts/code-examples/) / [文档](https://expressive-code.com/)) ## 🧞 指令 下列指令均需要在项目根目录执行: | Command | Action | | :------------------------- | :------------------------------------- | | `pnpm install` | 安装依赖 | | `pnpm dev` | 在 `localhost:4321` 启动本地开发服务器 | | `pnpm build` | 构建网站至 `./dist/` | | `pnpm preview` | 本地预览已构建的网站 | | `pnpm check` | 检查代码中的错误 | | `pnpm format` | 使用 Biome 格式化您的代码 | | `pnpm new-post <filename>` | 创建新文章 | | `pnpm new-d <content>` | 创建一条动态 | | `pnpm new-dynamic <content>` | 创建一条动态(完整命令) | | `pnpm astro ...` | 执行 `astro add`, `astro check` 等指令 | | `pnpm astro --help` | 显示 Astro CLI 帮助 |
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
