How does one begin to blog?

An exploration of the journey to begin a blog

I have a tendency to write overengineered, needlessly-clever code and get overwhelmed by decisions that don't matter in the process. It takes conscious thought to keep things simple and stay focused. [...] Still, I think a significant fraction of programmers have the same tendencies as I do. Overly-clever, needlessly-complex code is everywhere.

My personal website journey

This is my 3rd attempt at making a blog or perhaps finishing a blogging website that I felt at peace enough (peace in terms of the design and the number of personally created complexities) to write my thoughts and ideas on.

A brief timelime

The one that was meant to keep my motion design career alive, well it didn't get to exist so that's that

That one website on Fly.io with the repo named prog (written in golang)

I guess this one, built with gleam, markdoc and cloudflare workers

I have tried several times, but something always comes up, it just never felt enough or right or whatever.

This time around I had ammased inspiration, many of them infact and I was feeling more confident. With all the exploration and research (looking at other people's blogs, and writing some code), I was ready to build my own over-engineered™ blog/personal website.

How I stacked this blog

To understand the stack we have to explore the interests I have had in exploring programming languages, this way we can safetly identify the languages I wanted to explore to build this.

Earlier in the year, I had come across Zig and also watched theprimegan's video on the language and why he was moving away from rust , which by the way I have very much an interest in learning for embedded systems along with embassy , I have also recently started considering swift for the purpose of learning embedded systems; which I have been exploring for Swift UI and MacOS/iOS development as I wanted to do some consulting work on an iOS App project.I am planning to try OCaml>https://blog.janestreet.com/introducing-oxcaml/ someday, maybe Perl>https://www.perl.org/ soon as well

So far we have mentioned Zig , rust , swift ; If you remember from the timeline we made earlier, I have worked on a blog before (sweet dear prog ) which was in golang ; a programming language I also like and enjoy. You might start to begin to see a theme here, well... I like programming languages, and there are many more I have tried and consider trying in the future.Random aside, I believe Go has the most beautiful TUI packages, courtesy of charmbracelet>https://github.com/charmbracelet

Something that was important for was that I didn't want to do react or JS frameworks, I had done some JS framework projects for some client and I have just had enough. I wanted to have fun, and do stuff in my own overcomplicated™ way.

Gleam

So I chose gleam, why? I just did. There is no particular reason, well maybe that's not true. I had a few:

Now that I has a stack...Wait, there was the whole thing with using markdown well markdoc as well.I had wanted to have a sort of CMS like Keystatic written in gleam for my blog but got uninterested and I have come to like my current approach and I know its gonna get crazier and cooler.

Markdoc

My first experience with it was in Astro/Keystatic as part of a client project, that's where I fell in love, with both Markdoc and Keystatic; which in some ways kind of inspired the starting point of this project

This is where the ffi learning and stuff came in, it was fun! and I learnt a lot.

// ffi.gleam

/// Markdoc AST type for parsing markdown documents
pub type MarkdocAst
 
/// Parse markdown content into Markdoc AST
@external(javascript, "./ffi/markdoc_ffi.js", "parse")
pub fn parse(content: String) -> MarkdocAst
 
/// Transform Markdoc AST with custom tags
@external(javascript, "./ffi/markdoc_ffi.js", "transform")
pub fn transform(ast: MarkdocAst, tags: String, nodes_config: String) -> String

For a future project I want to do some work with wasm + rust/zig/swift + gleam.

So now we have:

What next?

Well I built it, and that's why we are here reading it. I will make another post to go in depth.I will use this as a way to keep the momentum of writing and documenting going.

David Adediji

Jun 13, 2025