Β· jane-doe Β· Tutorials  Β· 5 min read

Getting Started with AstroZephyrus

Learn how to set up and customize AstroZephyrus, a modern blog theme built with Astro 5 and Tailwind CSS. This complete guide covers installation, configuration, and deployment.

Learn how to set up and customize AstroZephyrus, a modern blog theme built with Astro 5 and Tailwind CSS. This complete guide covers installation, configuration, and deployment.

Welcome to AstroZephyrus! This guide will walk you through everything you need to know to get started with this modern, developer-focused blog theme.

What is AstroZephyrus?

AstroZephyrus is a production-ready blog theme built with Astro 5 and Tailwind CSS. It’s designed for developers who want a fast, SEO-friendly blog with excellent performance scores right out of the box.

Key Features

  • Lightning Fast β€” Built on Astro’s static site generation with View Transitions
  • SEO Optimized β€” Structured data, Open Graph tags, sitemaps, and RSS feeds
  • Dark Mode β€” Seamless theme switching with customizable colors
  • MDX Support β€” Write posts in Markdown or MDX with full component support
  • Image Optimization β€” Automatic image optimization using Astro Assets
  • Code Highlighting β€” Beautiful syntax highlighting with Shiki
  • Search β€” Client-side full-text search powered by Pagefind
  • Comments β€” Built-in support for Utterances and Giscus

Quick Start

1. Clone or Fork the Template

The fastest way to get started is using the Astro CLI:

npm create astro@latest -- --template asiomchen/astrozephyrus

Or clone the repository directly:

git clone https://github.com/asiomchen/astrozephyrus.git my-blog
cd my-blog

2. Install Dependencies

Install the required packages using npm:

npm install

3. Start the Development Server

Launch the local development server:

npm run dev

Your site will be available at http://localhost:4321. The dev server includes hot module replacement, so changes you make will be reflected instantly.

Project Structure

Understanding the project structure will help you customize your blog effectively:

/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ post/          # Your blog posts (MD/MDX files)
β”‚   β”‚   └── author/        # Author profiles
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ blog/          # Blog-specific components
β”‚   β”‚   β”œβ”€β”€ widgets/       # Page sections (Header, Footer, etc.)
β”‚   β”‚   β”œβ”€β”€ common/        # Shared utilities
β”‚   β”‚   └── ui/            # UI elements
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ [...blog]/     # Dynamic blog routes
β”‚   β”‚   └── index.astro    # Homepage
β”‚   β”œβ”€β”€ layouts/           # Page layouts
β”‚   β”œβ”€β”€ utils/             # Helper functions
β”‚   β”œβ”€β”€ config.yaml        # Main configuration file
β”‚   └── navigation.ts      # Navigation links
β”œβ”€β”€ public/                # Static assets
└── astro.config.ts        # Astro configuration

Creating Your First Post

Blog posts live in src/data/post/ as .md or .mdx files. Let’s create a new post:

Step 1: Create the File

Create a new file at src/data/post/my-first-post.mdx:

src/data/post/my-first-post.mdx
---
publishDate: 2026-02-08T12:00:00Z
title: My First Blog Post
excerpt: A brief description of what this post is about. This appears in post listings and social media shares.
image: https://images.unsplash.com/photo-1499750310107-5fef28a66643?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80
category: Tutorial
tags:
  - blogging
  - getting-started
author: jane-doe
showToc: true
---

# Welcome to My Blog

This is my first post using AstroZephyrus!

## Code Examples

You can include syntax-highlighted code blocks:

