# The stack I use to run this blog

> A look at the stack I use to run this blog: Astro for a fast static site, Markdown for posts, GitHub for content, and Cloudflare Pages for free hosting.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2018-06-07 | Updated: 2023-01-08 | Topics: [Blogging](https://flaviocopes.com/tags/blogging/) | Canonical: https://flaviocopes.com/stack/

<!-- TOC -->

- [The site platform](#the-site-platform)
- [Where do I host the site](#where-do-i-host-the-site)
- [The posts](#the-posts)
- [My workflow for posting an article](#my-workflow-for-posting-an-article)
- [Images](#images)
- [The newsletter](#the-newsletter)
- [Books](#books)
- [That's it!](#thats-it)

<!-- /TOC -->

## The site platform

This site is a static site built using [Astro](https://flaviocopes.com/astro-introduction/).

It was previously built using [Hugo](https://gohugo.io) and I loved it. I love creating UIs with JSX more though.

Astro, like Hugo, is very fast and generates fast pages that can be deployed on a platform like Netlify or Cloudflare Pages. That's all I need.

## Where do I host the site

I used [Netlify](https://flaviocopes.com/netlify/), now I use [Cloudflare Pages](https://flaviocopes.com/moved-blog-cloudflare-pages/) because they provide free unlimited bandwidth.

## The posts

I write the posts using Markdown. Sometimes I use Notion or Bear or [VS Code](https://flaviocopes.com/vscode) directly to write them. Markdown is a great format because it's very portable.

## My workflow for posting an article

I try to publish as much as possible.

I had a daily posting routine, although these days I'm not publishing every day I try to keep posting a lot.

I just enjoy doing it.

Sometimes I'm working on a project and in a day I have 3 post ideas, things I had to search for on Google and dig the answer.

I used to have a week or so of content ahead of time, ready for publishing, but now I just publish when I have content to publish.

I push all my content to a private [GitHub](https://flaviocopes.com/github/) repository, which is synchronized to Cloudflare Pages / Netlify thanks to their [Git](https://flaviocopes.com/git/) integration.

Every time I push to GitHub, the site is updated.

## Images

I make sure all the post images are optimized using [ImageOptim](https://imageoptim.com), to avoid useless bandwidth usage and a faster page speed.

## The newsletter

I have a newsletter. Sometimes I send an email with the list of the posts I wrote, plus any new resource I create that might be interesting.

I use a self-hosted solution called Sendy and AWS SES.

Find out [why you should create an email list](https://flaviocopes.com/why-email-list/).

## Books

I wrote and distribute a number of ebooks, available on my site. You can read them online or buy them in PDF or epub, I use a tool called Honkit to generate those formats. I detail my process here: </how-to-create-ebooks-markdown/>.

I wrote 15 books so far and I plan to make more in the future.

## That's it!

My tools and workflows are always evolving.

I try to keep this post up to date.
