Pragmatic Intro to Rust Web Development: Overview
An article series that will guide you to Rust web dev competence without falling into endless learning and paralysis by analysis.

When I was learning Rust, I made a lot of mistakes. But the biggest one was reading too much and practicing very little. Practicing is how you really drive in the knowledge. Without it, it’s challenging to sit down and write something. You also get more insecure the further you get in your reading as you see how much you don’t know. If you instead jump right in, you don’t worry very much about whether what you are doing is right or not. You tackle each problem as you encounter it. However, Rust has many rules, so there will be many problems to encounter, which might make you want to give up. You might convince yourself that Rust is not the right tool for the job and that you are just wasting your time.
In this series, I want to guide you through both these traps and give you a path where you can be productive and learn. It will be fun since you will build competence fast on a very happy path. You will also notice that Rust web development is as productive as in other languages once you know it, and have good crates(libraries) at hand. At the end of the series, you will not only have a web application that you fully understand written in Rust, but the app will also contain what I, with my over 20 years of both personal and professional web development experience, expect in a production-ready app.
Each part of the series will stand on its own, and you don’t have to follow the whole series to get value from the individual parts. If you find anything hard to understand, please leave a comment, and we can see if we can come to a better understanding.
Since I feel that it’s still a bit early for global adoption of front-end Rust compiled to WebAssembly, in this series, I will use Vue with the composition API as the front-end framework. If you wonder why I’m not using Solid or Svelte or something “newer,” you can read about that here.
The content of the series will include (but not limited to) these things:
- Gentle introduction to Rust using Axum
- Mostly Vue frontend and improve our Rust+Vue developer experience
- We build a to-do app with in-memory state on the server.
- Add a database (SQLx, Postgres) to our todo app
- Add users and authentication (Argon2, JWT) to our todo app
- Real-time is more fun; therefore, we will add WebSockets to our todo app
- Prepare for production (containerize, graceful shutdown, logging, deployment)
- Bonus: Add GraphQL (async-graphql)
More things might be added as we progress, and comments come in. You might have a comment already after reading this teaser article.
It is also essential to mention that you should read the official Rust book while following this series. You will most likely be done with the series before you finish reading the Rust book. After that, you should continue to build your projects while finishing reading the book.

While going through this series, I want you to read an article, then go and do it for yourself. When you need a reminder, try other sources like the Axum docs, if it's an Axum issue, and so on, before going back to the article. The goal is not to put you in tutorial hell but to give you the tools to help you self-solve your problems in the future.
New articles will be published when they are done, and this article will be updated with links as new articles come out. The plan is to have video versions of these articles on my youtube channel as well, articles with videos will be updated and videos added.
If you feel that I should have included something more in the series than the things already present in the list, leave a comment and it might happen :)
Clap if you like the idea, and follow me if you want to increase the chance that the articles pop up in your feed as they come out.






