Skip to content
Posts

Astro. Let's give it a try

Posted on:March 23, 2023 at 12:01 PM

This article provides a basic overview of Astro and explains why it was chosen to build this website.

Table of contents

Open Table of contents

What is Astro?

Astro is the all-in-one web framework designed for speed.

Astro is content focused framework that provides powerful SSG for generating static sites and if necessary goes beyong by adding backend rendering with SSR.

My Jamstack experience

As a seasoned web developer, I have come a long way, from building old-time custom CMS systems rendering all content on server side to a modern static site generators: m9-generator and Jamsite.

m9-generator

m9-generator is a Node.js static site generator based on:

In essense, m9-generator is an opionated, preconfigured setup of the tools mentioned above, along with custom plugins that extend their functionality.

Although m9-generator is no longer supported, numerous high-load websites continue to run with m9-generator in the wild.

m9-generator resources:

Jamsite

Jamsite is a Node.js framework designed to be superior to m9-generator by offering optional server-side rendered pages and dynamic endpoints.

Jamsite is very minimalistic and is based on:

Jamsite resources:

wp-headless

Typically, when transitioning from a classic CMS to a static site generator system, one of the challenges faced is managing content editing and storage. Headless or API-first CMS solutions are often the answer. These systems usually expose special data API endpoints used by static site generators, website runtimes, applications, or other data consumers.

Here is a list of example systems:

The WpHeadless bundle is a Wordpress solution I developed to transform open-source Wordpress into a headless CMS with a set of specialized configurations and plugins.

Why Astro?

Why Astro now? It seems to be good, adhering to many principles I appreciate. Astro is simple, it is fast, and based on Vite, which offers a superior development environment compared to webpack, babel, browsersync and metalsmith.

Another reason is that I am lazy, and it’s easy to hop on a train that’s already moving in the same diection as me.