I write this as an active contributor to Actix-Web, and working on a Rust web framework of my own. Rust is amazing, the guarantees and performance it provides are incredible. However, the async ecosystem is immature. Without GATs and TiiT, you cannot have async fns in traits, making writing middleware and services much more difficult to write. Along with that, async and lifetimes, or unmet Send + Sync bounds leads to long, often confusing compiler errors. Current runtimes require you to think about blocking. While this is not as much of a problem for those who have dealt with this from other languages, I cannot count the number of times I have seen someone write `tokio::spawn(async { users::get(conn) })` - blocking the executor. Mixing async and sync, or even worse, mixing tokio and async-std is a pain. Compared to Go and Javascript, Rust will be hard, there is no denying that. I love Rust. As someone who understands and writes lower-level async code, I do think it has a place in the web world, and there is active work being done by the async-wg to improve ergonomics. However, it's not there as a general-purpose server-side language yet, and I am not sure it will ever be. Sure, use it for certain services, or side projects you want to have fun with. Is there ever going to be a "Rails for Rust"? Probably not, but people will and are trying :)