AstroStarter

chirping-astro-starter — Astro Starter Template

By kannansuresh

An Astro starter template for the Chirping Astro theme, with built-in multilingual support, Tailwind CSS, daisyUI, Pagefind search, Giscus comments, Mermaid diagrams, and KaTeX math, plus a GitHub Pages deployment workflow.

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-10-02View source

What stands out

A quick read of the recorded project description.

01

An Astro-based blog starter template, with the repository automatically synced from the main Chirping Astro repository

02

English and French bilingual content structures by default, switchable to single-language mode via configuration

03

Integrates Tailwind CSS, daisyUI, Pagefind search, Giscus comments, Mermaid diagrams, and KaTeX math

04

Includes a GitHub Actions workflow that builds and deploys to GitHub Pages after pushes to the main branch

05

Site title, author, navigation, social links, avatar, and favicon are modified centrally in configuration files and asset directories

06

Extended features such as comments and social links are enabled as needed through optional environment variables

Template Details

This is a starter template for the Chirping Astro blog theme. The repository is automatically synced from the main repository and is intended for quickly setting up an Astro-based blog site. The template provides English and French bilingual content structures by default, including sample posts and bilingual privacy policy pages, and can be switched to single-language mode via configuration.

In terms of features, the template integrates Tailwind CSS and daisyUI for styling, Pagefind for site search, Giscus for comments based on GitHub Discussions, Mermaid for drawing diagrams, and KaTeX for rendering mathematical formulas. The site title, author, navigation, social links, avatar, favicon, and default OG image can all be modified in src/config.ts or the corresponding asset directories.

For deployment, the repository includes a GitHub Actions workflow that builds the site on pushes to the main branch and automatically deploys it once GitHub Pages is enabled; the workflow can automatically detect custom domains and subpaths. Extended features such as comments and social links are enabled as needed through environment variables. All variables are optional, and the site can be built and deployed with zero configuration.

Usage limitations: this starter repository is automatically synced, so PRs should not be submitted here; issues and contributions should go to the main repository. Third-party assets such as demo images, fonts, and icons must be checked separately for licensing. External services such as domains and hosting may incur costs.

AstroStarter

Is it right for your project?

Use Cases

  • Quickly setting up a personal blog or technical writing site with Astro
  • Blog projects that need multilingual (English/French) content structures
  • Static sites that want integrated site search, comments, diagrams, and math formulas
  • Repositories that automatically deploy blogs via GitHub Pages

Suitable For

  • Developers familiar with Astro or willing to configure it according to the README
  • Individual authors who need a multilingual blog starter template
  • Users planning to host their site on GitHub Pages
  • Projects that need Markdown/MDX writing with search, comments, diagrams, and formula capabilities

Getting started & customization

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

  1. 1

    It is recommended to create the project with bunx create-astro@latest --template kannansuresh/chirping-astro-starter, or clone the repository directly and run bun install

  2. 2

    Edit src/config.ts to set the site title, author, and social links, and copy .env.example to .env to fill in variables

  3. 3

    Replace avatar.svg, favicon.svg, and og-default.svg under src/assets/images/site/, and write posts in src/content/posts/en/

  4. 4

    Before deployment, set Source to GitHub Actions in the repository Settings → Pages; if the first run occurs before Pages is enabled, the workflow must be triggered again

  5. 5

    To enable comments, install the Giscus app and obtain parameters from giscus.app, then enable it through the github-pages environment variables

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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 mean that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially, and distributed for free.
  • 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 and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • This starter repository is automatically synced from the main repository, so PRs should not be submitted here; changes will be overwritten on the next sync. Issue reports and contributions should go to the main repository.
  • Enabling comments requires installing the Giscus app in the repository and filling in repository information on giscus.app to obtain parameters, which is a configuration step that depends on external services and accounts.
  • Deploying to GitHub Pages requires setting the Pages source to GitHub Actions in the repository settings, which depends on the GitHub platform service.
  • If GitHub Pages is not enabled, the workflow only builds and skips the deployment step; Pages must be enabled first to publish the site.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

