Version 1.0 Of The Blog

Read how I have created the blog and what ideas I have for the future.

Tech Stack

I’ve wanted to create a fast and simple to manage blog. I don’t really need Javascript to display my content, so a simple HTML site with some CSS would be enough.

That is why I decided to use Astro Build. This tool allows me to create static pages with minimal effort and the flexibility of using a component based system.

Component Based System

In software development you probably came across the word “DRY” - meaning “Don’t Repeat Yourself”. This helps prevent having to maintain duplicate code. If I would have multiple traditional HTML sites each having the same navbar and footer, then I would need to create either a very strange import script to load my nav.html into my pages or copy my nav.html code into each page.

This makes the whole process quite tedious.

This is why having a component based system makes it so simple to create repeating and reusable components. I can simply define once my nav.html (or in case of Astro Nav.astro) and then import it in all my pages by simply linking the file. Then one change to my Nav.astro and then all instances get updated.

Quick Sitenote: For common components like a footer or a navbar I have created a Layout component that wraps around each page.

Content

Currently the content is managed by Markdown-X files. This means that somewhere in my project source files I have a folder called content with all my articles as .mdx files. Furthermore if I want to add pictures to my files I need to have them available in my /public folder.

For now this is fine and manageable, but what if my content grows?

Ideas

Here is a list of some ideas which might come in the future and improve the blog.

Adding difficulty levels

Having an easy to spot difficulty level can help readers identify articles that are suitable for them or see if they need to get some base information first.

Having a real cms for content management.

Using a Content-Manangement-System (CMS) to store all media and manage content including drafts and history might be a good place to make this project more easily maintainable. This would allow me to also separate code and content. It might be even possible to invite guest writers for the blog.

Redesign

Design is not my strong suite yet. I mean it works, but in my head the initial draft was always more fancy and polished. In the future there will be definitely a better design.

More SEO friendly

Having a full html site compared to some Javascript Framework rendering content dynamically works already wonders for SEO. Here might be some room for improvement.

Analytics

So far I don’t know how many people view my blog. Might be none, might be one (let’s go) or might be thousand. In the future I want to add an analytic tool that is GDPR compliant and tracks only the bare minimum!

Interactivity

A big part of websites like reddit which I like is the interactivity part of it. Somebody tells you about their shiny cool project and suddenly you can read through comments where people ask questions and suggests improvement. This might be also (depending on the reader count) a nice feature to add in the future. But this would mean then reworking parts of the website.

Having a better tag system

I started the blog with some tags that are represented on blog articles. So far you can’t really interact with them. It would be nice to make those somewhere visible, filter articles by it or maybe even search for articles by tag.