Janky template revelations: Reassessing Project Lightbeam’s goals

I’m still thinking about templating languages in Python. I dislike all of them. Great templating is the core of a great CMS, and I don’t think great templating is available in Python right now. Having peaked under the hood at a few Python libraries recently, I’m also fairly confident that it’s something I don’t want to spend my time doing right now.

On the other hand, I’m not eager to walk away from this project. I’ve really been enjoying it so far, even though it’s slow. My Python is improving. This is a problem I’m still interested in solving.

I have a few thoughts.

  • Even if my solution isn’t great, I’m competing against WordPress. I doubt that even with something janky I’d personally find it worse to use than WordPress.
  • Maybe if I just accept the end result will be janky, I can crank through building the entire framework. The whole thing could be janky. If templating–which is one of the core value props of a CMS–is gonna be janky anyway, why spend time worrying about the code framework quality? I’ll have a better sense of what works once I’ve touched every piece of it, yet right now I’m crawling at a snails pace.

Knowing that I’m going to be at least somewhat disappointed with the result, it makes me want to push through to a working version 0.1 as fast as possible. By that time, I’ll understand the problem space much better. Heck, version 0.2 could end up being a complete rewrite based on my learnings. I should work to be okay with that.

I’m not going to be happy with any of the templating languages. I’ll probably need to build my own at some point to make the project hit the way I want. And right now I don’t have the skill or the inclination to do that.

So starting from this moment, I’m no longer building Lightbeam. I’m building a Lightbeam prototype. I give myself permission to let all of my architecture be bad and all of my code be disposable. I didn’t understand the problems with templates until I was living them, and I can assume that every part of the system is going to be like that. So I’m gonna start digging into it faster. I’ll do all the hacks and take all of the shortcuts. None of this is production code that I’m paid for, so it should be fine.

I actually feel like a weight has been lifted from my shoulders. This is gonna be tight.

Leave a comment