GitPedia

Astro paper

A minimal, accessible and SEO-friendly Astro blog theme.

From satnaingยทUpdated June 15, 2026ยทView on GitHubยท

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). The project is written primarily in Astro, distributed under the MIT License license, first published in 2022. It has gained significant community traction with 4,733 stars and 1,000 forks on GitHub. Key topics include: a11y, accessibility, astro, astro-theme, astro-themes.

Latest release: v6.1.0

AstroPaper ๐Ÿ“„

AstroPaper
Figma
Typescript
GitHub
Conventional Commits
Commitizen friendly

AstroPaper is a minimal, responsive, accessible and SEO-friendly Astro blog theme. This theme is designed and crafted based on my personal blog.

Read the blog posts or check the README Documentation Section for more info.

๐Ÿ”ฅ Features

  • type-safe markdown
  • super fast performance
  • accessible (Keyboard/VoiceOver)
  • responsive (mobile ~ desktops)
  • SEO-friendly
  • light & dark mode
  • static search (Pagefind)
  • draft posts & pagination
  • sitemap & rss feed
  • MDX support
  • collapsible table of contents
  • followed best practices
  • highly customizable
  • dynamic OG image generation for blog posts (Blog Post)
  • 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.

๐Ÿ’ป Tech Stack

Main Framework - Astro
Type Checking - TypeScript
Styling - TailwindCSS
UI/UX - Figma Design File
Static Search - Pagefind
Icons - Tablers
Code Formatting - Prettier
Deployment - Cloudflare Pages
Linting - ESLint
Dynamic OG images - Satori + Sharp + Astro 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 by setting site.googleVerification in astro-paper.config.ts:

ts
export default defineAstroPaperConfig({ site: { // ... googleVerification: "your-google-site-verification-value", }, // ... });

See this discussion for adding AstroPaper to the Google Search Console.

๐Ÿงž Commands

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

CommandAction
pnpm installInstalls dependencies
pnpm devStarts local dev server at localhost:4321
pnpm buildType-checks, builds the site, runs Pagefind indexing, and copies the index to public/pagefind/
pnpm previewPreview your build locally, before deploying
pnpm syncGenerates TypeScript types for all Astro modules. Learn more.
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. 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 ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป and contributors.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub โ†’

This article is auto-generated from satnaing/astro-paper via the GitHub API.Last fetched: 6/15/2026