Server-side bottlenecks are more often than not database reads/writes and other IO. And the few CPU-intensive operations can be delegated to libraries written in C.
Pure Python is slow for CPU-intensive tasks, but that doesn't mean that a Python webserver is necessarily slow.
As an example, https://git.sr.ht/~sircmpwn/git.sr.ht/tree/master/gitsrht takes 600-800 ms to generate, and it's probably heavily cached already. What will happen when they get more users? The site will be unbearably slow, unless the guy starts spending thousands in servers.
800ms is a reasonable response time, and if they scale up according to their userbase, they will hopefully maintain that time.
(Also, we don't know how much of that 800ms is Python vs. IO)
https://github.com/pallets/jinja
0% C
Also 800 ms is NOT a reasonable response time to generate what basically is a bunch of text, that is absurd, but I guess this is the baseline in 2019.
I trust all IO is cached. The author can confirm it. This is just how slow Python is.
[0] https://git.sr.ht/~sircmpwn/git.sr.ht/tree/master/gitsrht/bl...
$ curl -s https://sourcehut.org/|egrep 'meta.*gen'
<meta name="generator" content="Hugo 0.57.2" />
[0] https://gohugo.io/https://git.sr.ht/~sircmpwn/meta.sr.ht/tree/master/metasrht
https://git.sr.ht/~sircmpwn/git.sr.ht/tree/master/gitsrht
https://git.sr.ht/~sircmpwn/core.sr.ht/tree/master/srht
edit: It is using flask according to this blog.
https://drewdevault.com/2019/01/30/Why-I-built-sr.ht-with-Fl...