Coldbrewlinks

Published on 01 August 2020

This article takes approximately 5 minutes to read.

You’ll never guess where I got the name for my latest project. Take a read at yesterday’s blog post on Cold Brews for more information.

I have been thinking about web directories for a while. I’ve seen a number of interesting projects. Some directories are just lists of links. Others are more elaborate with categories and descriptions. I tried to create my own list of links but I was never able to stick to it.

The trouble is that maintaining a list of links is difficult. I’ve got a list of links on my blog. That list takes a while to update. Whereas I have a flow for uploading blog posts, I do not have one for adding links to the list. There are a few good finds on the list but, overall, it is sorely lacking. There are so many interesting links that I have found that have not made their way onto the list.

My Bookmarks

I bookmark interesting links. I started doing this because I used to write a weekly newsletter and it was nice to have a record of what I had viewed or read. It gave me choice when the time came to write the newsletter. I have kept this practice up after stopping my newsletter because I like having this list. I sometimes go back to old links and read them again. At the very least, my bookmarks is somewhere I can go if I am really bored.

My links list on my blog was an attempt to make what I find public. I’ve got so many links to share. I’ve got links to personal websites, articles, essays, and other interesting resources around the net. I wanted to share them online with others because I spend a lot of time finding links. It’s not that I consciously seek out links. As a net surfer, I accumulate links naturally.

Building a Solution

I’ve decided to overhaul how I keep track of my links. I have developed a Python generator that creates a list of links. The generator is really simple. It allows me to add a link to a long list. Links are categorized by dates and all links appear on one page. I may change this at some point. For now, it is functioning as intended. I’m not ready to introduce pagination or any other features. It’s just supposed to be a list of links.

To add a link to the directory, I can use a command. I’ve set up the alias cbl on my Mac. I keep forgetting it. coldbrew may be a better alias. I’ll see which one sticks. This command lets me do four things. I can view yesterday or today’s links. I can create a new link. I can generate the list of links. That’s it. It is simple but I know that if I make it too complex I’ll never use it.

My goal is to get into a routine with posting these links. I’ve seen great link aggregators online where individuals share what they find. I do not have any aspirations for ColdBrewLinks but I would like it to become more than just a dead list of links. It’s hard to maintain a list of links. That is because I need to consciously think about adding a link. I do hope that by creating a simple command line tool I’ll be more inclined to add a link. I no longer need to add an <a> tag to a HTML file on my blog that I rarely visit.

The Technical Brief

I used Python jinja2 to generate the templates. I have chosen not to use Flask. This is because I want to generate static templates that I can serve. There’s no need to query a database every time someone comes to see a link. I’ll probably only update the page a few times a week. That reminds me, I may run into one blocker: I update this blog too. If I have too much going on, I may forget about one or the other (most likely the list of links). I’ll need to figure out a cadence that works best for me.

The site itself is coded using plain HTML and CSS. There is a bit of color on the site but I’ve tried to keep it as minimal as possible. I don’t want you to have to download megabytes of data to see the links that I have curated. I’ll try to keep the page as small as possible. Of course, as I add more links, the size of the page will increase. That is inevitable. I can keep the structure of the page simple. I know that readers will use quite a bit of bandwidth while exploring the links themselves. I do not need to burden you with complex JavaScript and style sheets. I’m starting to think that I really just do not like JavaScript.

I was tempted to make this project using a bash script. I’m not quite ready to take on that challenge. I do know that I could use commands like head and tail and redirection operators to make the project work. In an effort to actually get the project out the door, I stuck with the technology that I know best. As a bonus, I’ve been able to easily create JSON and RSS versions of the site. This will let me accomodate a wider range of users. With a bash script, it would have been very difficult to implement these functions.

Like all my projects, you can view the source code to ColdBrewLinks on GitHub. It will be up on Sourcehut when I next run my uploader script. I’ll share links every now and again that I find interesting on the ColdBrewLinks site. You can view the site at links.jamesg.app.