Consumie Dev Notes

Subscribe
Archives
November 13, 2024

Background, or Where Things Stand

Hi. This is a newsletter to talk about what’s going on behind the scenes of Consumie.com, a social network built around media consumption that I’ve been tweaking for years.

I first built Consumie in 2007, as a personal tool to aggregate the various lists of movies I’ve watched, books I’ve read, concerts I’ve attended, etc. I opened it up to a few friends, but that was it. The initial build was pretty straightforward — a PHP application using a MySQL backend.

My biggest issue was getting the data, but managed to cobble together a feed that grabbed the entirety of the IMDB catalog and fed it into my content table. I don’t actually remember where I was getting books from. Concerts came from last.fm, before they shut down their API.

Eventually, I switched over to allowing users to enter their own data for content, which ended up kind of a mess as people entered duplicate content and I spent a lot of time cleaning things up.

Back in 2021, the company I was working for ceased to exist and I had lot of spare time. I also wanted to get my React skills more up-to-date, since I learned React in the pre-hook days and needed to get more modern (and condition myself to write ES6 Javascript). I rebuild Consumie pretty much from the ground up with a Node/Express backend and React front-end. All the data is sourced from third parties and gets entered into the local database lazily (i.e., we don’t store every movie ever made, but when a user searches for a movie, we add all the search results into our database). I built out a surprisingly decent recommendation engine I might talk about later, but what’s up there now is pretty decent. It needs a better UI and has a few persistent bugs, but, now that I’m unemployed again, I’ve been working on rewriting it to make it better and to learn new things.

Here’s where Consumie v3 stands:

  • New backend. Whole thing is built in Java Spring Boot. It it pretty close to feature parity with the existing Node/Express backend, though I haven’t done recommendations yet. It also supports a lot of things I’ve been wanting to add (like more states of consumption — started/finished/DNC of a piece of content instead of a singular “consumed” event)

  • I built out an extensive frontend in Flutter to see how that would work. Flutter is weird. I got the display working pretty much as I wanted, but the web implementation absolutely does not feel like a web site. I kind of knew this going in, but it wasn’t until I was pretty far into things that I realized how much it was going to bother me to not be able to right click on links or to have a completely messed up history stack. I am pretty much committed to throwing all this out.

  • As I look around for a new frontend, I am starting to question whether I would be better off assessing the various open social network protocols to handle that portion of the application. My next step is to spin up AT Proto, Nostr, and Activity Pub servers and clients to see A) how tricky that’s going to be, and B) how doable it will be to attach the content portion of the application to the social network

Anyway, that’s where things stand. I’ll update with the results of my tests when I do them.

Don't miss what's next. Subscribe to Consumie Dev Notes:
Powered by Buttondown, the easiest way to start and grow your newsletter.