- Install dependencies.
npm install-
Replace template settings in
src/config.ts. -
Put your posts in
src/content/blog/. -
Start development server.
npm run dev- Build and preview.
npm run build
npm run previewEdit src/config.ts first:
site.titlesite.descriptionsite.url(required for RSS and Sitemap)site.basePath(/for root,/repo-namefor GitHub Pages project sites)
Also replace:
public/favicon.ico- Navigation/content text in
src/pages/*.astro - The sample post in
src/content/blog/example.md
- Markdown directory:
src/content/blog/ - Content schema:
src/content.config.ts - Runtime settings hub:
src/config.ts
Example frontmatter:
---
title: "Your article title"
description: "A short summary"
pubDate: 2026-05-11
author: "Your Name"
tags:
- Astro
- Blog
img: src/assets/thumbnail/my-thumb.png
draft: false
---Notes:
pubDatemust beYYYY-MM-DD.draft: trueposts are excluded from article lists and RSS.imgis optional.
- Astro blog template with article list and pagination
- Tag filtering and keyword search on article list page
- RSS feed at
/rss.xml - Sitemap generation
- Draft support via frontmatter (
draft: true)
This template supports static hosting and is ready for:
- GitHub Pages
- Vercel
- Cloudflare Pages
Recommended settings:
- Set
site.urlto your Pages URL insrc/config.ts - If using project pages, set
basePathto/<repo-name> - Build command:
npm run build - Output directory:
dist
- Framework preset: Astro
- Build command:
npm run build - Output directory:
dist - Set
site.urlinsrc/config.tsto your production domain
- Framework preset: Astro
- Build command:
npm run build - Build output directory:
dist - Set
site.urlinsrc/config.tsto your production domain
npm run dev: local developmentnpm run build: production buildnpm run preview: preview built site locally