Building RJG.RED

It all started like many great projects start, with a domain. RJG.RED (this site), was sitting in my domain register account without an assigned project. Typically, when I acquire a new domain I have project in mind. RJG.RED was a domain that I picked up purely for the novelty, (I don't have any .red domains in my collection). Reversing my normally process I wanted to build a project for this domain specifically. What came to mind was putting together a digital space that I can maintain with various combinations of content types (blog posts, wiki entries, videos, code snippets, etc.) that was available to reference anywhere anytime (hello cyberspace). The resulting project is most similar to a Digital Garden style site (more on digital gardens: https://maggieappleton.com/garden-history).

Picking up the shovel

Update May 15th, 2023

Looking at this site and project that has sitting long since abandoned I wanted to give it some attention. Today I have been removing the weeds (removing the unnecessary code that was added in the first build of this) while adding some plans for new features that I didn't even think of. When I started this site about 2 years ago I had an idea of publishing a site that was more of a garden. I wanted to build a place that I could tend through my thoughts, to share the notes on things that I have learned, and generally cool things I am interested in.

Looking over this code again I have found a lot of things that I would have done differently but this is a simple site with a simple script to power the generation of content. The Python that powers this site is a single script that uses Flask and Jninja2 to render contes to HTML. This is then stored in a Git repo that publishes to Netlify.

My time to work on the garden today is coming to an end and I must put down the shovel and work on building the planter boxes for what I want this site to become.

We will build it one block at a time

Update May 18th, 2023

Seems that this is where my mind wants to work and I am not trying to hard to fight it. I have been working on making small improvements to this site both in the backend code as well as the front end theme. Right now the functionality is focused on getting the site into a "functional state" to render the content I am writing. There's the joke that when a developer sets up a blog they spend more time working on fixing the their code to manage the site instead of writing the blog post. This is something that I am guilty of. Setting up the site then having your "hello world post".

I am trying to stay focused on adding the minimal needed functionality to make this the hackable system I envision it to be. The main requirements is that the output of the site needs to be delivered in static HTML. This allows the site to be published through a CDN and removes the need to run any sort of server or container.

When I started this project the idea was just to kick off an easy place to store some information and write down thoughts that are shareable. A good old school blog site. Starting out I paired Python + Markdown to generate the completed formatted and themed HTML. Contained within the markdown file is a metadata block at the start of the page that looks like this:

title: Building RJG.RED
summary: building the rjg.red site: lessons learned developing a ground up 
garden.
tags: dev, projects, python
date: 12/04/2021
url: /blog/building_rjgred

This was the first pass and the purpose is to make it easy to do the "blog" stuff of a website. Keeping the dynamic content within the generation of the markdown file. This is rendered using the Python script that loads the directories and renders the contents of the markdown file as static HTML with the sites them.

About the theme

I wanted to build a completely "organic" CSS for this site. I did not do that. I decided that the most reasonable approach to getting this site working as a blog and focused on content is using something that I have an intimate familiarity with.

Bootstrap has entered the chat.

Bootstrap was created at Twitter in mid-2010 by @mdo and @fat. Prior to being an open-sourced framework, Bootstrap was known as Twitter Blueprint.

I've used Bootstrap for a lot of projects and it's been included in a lot of projects that I have used. I know how to make it work well for what I need. I have managed a lot of Wordpress sites that were nothing more than a customized version of Bootstrap. Most importantly it works and looks clean.

I can go down a rabbit hole of customizing, testing, and adjusting how a site looks. Hours can be lost getting things just right. Selecting Bootstrap removed the decisions/test/feedback loop of trying to get things just right. For this stage of the project it's just about getting things done and writing the content.

The focus of this project was not to "build a blogging platform" but a "Digital Garden" of interesting content to maintain. The "platform" is really just a side effect and compromise of "good enough" plus I enjoy writing code and this gives me a non-stressful project to build on.

Desk top image

Desktop Screenshot of 2023 Theme

Mobile

Mobile Screenshot of 2023 Theme

RJG.RED