Hi all,
I’m currently learning Rust and want to go beyond exercises and toy problems by working on something real.
I’ve already built a Medium-style blogging platform with a Node.js/Express backend. It includes things like Redis caching, background jobs (for syncing view counts), OAuth 2.0 authentication, and media handling via Cloudinary. The system is live and working well.
Instead of starting a fresh Rust project, I’m considering rebuilding the backend using Axum + Tokio as a way to deeply understand async Rust in a real-world scenario.
My goal isn’t to fix performance issues — it’s to learn how Rust handles:
- async execution and concurrency
- state management in a web server
- error handling compared to Node.js
- structuring a production-style backend
A few things I’m unsure about:
- Is rewriting an existing, working project a good way to learn Rust, or would starting from scratch be more effective?
- For those who’ve used Axum, are there any gotchas when coming from an Express/Node.js background?
- How different (or difficult) is async Rust compared to async/await in JavaScript in practice?
- Would you recommend rethinking the architecture entirely, or trying a closer “translation” first and iterating?
For reference:
- Live project: https://dev-blog-post.vercel.app
- Repo: https://github.com/Halloloid/Dev-Blog-Post
Would really appreciate honest feedback — even if the answer is this approach isn’t worth it.
Thanks!