Astro Blog Starter
Astro Starter Blog
A simple, hackable & minimalistic starter for Astro that uses Markdown for content.
π₯ Features
- β Beautiful and simple design.
- β Easy configuration
- β Markdown & MDX support
- β Tags support.
- β Dark / Light toggle.
- β Minimal styling (make it your own!)
- β 100/100 Lighthouse performance
- β SEO-friendly with canonical URLs and OpenGraph data
- β
Uses
astro:assets
for optimized images - β Sitemap support
- β RSS Feed support
- β Blog drafts
π Demo URL
https://astro-starter-blog.netlify.app
π¨πΎβπ» Getting started
npm create astro@latest -- --template peoray/astro-starter-blog
π¨πΎβπ» Configuration
Edit the values in src/consts.ts
to match your brand or company:
export const SITE_TITLE = "Astro Blog Starter";
export const SITE_URL = "https://astro-starter-blog.netlify.app/";
export const SITE_DESCRIPTION = "Welcome to my personal website!";
export const PAGE_DESCRIPTION = "A simple, hackable & minimalistic starter for Astro that uses Markdown for content"
export const TWITTER = "https://twitter.com/peoray_"
export const GITHUB = "https://github.com/peoray/astro-starter-blog"
export const AUTHOR = "Emmanuel Raymond"
export const IMAGE = "/images/photo.png"
export const IMAGE_ALT = "Photo of an avatar"
Change any lines or add more in the <head>
tags in src/components/MetaTags.astro
, like the favicon:
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
π Project Structure
Astro looks for .astro
or .md
files in the src/pages/
directory. Each page is exposed as a route based on its file name.
Thereβs nothing special about src/components/
, but thatβs where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the public/
directory.
π§ Commands
All commands are run from the root of the project, from a terminal:
Command | Action |
---|---|
npm install | Installs dependencies |
npm run dev | Starts local dev server at localhost:3000 |
npm run build | Build your production site to ./dist/ |
npm run preview | Preview your build locally, before deploying |
npm run astro ... | Run CLI commands like astro add , astro check |
npm run astro -- --help | Get help using the Astro CLI |
π Want to learn more?
Feel free to check the Astro documentation or jump into the Discord server.
π Acknowledgement
This theme is a port of the popular Gridsome Starter Blog made by the creator of Gridsome, Tommy Vedvik.
β¨ Contributing
Feel free to open an issue if you find bugs or want to request new features.
π License
Licensed under the MIT License, Copyright Β© Emmanuel Raymond 2023
<template>
<Layout>
<h2>Latest blog posts</h2>
<ul>
<li v-for="edge in $page.allWordPressPost.edges" :key="edge.node.id">
{{ edge.node.title }}
</li>
</ul>
</Layout>
</template>
<page-query>
query Blog {
allWordPressPost (limit: 5) {
edges {
node {
_id
title
}
}
}
}
</page-query>