minimalistic but opinionated blog template using astro and svelte. aims to be super easy to deploy and use, with a focus on performance and SEO, ease-of-use and design.
See a live demo here (also doubles as a tutorial on how to use this template).
Features:
- ✅ 100/100 Lighthouse performance
- ✅ SEO-friendly with canonical URLs and OpenGraph data (automatically generated)
- ✅ Sitemap support
- ✅ RSS Feed support
- ✅ Markdown support
- ✅ Pagination
- ✅ Syntax highlighting (+ copy button)
- ✅ Dark and light mode with toggle button or auto-detect
- ✅ Search included
- ✅ Tags for posts
- ✅ Super easy to deploy as a static site
- ✅ Includes some prebuilt components for you to use
- ✅ Easy to edit using pagecms or by editing the markdown directly
the demo blog doubles as a tutorial on how to use this template:
-
Fork this repository by clicking on "Use template" (note: this repository per default uses github actions which are only free for public repositories).
-
In your repository settings, set up github pages to deploy using github actions (SETTINGS -> PAGES -> SOURCE: Github Actions)
-
Your blog should be live in about 1 minute at
https://<your-github-username>.github.io/<your-repo-name>
For editing the blog you can either edit the code directly or use the preconfigured pagescms.
-
Go to pagescms and log in with your github account and authorize the app.
-
Add your repository to pagescms and open it.
-
Now you can edit your website configuration, about page, description and blog posts directly in the browser.
-
Your changes will be automatically pushed to your repository and deployed to github pages in about 1 minute everytime you hit save.
-
Set up your blog info in
src/config.json
(leaving SITE, BASE, and MANUAL_SITE_BASE, as they are). -
Add your blog posts in
src/content/blog/
-
Add your info in
src/content/info/
:
description.md
is used for the homepage descriptionabout.md
is used for the about page
Search currently only works in production mode (i.e. when running npm run build
) not in dev mode (npm run dev
).
Adopted from the default astro blog template when running npm create astro@latest
.
MIT.