Content managed as Markdown/MDX files, with frontmatter configurable for title, description, publication date, cover image, reading time, and tags
astro-blog — Astro Blog Template
By williamcachamwri
A minimalist Astro-based blog template supporting Markdown/MDX writing, light and dark themes, tags and categories, and RSS, under the MIT license.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Provides light and dark theme switching, responsive layout, and page transitions
Built-in tags and categories, RSS subscription, and SEO metadata such as Open Graph and Twitter Cards
Displays statistics including reading time and view count, and reserves support for multiple languages
Optional Spotify integration to show the currently playing track, with credentials configured via environment variables
Under the MIT license, allowing free use, modification, commercial use, and distribution
Template Details
This is a blog template built with Astro, with both the repository and an online demo accessible. Content is stored as Markdown or MDX files in the src/content/blog directory, with frontmatter for title, description, publication date, cover image, reading time, and tags. The interface follows a minimalist approach, offering light and dark theme switching, responsive layout, and page transitions; it includes built-in tags and categories, RSS subscription, SEO metadata (including Open Graph and Twitter Cards), and display of statistics such as reading time and view count. The template also reserves support for multiple languages and optionally integrates Spotify to show the currently playing track.
Before use, Node.js 16+ and npm/yarn are required. After installing dependencies, copy .env.example to .env and fill in the configuration. The Spotify Now Playing feature requires creating an application in the Spotify Developer Dashboard, obtaining a Client ID, Client Secret, and Refresh Token, and writing them into environment variables; the rest of the functionality works normally without this integration. The build output is a static site, and the README provides deployment entry points for Netlify and Vercel.
Regarding licensing, the repository uses the MIT license, allowing free use, modification, commercial use, and distribution of this version of the code, provided that the copyright and license notice are retained when distributing; third-party assets such as demo images, fonts, and icons require separate verification of their licenses, and external services such as domains and hosting may incur additional charges.
Is it right for your project?
Use Cases
- Building a personal technical blog or writing site focused on text content
- A static blog requiring light and dark themes, tags and categories, and RSS output
- Projects where you want to write in Markdown/MDX and control the front-end styling yourself
- A personal homepage where you are willing to integrate Spotify via environment variables to show the current playback status
Suitable For
- Developers familiar with Astro and Markdown/MDX writing workflows
- Bloggers who need a minimalist reading interface and content-centric approach
- Users planning to deploy to static hosting platforms such as Netlify or Vercel
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 16+ and npm or yarn
- 2
After cloning the repository, run npm install, and copy .env.example to .env to fill in the configuration
- 3
The development server runs by default at http://localhost:4321; use npm run build and npm run preview for building and previewing respectively
- 4
Spotify Now Playing is optional; you need to create an application in the Spotify Developer Dashboard and configure the Client ID, Client Secret, and Refresh Token
- 5
Theme colors and fonts are adjusted in tailwind.config.js, and articles are placed in the src/content/blog directory
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in a public repository; the free scope applies to this version of the code and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version of the code are permitted.
- 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 against their respective licenses; the MIT license of the code alone is not sufficient to determine this.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- The Spotify Now Playing feature is optional and requires a Spotify account; the rest of the template works normally without this integration.
- Enabling the Spotify integration requires creating an application in the Spotify Developer Dashboard yourself, obtaining a Client ID, Client Secret, and Refresh Token, and writing them into .env environment variables; this is an external service dependency.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
- Spotify account (optional, for Now Playing feature)
Original README
https://github.com/williamcachamwri/astro-blog/blob/main/LICENSE.mdhttps://github.com/williamcachamwri/astro-blog/blob/main/README.md1. Create an app at [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) 2. Get your Client ID and Client Secret 3. Add them to your `.env` file:
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-05. 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
- Astro Themes
- Documentation and maintenance reference score
- More documented · 81 / 100
- Technologies
- Astro
- Website type
- Blog
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
- 2025-04-09
- Screenshot last checked
- 2026-10-05
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-06
Inspect the recorded source material
SHA-256: a58b44c9084d9eff1b8b87ebee32eb4cfbcbe09751acfe656d88fec3b1bc55db
2026-10-05T13:45:49.919Z
Source file / repository
# ✨ Astro Blog
<p align="center">
<img src="public/favicon.svg" alt="Astro Blog Logo" width="120" height="120">
</p>
<p align="center">
<strong>A modern, minimalist, high-performance blog platform built with Astro.js</strong>
</p>
<p align="center">
<a href="#demo">Demo</a> •
<a href="#features">Features</a> •
<a href="#getting-started">Getting Started</a> •
<a href="#project-structure">Project Structure</a> •
<a href="#customization">Customization</a> •
<a href="#deployment">Deployment</a> •
</p>
<p align="center">
<img src="public/image.png" alt="Astro Blog Screenshot" width="800">
</p>
## Demo
[View Live Demo](https://astro-blog-pi-ashen.vercel.app/)
## Features
- 🚀 **Maximum Performance** - Built with Astro.js for lightning-fast static sites
- 🎨 **Minimalist Design** - Clean UI that focuses on content
- 🌓 **Light/Dark Mode** - Smooth theme switching
- 📱 **Responsive** - Perfect experience on all devices
- ⚡ **SPA Transitions** - Smooth page navigation with transition effects
- 📝 **Markdown & MDX** - Write posts with Markdown and extend with MDX
- 🔍 **SEO Optimized** - Meta tags, Open Graph, and Twitter Cards
- 📊 **Analytics** - Reading time, views, and statistics
- 🔖 **Categorization** - Tags and categories system
- 🔄 **RSS Feed** - Automatically generated RSS feed
- 🎵 **Spotify Integration** - Display currently playing track
- 🌐 **Internationalization Ready** - Prepared for multiple languages
- 🔒 **Secure** - No unnecessary client-side JavaScript
## Getting Started
### Requirements
- Node.js 16+ and npm/yarn
- Spotify account (optional, for Now Playing feature)
### Installation
```bash
# Clone repository
git clone https://github.com/williamcachamwri/astro-blog
# Navigate to project directory
cd astro-blog
# Install dependencies
npm install
# Create .env file from template
cp .env.example .env
# Edit .env with your information
```
### Development
```bash
# Start development server
npm run dev
# Open browser at http://localhost:4321
```
### Build
```bash
# Create production build
npm run build
# Preview production build
npm run preview
```
## Project Structure
```
/
├── public/ # Static assets
├── src/
│ ├── components/ # Reusable UI components
│ ├── content/ # Blog content (Markdown/MDX)
│ ├── layouts/ # Page layouts
│ ├── pages/ # Pages and routes
│ ├── styles/ # CSS and Tailwind
│ └── utils/ # Utilities and helpers
├── astro.config.mjs # Astro configuration
├── tailwind.config.js # Tailwind configuration
└── tsconfig.json # TypeScript configuration
```
## Customization
### Changing Theme
Edit `tailwind.config.js` to change colors, fonts, and other design variables:
```js
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: {...},
secondary: {...}
},
fontFamily: {
sans: ['Inter', ...],
serif: [...]
}
}
}
}
```
### Adding New Posts
Create a new Markdown or MDX file in the `src/content/blog` directory:
```md
---
title: "Optimizing Web Performance for Better UX"
description: "Tips and techniques for improving your website's performance and providing a better user experience."
pubDate: 2023-01-18
heroImage: "/placeholder.svg?height=630&width=1200"
readingTime: "8 min read"
tags: ["performance", "web development", "user experience"]
---
Your post content here...
```
## Spotify Integration
To enable the "Now Playing" feature from Spotify:
1. Create an app at [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/)
2. Get your Client ID and Client Secret
3. Add them to your `.env` file:
```env
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REFRESH_TOKEN=your_refresh_token
```
## Deployment
### Netlify
[](https://app.netlify.com/start/deploy?repository=https://github.com/williamcachamwri/astro-blog)
### Vercel
[](https://vercel.com/new/clone?repository-url=https://github.com/williamcachamwri/astro-blog)
---
<p align="center">
Made with ❤️ by <a href="https://github.com/williamcachamwri">William Cachamwri</a>
</p>
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
