My preferred webdev stack


Description of my preferred web development stack

Sometimes I get asked about my preferred development stack. Here is the answer:

Python: I am not a language geek, and need something that works, is powerful, and easy to type and read.

Flask: Compared to web frameworks its rather small, but with good enough and up-to-date documentation. Its popular, but not too modern. Compared to fastapi it is a bit more flexible.

HTMX: htmx focuses on server interaction. For client interaction one could add hyperscript from the same author or alpine.js

This is exactly how much JS I want to write: none. It integrates the same way as Chameleon with HTML. This makes it really easy to understand what is going on. And I like rendering stuff on the server.

Chameleon: instead of the standard template language I use this one for web dev. I used Zope and Plone for far too long to not love this system. It integrates nicely with HTML/XML.

UIKit: I am not really familiar with all the CSS tools and frameworks, but I heard that tailwindcss is a good alternative.

again, I don't really want to touch CSS (and you don't want me to either). This allows me to create nice looking pages without too much fiddling with details.

For persistence, it really depends on the project. What I definitely require is transactions though.

flowchart BT; database[persistence] chameleon --> python python-->html-->flask htmx-->html uikit-->html neo4j-->database memgraph-->database ZODB-->database MariaDB-->database sqlite-->database database --> python

The stack visualized

Also, it's all Open Source. As a consultant I could not recommend professional clients otherwise. The two main reasons are tie-in and security.

Not really part of the web stack, but my everday, all day work environment: PyCharm. Because of java it tends to have slight font rendering issues in scaled environments, but other then that it is a must for me.

Why those?

I have been for a long time in web development, and one of the best experiences was with the Zope Application Server. What did I like there?

Now Zope has probably seen its best days, and as soon as you leave the through the web development and start to look under the hood, you are up for a ride down the rabbit hole. Also, Zope likes to arrange objects in Trees, which is good for security, but is still akward when working on graphs.

So, the above are newer components that help a lot with my use cases. And I especially want to hightlight the combination of Chameleon, UIKit and HTMX: all of those allow to change behaviour by working on tags, this means that most/all of the "action" happens in the same place. After a while you really start to feel the coherence. It's easier to debug, and more fun to develop.