\```javascript
function greet(name) {
  console.log(`Hello, ${name}!`);
}

greet('World');
\```

## Images and More

AstroZephyrus supports all standard Markdown features plus MDX components!

Step 2: Understanding Frontmatter

The frontmatter section (between the --- markers) contains metadata about your post:

  • publishDate β€” Publication date (ISO 8601 format)
  • updateDate β€” Optional last updated date
  • title β€” Post title (used in SEO)
  • excerpt β€” Brief description for listings and SEO
  • image β€” Cover image URL (optimized automatically)
  • category β€” Single category for organization
  • tags β€” Array of tags for filtering
  • author β€” Matches filename in src/data/author/
  • showToc β€” Enable table of contents (optional)
  • draft β€” Set to true to hide from production (optional)

Configuration Guide

The main configuration file is src/config.yaml. Here are the key sections:

Site Settings

src/config.yaml
site:
  name: Your Blog Name
  site: 'https://yourdomain.com'
  base: '/'
  trailingSlash: false
  googleSiteVerificationId: null

SEO Metadata

metadata:
  title:
    default: Your Blog Name
    template: '%s β€” Your Blog Name'
  description: 'A brief description of your blog'
  robots:
    index: true
    follow: true

Blog Configuration

apps:
  blog:
    isEnabled: true
    postsPerPage: 6
    post:
      permalink: '/%slug%'

You can customize the permalink pattern using these variables:

  • %slug% β€” Post filename
  • %year%, %month%, %day% β€” Date components
  • %category% β€” Post category

Comments System

Choose between Utterances or Giscus:

comments:
  isEnabled: true
  vendor: 'utterances'
  utterances:
    repo: 'yourusername/yourrepo'
    issueTerm: 'pathname'
    theme: 'preferred-color-scheme'

Customizing Colors and Fonts

Edit src/components/CustomStyles.astro to customize your theme:

:root {
  --aw-font-sans: 'Inter Variable';
  --aw-color-primary: rgb(34 197 94); /* Green */
  --aw-color-secondary: rgb(22 163 74);
  --aw-color-accent: rgb(20 184 166); /* Teal */
}

You can change fonts by importing different font families from @fontsource-variable.

Customizing Navigation

Edit src/navigation.ts to modify header and footer links:

src/navigation.ts
export const headerData = {
  links: [
    {
      text: 'Blog',
      href: '/blog',
    },
    {
      text: 'About',
      href: '/about',
    },
  ],
  actions: [
    {
      text: 'GitHub',
      href: 'https://github.com/yourusername',
      target: '_blank',
    },
  ],
};

Available Commands

All commands run from the project root:

npm run dev          # Start dev server at localhost:4321
npm run build        # Build for production to ./dist/
npm run preview      # Preview production build locally
npm run check        # Run type checking and linting
npm run fix          # Auto-fix linting and formatting issues

Deploying Your Blog

AstroZephyrus works with all major hosting platforms. Here are the most popular options:

Vercel

  1. Push your code to GitHub
  2. Import your repository in Vercel
  3. Vercel auto-detects Astro and configures build settings
  4. Deploy!

Or use the one-click deploy button:

Deploy with Vercel

Netlify

  1. Push your code to GitHub
  2. Create a new site in Netlify
  3. Configure build settings:
    • Build command: npm run build
    • Publish directory: dist
  4. Deploy!

Or use the one-click deploy:

Deploy to Netlify

Cloudflare Pages

  1. Push your code to GitHub
  2. Create a new project in Cloudflare Pages
  3. Configure build:
    • Framework preset: Astro
    • Build command: npm run build
    • Output directory: dist
  4. Deploy!

GitHub Pages

To deploy to GitHub Pages, update your astro.config.ts:

astro.config.ts
export default defineConfig({
  site: 'https://yourusername.github.io',
  base: '/repository-name',
});

Then update src/config.yaml:

site:
  base: '/repository-name'

Next Steps

Now that you have AstroZephyrus set up, here are some things to explore:

  1. Create more posts β€” Build your content library
  2. Customize your author profile β€” Edit src/data/author/jane-doe.md
  3. Add pages β€” Create About, Contact, or other static pages
  4. Set up analytics β€” Configure Google Analytics or Umami
  5. Optimize images β€” Use Astro’s Image component for better performance
  6. Enable comments β€” Set up Utterances or Giscus for reader engagement

Getting Help

  • Documentation β€” Check the Astro docs
  • GitHub Issues β€” Report bugs or request features
  • Community β€” Join the Astro Discord community

Conclusion

AstroZephyrus gives you a solid foundation for building a modern, performant blog. The theme is designed to be customizable while maintaining best practices for SEO, accessibility, and performance.

Happy blogging!

Jane Doe

Tech writer and open-source contributor passionate about creating modern web experiences and sharing knowledge with the developer community.

Comments

Back to Blog

Related Posts

View All Posts Β»