Last month I mentioned my intention to look at BlitzJS. After a few hours of wrestling with a small application, I wondered if it would be better to spend some time refreshing my React knowledge first (it’s been a while since I used this) and then re-visiting BlitzJS. So I decided to park this for something else.

I wrote and maintained my own blogging CMS using Ruby on Rails for a couple of years. It was simple, and it had several excellent features like posts grouped by dates and supported posts without titles. There were a couple of downsides to the application, though.

Running even a small Rails application isn’t cheap, and while I can afford to host the app, it was money that I thought I could spend elsewhere. I looked to alternatives, but I couldn’t find anything with a significantly cheaper CMS to host. I started then to look towards a static site.

With some experience in using Jekyll, I started migrating all my posts both on the Rails application and in to my own Jekyll blog. I’m running the site on Render using one of their cheap static site plans, and I’m pleased with the result.

The added benefit of this is that I now have complete control over my blog, both in content and hosting. My content for the website is just a bunch of files. Posts use Markdown and are effectively just plain old text files. My images are stored in a folder that is served as part of the website. I find this much easier to control than digging into the database for a CMS.

As for hosting, I loved having my blog hosted on, but I did find it limiting in some ways. I would still recommend it for most people, but for me, self-hosting everything was the way to go.

One final benefit of using Jekyll is that I can still use Tailwind CSS to style the website and play about with it a bit more. You can see an example of this on my now page, where I have created a book component to show the progress of the books I am reading. I’ll be expanding on these over the year as I read more books.

It’s been a while since I made any changes with my writing prompt generator Writeabout, but it’s seen a flurry of activity over the last few weeks.

  • Writeabout is now running on Rails 7 and Ruby 3.1. I’ve been keen to move away from Webpacker and embrace Rails' new JavaScript options with Rails 7.
  • I’m using the latest version of Tailwind. I love Tailwind. I find it easier to build web pages using Tailwind’s classes.
  • I replaced the dark/light theme with a better recommendation using the suggestion from the Tailwind docs. This behaviour is still bundled in a Stimulus controller, but I’m pleased with the result.
  • Self-hosted font. I used to use Google Fonts to serve this website’s font, but I’m keen to reduce outside dependencies where I can, so I switched to self-hosting the font for Writeabout.

I’m still not done with Writeabout, though. As a small application, it provides me with an excellent place to try new things. Over the rest of the year, I plan to add the following two significant changes.

The first is an admin screen built on Hotwire. I’ve done some things with Hotwire, but nothing major. It would let me manage the prompts for the website and provide some information on API requests.

The second change will be an iOS app using React Native. Yes, I know React Native lets you build apps for both iOS and Android, but I’ll initially just be making a Writeabout app that supports iOS. If there’s not too much legwork to get it working in Android, I will also support that.