AstroBlogTool Site

astro-paper — Astro Blog Template

By satnaing

AstroPaper is a minimal Astro blog theme emphasizing responsiveness, accessibility, and SEO friendliness, with built-in static search, dark mode, RSS, and sitemap, suitable for personal tech blogs.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-09-30View source

What stands out

A quick read of the recorded project description.

01

Astro-based static blog theme, articles stored as Markdown/MDX in src/content/posts/, supports subdirectories that affect article URLs

02

Built-in Pagefind static search, generates index at build time and copies to public/pagefind/

03

Provides light and dark modes, draft articles, pagination, collapsible table of contents, RSS and sitemap

04

Supports i18n and can dynamically generate OG images for blog posts

05

Configuration centralized in astro-paper.config.ts, where site information and Google site verification can be adjusted

06

Under MIT license, allows free use, modification, commercial use, and distribution, requires retaining copyright and license notice

Template Details

AstroPaper is an open-source Astro blog theme designed by the author based on their personal blog, positioned as a minimal, responsive, accessible, and search-engine-friendly static blog template. Articles are stored as Markdown or MDX in the src/content/posts/ directory, and can be placed in subdirectories; the subdirectory name becomes part of the article URL. The theme provides light and dark modes, drafts and pagination, collapsible table of contents, RSS and sitemap, and uses Pagefind to implement a static search index generated at build time.

Configuration is centralized in astro-paper.config.ts, where site information, Google site verification, etc., can be set; the build process performs type checking, generates the site, and runs the Pagefind index. The theme supports i18n and can dynamically generate OG images for blog posts. The author states that accessibility testing covered VoiceOver on Mac and TalkBack on Android, and other screen readers were not individually tested.

Usage limitations: The code is under the MIT license, allowing free use, modification, commercial use, and distribution, but when distributing copies or substantial portions of the code, the copyright notice and full MIT license notice must be retained; third-party assets such as demo images, fonts, and icons need to be checked separately under their respective licenses. The theme is a static site, with search relying on the Pagefind index generated at build time, and does not include a server-side database or account system.

AstroBlogTool site

Is it right for your project?

Use Cases

  • Building a personal tech blog or writing site, managing articles with Markdown/MDX
  • Pure static content sites requiring static search, RSS, and sitemap
  • Blogs wanting to offer light/dark modes and accessibility support
  • Blog projects needing multilingual content and dynamic OG images

Suitable For

  • Individual bloggers using Astro and wanting a quick start
  • Developers preferring Markdown/MDX writing and static deployment
  • Site builders focusing on accessibility and basic SEO configuration
  • Projects needing static search without introducing external search services

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Can initialize the project via pnpm/npm/yarn/bun create astro command specifying the satnaing/astro-paper template

  2. 2

    Local development uses pnpm dev, default dev server address is localhost:4321

  3. 3

    Build uses pnpm build, which performs type checking, builds the site, runs Pagefind indexing, and copies to public/pagefind/

  4. 4

    Site information and Google site verification can be configured in astro-paper.config.ts

  5. 5

    Third-party assets such as demo images, fonts, and icons need to be checked under their respective licenses, and cannot be judged solely by the code's MIT license

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under 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

  • Allows free use, modification, commercial use, and distribution of this version's code.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • Code is provided as-is; warranties and liability limitations are governed by the original license and applicable law.

Additional costs & items to verify

  • Code is released under MIT license, allowing free use, modification, commercial use, and distribution; however, when distributing copies or substantial portions of the software, the above copyright notice and full MIT license text must be retained.
  • The author only tested accessibility with VoiceOver on Mac and TalkBack on Android, and did not individually verify other screen readers; accessibility on other screen readers is not guaranteed.
  • Google site verification is an optional feature, requiring you to provide verification values and relying on external services like Google Search Console, which may involve third-party accounts and terms.
  • The README uses Cloudflare Pages as a deployment example; actual deployment requires using the corresponding hosting service and complying with its account and fee terms.
  • Demo images, fonts, icons, and other third-party assets need to be checked under their respective licenses, and cannot be judged solely by the code's MIT license.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Licensed under the MIT License, Copyright © 2026

