Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Members / jhb / My preferred web dev stack

My preferred web dev stack

by Jörg Baach last modified Apr 02, 2022 01:00 PM
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.
  • 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.
  • HTMX: this is exactly how much JS I want to write: none. It integrates the same way as Chameleon with HTML. This makes it reallly easy to understand whats going on. And I like rendering stuff on the server
  • UIKit: 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 definetely require is transactions though.
    • Neo4j as a native graph database. I have a love-hate relationship with it.
    • ZODB is a fantastic generic object database for/in python.  Its schema free.
    • MariaDB or  SQLite if there is need for relational databases. I guess I need to switch over to Postgres.
  • git of course

As you can see, 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?

  • Python: it is so easy to read, no brackets, and writing it is a joy (most of the times)
  • Objekt database: this allows for a really flexible development, where the implementation can follow the ideas and not the other way around
  • ZPT: A page templating systems where even the source is valid XML, the code is where the action happens, and powerful features (macros, slots, i18n)
  • Server based: I don't like to have to write my code on the client. First, javascript. Second out of security reasons - in the end I need to validate everything on the server anyhow.
  • Transactions: I honestly don't see how one can develop without proper transaction suppert. Before that I messed up my databases at times. Use transactions, and any problem in the code will rollback any writes to the database.
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.

 

Add comment

You can add a comment by filling out the form below. Plain text formatting.

Question: What is 23 plus 19?
Your answer: