boring technology is a shark, not a dinosour.
this page has an approach for evaluating the boringness of technologies.
bts is the boring technology score. you calculate bts by multiplying the following factors:
extremely boring technology stack is an opinionated technology stack that works for a surprisingly large number of use cases. the accidental complexity is minimized by just using postgres for everything, using multi-page app for almost everything, and when that fails, using hypermedia-driven architecture.
technology | name | bts | replaces | comments |
---|---|---|---|---|
backend | django | fastapi, flask | you will quickly outgrow the simplistic solutions, just use a basic django template | |
frontend | django | REST + react/vue | use admin where possible, mpa for all user views, and htmx/alpine when that does not work | |
database | postgres | sqlite, mysql | while postgres is more complex than sqlite, it has features allowing you to avoid other components | |
background tasks | django-tasks | celery | celery established, but it is too complex | |
caching | django | redis | use plain django caching for basic needs. for ‘webscale’ caching, use django-distill + s3 + cdn | |
full-text search | postgres | elastic | ||
queue | postgres | rabbitmq, kafka | postgres queues can be used to get ACID properties | |
periodic running | superchronic | cron | version for cron that runs in docker container | |
multi-process | honcho | systemd, k8s | running multiple things inside one paas contaoiner | |
dependencies | pip | poetry, uv | uv looks promising, but so did poetry | |
deployments | docker + paas | k8s | just use a paas, such as fly.io |
i do django consulting,
contact me at mikko at boringtechnology dot org