Original README

I've tested screen-reader accessibility of AstroPaper using **VoiceOver** on Mac and **TalkBack** on Android. I couldn't test all other screen-readers out there.

Original README

You can add your [Google Site Verification HTML tag]

Original README

**Deployment** - [Cloudflare Pages](https://pages.cloudflare.com/)

Original README
https://github.com/satnaing/astro-paper/blob/main/LICENSEhttps://github.com/satnaing/astro-paper/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 100 / 100
Technologies
Astro
Website type
Blog · Tool Site
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-09-18
Screenshot last checked
2026-10-01

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 807e30c765a22a8529465821252d4723e4d76f30b42acfec930ffa3a4377bb1e

2026-10-01T14:28:54.902Z

Source file / repository
# AstroPaper 📄

![AstroPaper](public/default-og.jpg)
[![Figma](https://img.shields.io/badge/Figma-F24E1E?style=for-the-badge&logo=figma&logoColor=white)](https://www.figma.com/community/file/1356898632249991861)
![Typescript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
![GitHub](https://img.shields.io/github/license/satnaing/astro-paper?color=%232F3741&style=for-the-badge)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white&style=for-the-badge)](https://conventionalcommits.org)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge)](http://commitizen.github.io/cz-cli/)

AstroPaper is a minimal, responsive, accessible and SEO-friendly Astro blog theme. This theme is designed and crafted based on [my personal blog](https://satnaing.dev/blog).

Read [the blog posts](https://astro-paper.pages.dev/posts/) or check [the README Documentation Section](#-documentation) for more info.

## 🔥 Features

- [x] type-safe markdown
- [x] super fast performance
- [x] accessible (Keyboard/VoiceOver)
- [x] responsive (mobile ~ desktops)
- [x] SEO-friendly
- [x] light & dark mode
- [x] static search ([Pagefind](https://pagefind.app/))
- [x] draft posts & pagination
- [x] sitemap & rss feed
- [x] MDX support
- [x] collapsible table of contents
- [x] followed best practices
- [x] highly customizable
- [x] dynamic OG image generation for blog posts ([Blog Post](https://astro-paper.pages.dev/posts/dynamic-og-image-generation-in-astropaper-blog-posts/))
- [x] i18n ready

_Note: I've tested screen-reader accessibility of AstroPaper using **VoiceOver** on Mac and **TalkBack** on Android. I couldn't test all other screen-readers out there. However, accessibility enhancements in AstroPaper should be working fine on others as well._

## ✅ Lighthouse Score

<p align="center">
  <a href="https://pagespeed.web.dev/report?url=https%3A%2F%2Fastro-paper.pages.dev%2F&form_factor=desktop">
    <img width="710" alt="AstroPaper Lighthouse Score" src="AstroPaper-lighthouse-score.svg">
  </a>
</p>

## 🚀 Project Structure

Inside of AstroPaper, you'll see the following folders and files:

```bash
/
├── public/
│   ├── pagefind/          # auto-generated on build
│   ├── favicon.svg
│   └── default-og.jpg
├── src/
│   ├── assets/
│   │   ├── icons/
│   │   └── images/
│   ├── components/
│   ├── content/
│   │   ├── pages/
│   │   │   └── about.md
│   │   └── posts/
│   │       └── some-blog-posts.md
│   ├── i18n/
│   ├── layouts/
│   ├── pages/
│   ├── scripts/
│   ├── styles/
│   ├── types/
│   ├── utils/
│   ├── config.ts
│   └── content.config.ts
├── astro-paper.config.ts  # user-defined configurations
└── astro.config.ts
```

All blog posts are stored in the `src/content/posts/` directory. You can organise posts into subdirectories — the subdirectory name becomes part of the post URL.

## 📖 Documentation

Documentation can be read in two formats\_ _markdown_ & _blog post_.

- Configuration - [markdown](src/content/posts/how-to-configure-astropaper-theme.md) | [blog post](https://astro-paper.pages.dev/posts/how-to-configure-astropaper-theme/)
- Add Posts - [markdown](src/content/posts/adding-new-post.md) | [blog post](https://astro-paper.pages.dev/posts/adding-new-posts-in-astropaper-theme/)
- Customize Color Schemes - [markdown](src/content/posts/customizing-astropaper-theme-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/customizing-astropaper-theme-color-schemes/)
- Predefined Color Schemes - [markdown](src/content/posts/predefined-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/predefined-color-schemes/)

## 💻 Tech Stack

**Main Framework** - [Astro](https://astro.build/)  
**Type Checking** - [TypeScript](https://www.typescriptlang.org/)  
**Styling** - [TailwindCSS](https://tailwindcss.com/)  
**UI/UX** - [Figma Design File](https://www.figma.com/community/file/1356898632249991861)  
**Static Search** - [Pagefind](https://pagefind.app/)  
**Icons** - [Tablers](https://tabler-icons.io/)  
**Code Formatting** - [Prettier](https://prettier.io/)  
**Deployment** - [Cloudflare Pages](https://pages.cloudflare.com/)  
**Linting** - [ESLint](https://eslint.org)  
**Dynamic OG images** - [Satori](https://github.com/vercel/satori) + [Sharp](https://sharp.pixelplumbing.com/) + [Astro Fonts](https://docs.astro.build/en/guides/fonts/)

## 👨🏻‍💻 Running Locally

You can start using this project locally by running the following command in your desired directory:

```bash
# pnpm
pnpm create astro@latest --template satnaing/astro-paper

# npm
npm create astro@latest -- --template satnaing/astro-paper

# yarn
yarn create astro --template satnaing/astro-paper

# bun
bun create astro@latest -- --template satnaing/astro-paper
```

Then start the project by running the following commands:

```bash
# install dependencies if you haven't done so in the previous step.
pnpm install

# start running the project
pnpm dev
```

## Google Site Verification (optional)

You can add your [Google Site Verification HTML tag](https://support.google.com/webmasters/answer/9008080#meta_tag_verification&zippy=%2Chtml-tag) by setting `site.googleVerification` in `astro-paper.config.ts`:

```ts file="astro-paper.config.ts"
export default defineAstroPaperConfig({
  site: {
    // ...
    googleVerification: "your-google-site-verification-value",
  },
  // ...
});
```

> See [this discussion](https://github.com/satnaing/astro-paper/discussions/334#discussioncomment-10139247) for adding AstroPaper to the Google Search Console.

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command          | Action                                                                                                                           |
| :--------------- | :------------------------------------------------------------------------------------------------------------------------------- |
| `pnpm install`   | Installs dependencies                                                                                                            |
| `pnpm dev`       | Starts local dev server at `localhost:4321`                                                                                      |
| `pnpm build`     | Type-checks, builds the site, runs Pagefind indexing, and copies the index to `public/pagefind/`                                 |
| `pnpm preview`   | Preview your build locally, before deploying                                                                                     |
| `pnpm sync`      | Generates TypeScript types for all Astro modules. [Learn more](https://docs.astro.build/en/reference/cli-reference/#astro-sync). |
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check`                                                                                 |

## ✨ Feedback & Suggestions

If you have any suggestions/feedback, you can contact me via [my email](mailto:[email protected]). Alternatively, feel free to open an issue if you find bugs or want to request new features.

## 📜 License

Licensed under the MIT License, Copyright © 2026

---

Made with 🤍 by [Sat Naing](https://satnaing.dev) 👨🏻‍💻 and [contributors](https://github.com/satnaing/astro-paper/graphs/contributors).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.