My mind is a runaway train

Photo by Robert Bye on Unsplash

My mind is a runaway train

AHHHHHHHHHH!

So I saw a tweet by the venerable swyx yesterday:

and it actually kind of resonated with me. You see, my "first love" in web development is Django. For as "antiquated" as it is when you compare it to things like Node, Go, or even things like FastAPI, something about the whole setup just works. Sure, there are myriad frustrations when you want to venture outside of what Django's core functionality is, but if you need to build something and you don't care about the minutiae, Django is fantastic. It provides built-in auth, routing is easy enough to do, it gives easy access to the request object, among many other things. There are definitely problems with it, though, too like dealing with static files, where to put code if you need any custom configuration, and other things. That said, since I knew a little python when I started web development this seemed the obvious first choice.

This also seems to be the way my mind wants to go any time I think about a new project to build that is not a static site. For example, in my spare time (what little of it I have) I'm currently building an app that is a weight tracker that uses the old Points Plus formula from Weight Watchers. I used Weight Watchers nearly 10 years ago now and I lost about 80 pounds in ~8 months and I had gone into maintenance mode until they overnight changed everyone in their system to their new (at the time) Smartpoints system. The problem for me was that I was on a system that worked, and all of a sudden my breakfast that only cost me 7 points on the old system was now 11 points. If there's one thing that is helpful when it comes to Weight Watchers systems it's if you follow it then it can bring about a lifestyle shift which helps keep weight off long-term. I went from 275 in July, 2012 to 195 in February, 2013 and while I'm back up to nearly 230 now, I was generally able to do a decent job keeping it off.

This seems tailor made to use Django because each user would have their own experience requiring authentication, and there is a very straight-forward schema from a database perspective. The problem that I run into, though, is that whenever I'm building a Django site I have this weird need to always want to ship a site with as little JavaScript as is humanly possible. I have this weird thought in my mind that if I'm going to be shipping JavaScript I might as well use something that's built for client-side interactivity instead of trying to mimic it myself. In the weight app, as an example, if you're setting up a recipe and you're trying to add a food to the recipe that doesn't exist then how do you go and create a new food (on a different page) while saving the user's progress up to that point in the recipe? It's easy enough with JavaScript but HOW DO YOU DO IT WITHOUT JAVASCRIPT? I'm genuinely curious.

That said, whenever I'm learning about a SSR framework like Next/Nuxt/SvelteKit and the instructor (usually Max at Academind) talks about rendering HTML on the server to be sent to the user I can't help but think "well why the hell am I even bothering with the frontend framework?" There's a very valid reason why I'm bothering with it, but that's just where my mind goes. My mind is going many places today.

That leads into the last point: as a developer who desperately wants to just build cool websites, there are many things I'm wrestling with that I want to build.

  • I'm currently recording a FastAPI tutorial to be released on YouTube soon
  • I'm working on the weight tracking app (backend in FastAPI is done, working on the frontend)
  • I will be recording a video about setting up a blog in Wordpress vs one in Strapi/SvelteKit
  • I have ideas for a couple of other apps/sites to build

This is all while having a full-time job and two young kids at home. Hopefully I can get some of this done before 2023 but who knows? I'm posting this for accountability: I have to get some of it done.