← Back to weeks

Week 20 | RSS Feed Generation

I originally wanted to post a new article this week but I haven't been in the right head space to finish writing and editing it. After trying to sit down and finish writing a revised draft yesterday, I realized I just didn't have it in me. The words weren't coming, and the ideas were locked away. After asking myself what I was resisting, the little lantern in my head lit up. "I just want to code something."

After taking a vacation from work, and stepping back from product work for a bit, I've felt so refreshed coming back to tackle engineering projects. I've missed the feedback loop programming gives you. The problem solving it requires, and the incredible fulfillment I get when coming up with a solution that works is what keeps me coming back. After unpacking how important flow is for me, and stepping back from product strategy, It's finally starting to sink in what I've been resisting. As much as I love product work, and as good as I can be at it, I'm an engineer at heart. I'm a builder. I need to be working on these projects for my own wellbeing right now.

And what better to hack on during the weekend than my own personal site?

After the re-write to a homegrown Clojure static site generator, I have a lot more flexibility with what I can add to the site. It's not to say the PHP version couldn't have done it. It definitely could have. However, I suspect it would've caused a lot more headache seeing as I had originally built the site without extensibility in mind. I'm also much happier to program in Clojure than PHP, which is a bonus when you're looking to augment what you've created.

Something I felt was missing were RSS feeds of the main content sections of my site. You know, for the 0 people who actively read anything on here. In reality, I just wanted an excuse to work with RSS feeds and Clojure, and it seemed like the perfect opportunity to do that.

The code isn't the greatest. I very much follow the principle of make it work, then make it nice, then make it fast as a programmer. We're still in stage 1, and likely will be for a long, long while. It's a personal project after all. It's also admittedly half-assed. Seeing as I'm still pretty unexperienced with Clojure, simple things can trip me up more easily. Hell, I spend a solid 4 hours trying to convert a java.time.LocalDate object to a java.time.Instant object for the clj-rss library I'm using. I also haven't added any links visible on the site for each of the feed channels. Baby steps, you know!

I would love to spend time refactoring the static generator to make it a bit more config-file based. It would be amazing to distill everything down to a series of JSON or YAML files and directories for templates and content. Maybe we'll get there in a few years if I don't re-write the whole thing again.

In the meantime, here's the commit with the changes for the curious: https://gitlab.com/alexcaza/alexcaza.gitlab.io/-/commit/321a96b4a1abe5610edefbc580f8a019f08342b9

Here are the RSS feed locations: