Literate (web) Programming

Published

I've been using Roam a lot as of late, I lucked out a few months ago (around March of 2020 or so) where there was a short gap of an open, public, and free beta period for the online tool and I've been secretly using it since then without paying for it (sorry Roam team!).

It's been an interesting tool to learn and use, I've really enjoyed the flexibility and freedom to make pages and links between concepts and ideas using the [[backlink]] format. However, it's still way too early to say that I fully understand how to use the tool to it's extent. As of late however, I've been repeatedly thinking about how I wish I had Roam's features deeply integrated everywhere else in my day to day use of software. There are probably a lot of different things that I could write about what that deep integration might look like, but for this post I want to focus on my programming / development environment.

For those of you that don't know, I'm a software engineer and I get to write code here and there, I've really been feeling this need for a deep integration between my code editor, the codebase I work in, and my Roam database.

As I've been noodling over what this would look like, I've also been experiementing with learning Swift, through its Swift Playgrounds, it then dawned on me that the playground format could really excel in web development.

I'd love to have a new filetype that allowed me to freely mix in notes and documentation like a markdown file but also exist in the flow of the rest of the code I'm working in as well as exist within my growing Roam database.

Outside of Swift, there are some other examples that exist out there in the world today, Observable HQ is one such example allowing for the mixture of runable JS code snippets and free form content.

I think MDX has the highest liklihood of becoming something like this, but it still feels like a very early-days, low-fidelity mock-up of this concept.


If you've been thinking about, working on, or otherwise interested in this concept, let me know by tweeting at me or emailing me!

Tags: