Notes from the Bar is a weekly series cataloging the research, development, and use of Barback.
So… yeah! This is the first one of these that I’m doing, and as I shift more of my time and attention to Barback I think this will be a valuable resource to sort of gather my thoughts and figure out what I’ve done and what I need to do next. This is strongly inspired by the past few episodes of Giant Robots which have been sort of mastermind-y things: two folks talk about what they’ve been working on on their SaaS products and what they plan to work on moving forward.
While this is hardly a SaaS, I think I need to be writing about Barback a bit more, and I like the idea of reserving Sunday evenings to reflect on the work I've done.
What I did this week
This week was actually super productive. That is, if your definition of productive weights for ‘entire codebase rewrites’ — I finished and deployed the Django rewrite of this site, and am super pleased with the result. It’s already a pixel-perfect revamp of the original Hugo site, with a number of improvements.
My logic behind the rewrite was actually pretty sane. I’m finally getting around to adding server-side sync into the iOS app so I can update recipes and ingredients in a manner decoupled from actually shipping new versions of the app. Naturally, this means I needed to be able to serve JSON — while I could theoretically just serve this statically (via Hugo or S3 or whatever), I want some level of access control behind the API.
Meanwhile, the web side of things were growing increasingly gross. I wrote about the stack previously, and while it was SUPER performant it was becoming a massive hassle to actually update the recipe data and propogate it everywhere.
Plus, I wanted to do some more sophisticated stuff with this data — actually tracking and informing the sources of recipes, for instance — and it seemed rational to dump this into a database sooner rather than later.
So, that was the month of January — moving everything to Django!
It honestly was a pretty smooth migration: the most complicated part of the codebase is probably the templates themselves (which were ported verbatim from the old Hugo theme), with things like class-based views and general Django patterns doing all the heavy lifting.
I also moved the marketing platform that powers @getbarback to Django, as well as this blog. Again, pretty smooth — the blog is basically tutorial-level complexity, and the marketing platform is a half-clever implementation of an RSS parser that checks for recent tweets and weights blogs that haven’t been posted in a while.
(This is staying closed source for the time being — mainly because I have no real reason to open source it. There’s nothing exciting going on, as opposed to the relative novelty of a mature Swift codebase.)
That’s great, but I paid $4.99 for the app and don’t really care about the web version. When do I get new things?
As I said, I originally started the Django migration as a purely iOS thing — to enable sync — and then it sort of got away from me. I think part of this is just how much more comfortable I feel in Django compared to Swift. Maybe comfortable isn’t the right word (I certainly feel comfortable with the Swift language at this point) — I find that the world of Python is just so much less frustrating than the world of iOS.
(The beast in the room right now is “why buy the app if there’s a polished version of the database on the web?” The answer to that question is “because I haven’t figured out how to monetize the web version yet.” But working on the web app helps me suss out these details and figure out where this is going to end up.)
But after spending a couple weeks ignoring XCode, I know I need to jump back in — and that’s my plan. I have a half-dozen bug fixes ready to ship, and this next week will be spent just getting everything else ready and adding a couple quality of life things.
In no particular order, the things I’d like to tackle this week:
- Peek/pop support
- A permanent fix for a persistent issue with the search bar in the searchable view controllers
- Ingredient view support for the iPad storyboard
- Finalize sync mechanism
Long story short — I’m a huge fan, of the liqueur and the cocktail. We ended up playing around and landed on a slightly more violet-forward version of the classic recipe — 1.0cl instead of 0.75cl — but it’s a wonderful drink. It’s a drink that makes more sense in spring than a particularly cold January, but meh.