{"id":13398976,"url":"https://github.com/satnaing/astro-paper","last_synced_at":"2025-05-13T21:05:16.942Z","repository":{"id":58999226,"uuid":"534208492","full_name":"satnaing/astro-paper","owner":"satnaing","description":"A minimal, accessible and SEO-friendly Astro blog theme","archived":false,"fork":false,"pushed_at":"2025-03-22T10:27:00.000Z","size":4333,"stargazers_count":3276,"open_issues_count":40,"forks_count":653,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-12T03:19:12.392Z","etag":null,"topics":["a11y","accessibility","astro","astro-theme","blog","markdown","react","static-site","tailwindcss","template","theme","typescript"],"latest_commit_sha":null,"homepage":"https://astro-paper.pages.dev/","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satnaing.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["satnaing"],"buy_me_a_coffee":"satnaing"}},"created_at":"2022-09-08T12:46:37.000Z","updated_at":"2025-05-11T18:30:49.000Z","dependencies_parsed_at":"2024-01-22T05:32:39.091Z","dependency_job_id":"ce985ab3-81ca-44b2-9f0d-47f6e02a6bf6","html_url":"https://github.com/satnaing/astro-paper","commit_stats":{"total_commits":708,"total_committers":60,"mean_commits":11.8,"dds":"0.17090395480225984","last_synced_commit":"8bcf870072c808b1ac8adc52e6e3c38b7dc189b6"},"previous_names":[],"tags_count":32,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satnaing%2Fastro-paper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satnaing%2Fastro-paper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satnaing%2Fastro-paper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satnaing%2Fastro-paper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satnaing","download_url":"https://codeload.github.com/satnaing/astro-paper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028551,"owners_count":22002275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a11y","accessibility","astro","astro-theme","blog","markdown","react","static-site","tailwindcss","template","theme","typescript"],"created_at":"2024-07-30T19:00:33.138Z","updated_at":"2025-05-13T21:05:11.927Z","avatar_url":"https://github.com/satnaing.png","language":"Astro","funding_links":["https://github.com/sponsors/satnaing","https://buymeacoffee.com/satnaing"],"categories":["Astro","TypeScript","Other themes"],"sub_categories":[],"readme":"# AstroPaper 📄\n\n![AstroPaper](public/astropaper-og.jpg)\n[![Figma](https://img.shields.io/badge/Figma-F24E1E?style=for-the-badge\u0026logo=figma\u0026logoColor=white)](https://www.figma.com/community/file/1356898632249991861)\n![Typescript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![GitHub](https://img.shields.io/github/license/satnaing/astro-paper?color=%232F3741\u0026style=for-the-badge)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits\u0026logoColor=white\u0026style=for-the-badge)](https://conventionalcommits.org)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge)](http://commitizen.github.io/cz-cli/)\n\nAstroPaper 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).\n\nRead [the blog posts](https://astro-paper.pages.dev/posts/) or check [the README Documentation Section](#-documentation) for more info.\n\n## 🔥 Features\n\n- [x] type-safe markdown\n- [x] super fast performance\n- [x] accessible (Keyboard/VoiceOver)\n- [x] responsive (mobile ~ desktops)\n- [x] SEO-friendly\n- [x] light \u0026 dark mode\n- [x] fuzzy search\n- [x] draft posts \u0026 pagination\n- [x] sitemap \u0026 rss feed\n- [x] followed best practices\n- [x] highly customizable\n- [x] dynamic OG image generation for blog posts [#15](https://github.com/satnaing/astro-paper/pull/15) ([Blog Post](https://astro-paper.pages.dev/posts/dynamic-og-image-generation-in-astropaper-blog-posts/))\n\n_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._\n\n## ✅ Lighthouse Score\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pagespeed.web.dev/report?url=https%3A%2F%2Fastro-paper.pages.dev%2F\u0026form_factor=desktop\"\u003e\n    \u003cimg width=\"710\" alt=\"AstroPaper Lighthouse Score\" src=\"AstroPaper-lighthouse-score.svg\"\u003e\n  \u003ca\u003e\n\u003c/p\u003e\n\n## 🚀 Project Structure\n\nInside of AstroPaper, you'll see the following folders and files:\n\n```bash\n/\n├── public/\n│   ├── assets/\n|   ├── pagefind/ # auto-generated when build\n│   └── favicon.svg\n│   └── astropaper-og.jpg\n│   └── favicon.svg\n│   └── toggle-theme.js\n├── src/\n│   ├── assets/\n│   │   └── icons/\n│   │   └── images/\n│   ├── components/\n│   ├── data/\n│   │   └── blog/\n│   │       └── some-blog-posts.md\n│   ├── layouts/\n│   └── pages/\n│   └── styles/\n│   └── utils/\n│   └── config.ts\n│   └── constants.ts\n│   └── content.config.ts\n└── astro.config.ts\n```\n\nAstro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.\n\nAny static assets, like images, can be placed in the `public/` directory.\n\nAll blog posts are stored in `src/data/blog` directory.\n\n## 📖 Documentation\n\nDocumentation can be read in two formats\\_ _markdown_ \u0026 _blog post_.\n\n- Configuration - [markdown](src/data/blog/how-to-configure-astropaper-theme.md) | [blog post](https://astro-paper.pages.dev/posts/how-to-configure-astropaper-theme/)\n- Add Posts - [markdown](src/data/blog/adding-new-post.md) | [blog post](https://astro-paper.pages.dev/posts/adding-new-posts-in-astropaper-theme/)\n- Customize Color Schemes - [markdown](src/data/blog/customizing-astropaper-theme-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/customizing-astropaper-theme-color-schemes/)\n- Predefined Color Schemes - [markdown](src/data/blog/predefined-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/predefined-color-schemes/)\n\n## 💻 Tech Stack\n\n**Main Framework** - [Astro](https://astro.build/)  \n**Type Checking** - [TypeScript](https://www.typescriptlang.org/)  \n**Styling** - [TailwindCSS](https://tailwindcss.com/)  \n**UI/UX** - [Figma Design File](https://www.figma.com/community/file/1356898632249991861)  \n**Static Search** - [FuseJS](https://pagefind.app/)  \n**Icons** - [Tablers](https://tabler-icons.io/)  \n**Code Formatting** - [Prettier](https://prettier.io/)  \n**Deployment** - [Cloudflare Pages](https://pages.cloudflare.com/)  \n**Illustration in About Page** - [https://freesvgillustration.com](https://freesvgillustration.com/)  \n**Linting** - [ESLint](https://eslint.org)\n\n## 👨🏻‍💻 Running Locally\n\nYou can start using this project locally by running the following command in your desired directory:\n\n```bash\n# pnpm\npnpm create astro@latest --template satnaing/astro-paper\n\n# npm\nnpm create astro@latest -- --template satnaing/astro-paper\n\n# yarn\nyarn create astro --template satnaing/astro-paper\n```\n\nThen start the project by running the following commands:\n\n```bash\n# install dependencies if you haven't done so in the previous step.\npnpm install\n\n# start running the project\npnpm run dev\n```\n\nAs an alternative approach, if you have Docker installed, you can use Docker to run this project locally. Here's how:\n\n```bash\n# Build the Docker image\ndocker build -t astropaper .\n\n# Run the Docker container\ndocker run -p 4321:80 astropaper\n```\n\n## Google Site Verification (optional)\n\nYou can easily add your [Google Site Verification HTML tag](https://support.google.com/webmasters/answer/9008080#meta_tag_verification\u0026zippy=%2Chtml-tag) in AstroPaper using an environment variable. This step is optional. If you don't add the following environment variable, the google-site-verification tag won't appear in the HTML `\u003chead\u003e` section.\n\n```bash\n# in your environment variable file (.env)\nPUBLIC_GOOGLE_SITE_VERIFICATION=your-google-site-verification-value\n```\n\n\u003e See [this discussion](https://github.com/satnaing/astro-paper/discussions/334#discussioncomment-10139247) for adding AstroPaper to the Google Search Console.\n\n## 🧞 Commands\n\nAll commands are run from the root of the project, from a terminal:\n\n\u003e **_Note!_** For `Docker` commands we must have it [installed](https://docs.docker.com/engine/install/) in your machine.\n\n| Command                              | Action                                                                                                                           |\n| :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |\n| `pnpm install`                       | Installs dependencies                                                                                                            |\n| `pnpm run dev`                       | Starts local dev server at `localhost:4321`                                                                                      |\n| `pnpm run build`                     | Build your production site to `./dist/`                                                                                          |\n| `pnpm run preview`                   | Preview your build locally, before deploying                                                                                     |\n| `pnpm run format:check`              | Check code format with Prettier                                                                                                  |\n| `pnpm run format`                    | Format codes with Prettier                                                                                                       |\n| `pnpm run sync`                      | Generates TypeScript types for all Astro modules. [Learn more](https://docs.astro.build/en/reference/cli-reference/#astro-sync). |\n| `pnpm run lint`                      | Lint with ESLint                                                                                                                 |\n| `docker compose up -d`               | Run AstroPaper on docker, You can access with the same hostname and port informed on `dev` command.                              |\n| `docker compose run app npm install` | You can run any command above into the docker container.                                                                         |\n| `docker build -t astropaper .`       | Build Docker image for AstroPaper.                                                                                               |\n| `docker run -p 4321:80 astropaper`   | Run AstroPaper on Docker. The website will be accessible at `http://localhost:4321`.                                             |\n\n\u003e **_Warning!_** Windows PowerShell users may need to install the [concurrently package](https://www.npmjs.com/package/concurrently) if they want to [run diagnostics](https://docs.astro.build/en/reference/cli-reference/#astro-check) during development (`astro check --watch \u0026 astro dev`). For more info, see [this issue](https://github.com/satnaing/astro-paper/issues/113).\n\n## ✨ Feedback \u0026 Suggestions\n\nIf you have any suggestions/feedback, you can contact me via [my email](mailto:contact@satnaing.dev). Alternatively, feel free to open an issue if you find bugs or want to request new features.\n\n## 📜 License\n\nLicensed under the MIT License, Copyright © 2025\n\n---\n\nMade with 🤍 by [Sat Naing](https://satnaing.dev) 👨🏻‍💻 and [contributors](https://github.com/satnaing/astro-paper/graphs/contributors).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatnaing%2Fastro-paper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatnaing%2Fastro-paper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatnaing%2Fastro-paper/lists"}