AstroBlog

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.

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

What stands out

A quick read of the recorded project description.

01

Content managed as Markdown/MDX files, with frontmatter configurable for title, description, publication date, cover image, reading time, and tags

02

Provides light and dark theme switching, responsive layout, and page transitions

03

Built-in tags and categories, RSS subscription, and SEO metadata such as Open Graph and Twitter Cards

04

Displays statistics including reading time and view count, and reserves support for multiple languages

05

Optional Spotify integration to show the currently playing track, with credentials configured via environment variables

06

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.

AstroBlog

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. 1

    Requires Node.js 16+ and npm or yarn

  2. 2

    After cloning the repository, run npm install, and copy .env.example to .env to fill in the configuration

  3. 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. 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. 5

    Theme colors and fonts are adjusted in tailwind.config.js, and articles are placed in the src/content/blog directory

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

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:

Original README
https://github.com/williamcachamwri/astro-blog/blob/main/LICENSE.mdhttps://github.com/williamcachamwri/astro-blog/blob/main/README.md

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

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/williamcachamwri/astro-blog)

### Vercel

[![Deploy with Vercel](https://vercel.com/button)](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>
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.