> **This starter repository is automatically synced from the [main Chirping Astro repository](https://github.com/kannansuresh/chirping-astro).** Please do not open pull requests here — changes will be overwritten on the next sync.

Original README

1. Install the [Giscus app](https://github.com/apps/giscus) on your repo. 2. Go to [giscus.app](https://giscus.app), fill in your repo details, and copy the generated values.

Original README

Go to your repo **Settings → Pages → Source** and select **GitHub Actions**.

Original README

> If Pages is not enabled yet, the workflow still builds but skips the deploy step.

Original README
https://github.com/kannansuresh/chirping-astro-starter/blob/main/LICENSEhttps://github.com/kannansuresh/chirping-astro-starter/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-04. 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 · 83 / 100
Technologies
Astro
Website type
Starter
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-02
Screenshot last checked
2026-10-04

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-05

Inspect the recorded source material

SHA-256: 680a7f370d04e09518c00245f9594b9ffe9bbf1c39316976cab3fdcc2518f454

2026-10-04T21:20:22.585Z

Source file / repository
# Chirping Astro Starter

A minimal starter template for [Chirping Astro](https://github.com/kannansuresh/chirping-astro) — a Chirpy-inspired, multilingual **Astro v7** blog theme with **Tailwind CSS v4**, **daisyUI v5**, **Pagefind** search, **Giscus** comments, **Mermaid** diagrams, and **KaTeX** math.

> **Live demo:** [https://kannansuresh.github.io/chirping-astro](https://kannansuresh.github.io/chirping-astro)

## Quick Start

### Option 1: Astro CLI (recommended)

```bash
bunx create-astro@latest --template kannansuresh/chirping-astro-starter
```

The wizard will prompt you for a project name, install dependencies, and initialize git.

### Option 2: Clone directly

```bash
git clone https://github.com/kannansuresh/chirping-astro-starter.git my-blog
cd my-blog
bun install
```

### Start dev server

```bash
bun dev
```

Open [http://localhost:4321](http://localhost:4321) to see your site.

## Configuration

1. Edit `src/config.ts` to set your site title, author name, and social links.
2. Copy `.env.example` to `.env` and fill in your values.
3. Replace `src/assets/images/site/avatar.svg` with your own avatar.
4. Replace `src/assets/images/site/favicon.svg` with your own favicon.
5. Start writing posts in `src/content/posts/en/`.

## Writing Posts

Create a new `.md` or `.mdx` file in `src/content/posts/en/`:

```markdown
---
title: 'My First Post'
description: 'A short summary of this post.'
pubDate: 2026-01-01
tags: [hello, world]
categories: [General]
---

Your content here...
```

See the included sample post for all available frontmatter fields.

## Deploy to GitHub Pages

The included `.github/workflows/deploy.yml` builds your site on every push to `main`.
Deployment runs automatically once GitHub Pages is enabled for the repository.
To set it up:

### 1. Enable GitHub Pages

Go to your repo **Settings → Pages → Source** and select **GitHub Actions**.

> If Pages is not enabled yet, the workflow still builds but skips the deploy step.

### 2. Set environment variables (optional)

Go to **Settings → Environments → github-pages → Environment variables** and add any of:

| Variable                    | Purpose                               | Default              |
| --------------------------- | ------------------------------------- | -------------------- |
| `SITE_URL`                  | Your production URL                   | Auto-detected        |
| `BASE_PATH`                 | Sub-path for the site                 | Auto-detected        |
| `PUBLIC_GITHUB_HANDLE`      | GitHub profile link in sidebar        | Your GitHub username |
| `PUBLIC_TWITTER_HANDLE`     | Twitter/X link in sidebar             | _(none)_             |
| `PUBLIC_CONTACT_EMAIL`      | Email link in sidebar                 | _(none)_             |
| `PUBLIC_GISCUS_ENABLED`     | Enable comments (`true`/`false`)      | _(none)_             |
| `PUBLIC_GISCUS_REPO`        | `owner/repo` for Giscus               | _(none)_             |
| `PUBLIC_GISCUS_REPO_ID`     | From [giscus.app](https://giscus.app) | _(none)_             |
| `PUBLIC_GISCUS_CATEGORY`    | Discussion category name              | _(none)_             |
| `PUBLIC_GISCUS_CATEGORY_ID` | From [giscus.app](https://giscus.app) | _(none)_             |

> **Note:** All variables are optional. The site builds and deploys with zero configuration — variables just enable extra features.

### 3. Customize the Privacy Policy (optional)

Edit the bilingual privacy policy templates:

```text
src/content/pages/en/privacy.md
src/content/pages/fr/privacy.md
```

Replace placeholder values in `[BRACKETS]` (site name, contact email, etc.).
The privacy policy appears in the footer with a link — disable it by setting
`showPrivacyPolicy: false` in `src/config.ts`.

### 4. Push to `main`

That's it. The workflow will build and deploy your site. Your site will be available at `https://<username>.github.io/<repo-name>/`.

### 5. Run (or re-run) the deploy workflow after enabling Pages

If your first workflow run happened before step 1, deploy was skipped by design.
After enabling Pages, trigger deployment with either option:

1. Push any new commit to `main`.
2. Or go to **Actions → Deploy to GitHub Pages → Run workflow**.

The next run will execute the deploy job and publish your site.

## Custom Domain

### Dedicated domain for this site

To use your own domain (e.g., `https://blog.example.com`) exclusively for this site:

1. Configure your DNS and repository settings — see [GitHub's custom domain docs](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site).
2. The workflow automatically detects custom domains and configures `SITE_URL` and `BASE_PATH` correctly. **No manual configuration is needed at all** — it works out of the box!

### Using a custom domain on your GitHub user site

If your GitHub user site (`<username>.github.io`) already points to a custom domain (e.g., `example.com`), then **all project sites** under that account are automatically served under that domain:

```text
username.github.io        → example.com          (user site)
username.github.io/blog   → example.com/blog     (this repo)
```

In this case, you don't need any extra DNS setup. The workflow detects the origin (`example.com`) and path (`/blog`) and configures it automatically!

## Giscus Comments

To enable GitHub Discussions-powered comments on posts:

1. Install the [Giscus app](https://github.com/apps/giscus) on your repo.
2. Go to [giscus.app](https://giscus.app), fill in your repo details, and copy the generated values.
3. Add these environment variables in **Settings → Environments → github-pages**:
   - `PUBLIC_GISCUS_ENABLED` = `true`
   - `PUBLIC_GISCUS_REPO` = `your-username/your-repo`
   - `PUBLIC_GISCUS_REPO_ID` = _(from giscus.app)_
   - `PUBLIC_GISCUS_CATEGORY` = `Announcements` _(or your chosen category)_
   - `PUBLIC_GISCUS_CATEGORY_ID` = _(from giscus.app)_

## Single Language Mode

This starter ships with English + French (i18n). To run a single-language site:

1. Open `src/config.ts` and set `multilingual: false`.
2. Delete the `src/content/posts/fr/` folder (and `src/content/pages/fr/` if present).
3. Remove the `src/pages/fr/` directory.

The language switcher will disappear and all `hreflang` tags are omitted.

## Customization

| What                            | Where                                   |
| ------------------------------- | --------------------------------------- |
| Site title, description, author | `src/config.ts` → `SITE`                |
| Navigation links                | `src/config.ts` → `NAV`                 |
| Social links                    | `src/config.ts` → `SOCIAL`              |
| Avatar image                    | `src/assets/images/site/avatar.svg`     |
| Favicon                         | `src/assets/images/site/favicon.svg`    |
| Default OG image                | `src/assets/images/site/og-default.svg` |
| Global styles                   | `src/styles/global.css`                 |
| Theme colors                    | daisyUI theme tokens in `global.css`    |

## Commands

| Command          | Action                               |
| ---------------- | ------------------------------------ |
| `bun dev`        | Start dev server at `localhost:4321` |
| `bun run build`  | Build production site to `./dist/`   |
| `bun preview`    | Preview production build locally     |
| `bun run lint`   | Run ESLint                           |
| `bun run format` | Format with Prettier                 |

## Documentation

For full documentation on all features (i18n, dark mode, math, comments, OG images, etc.), see the [main repository README](https://github.com/kannansuresh/chirping-astro#readme).

## Contributing & Issues

> **This starter repository is automatically synced from the [main Chirping Astro repository](https://github.com/kannansuresh/chirping-astro).** Please do not open pull requests here — changes will be overwritten on the next sync.

- **Found a bug?** [Open an issue](https://github.com/kannansuresh/chirping-astro/issues) on the main repository.
- **Want to contribute?** See the [contributing guide](https://github.com/kannansuresh/chirping-astro/blob/main/CONTRIBUTING.md) on the main repository.
- **Have a question?** Use [Discussions](https://github.com/kannansuresh/chirping-astro/discussions) on the main repository.

## License

MIT — see [LICENSE](./LICENSE).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.