Introduction
Over the years, I’ve worked with several web frameworks—Go, Rust, Elixir—each offering its own strengths, patterns, and challenges. But something I noticed early on is that while documentation covers the basics, real-world app structures and best practices aren’t always easy to find.
This series is my way of sharing everything I’ve learned—the patterns, tools, and battle-tested solutions I wish I had when I first started with each stack.
You won’t just find "Hello, World!" demos here. These are real-world apps that tackle common challenges developers face in production.
What is the Polyglot Journey?
The Polyglot Journey is about building the same core features across multiple tech stacks. This lets us explore how different ecosystems solve the same problems and compare their strengths, weaknesses, and trade-offs.
Each app will include:
Authentication: OAuth, magic links, 2FA.
File uploads: Using MinIO for object storage.
Search functionality: Powered by Typesense.
Stripe billing integration: Subscriptions, invoices.
Frontend interactivity: With HTMX/AlpineJS—minimal JS, maximum effect.
Background jobs: RabbitMQ/Kafka for processing tasks asynchronously.
Streaming responses: Real-time feedback in your app.
Clean project structure & testing patterns: Scalable, maintainable, production-ready code.
The Stacks I'll Explore
Go Frameworks:
Fiber – Minimal, fast, and expressive.
Gin – Mature, with great documentation.
net/http – The raw power of Go’s standard library.
Rust Frameworks (with Tera templates):
Axum – Modular, async-first, built on tower.
Actix – High-performance, actor-based concurrency.
Warp – Functional-style with composable filters.
Rocket – Developer-friendly, macro-powered.
Elixir Frameworks:
Phoenix + Absinthe (GraphQL) – Real-time with GraphQL power.
Phoenix LiveView – Real-time UI updates without writing frontend JS.
Phoenix Full-stack (non-LiveView) – Classic MVC with templates and APIs.
Why This Series?
Choosing the right tech stack can feel overwhelming. Every framework looks great in isolation, but how do they handle real-world scenarios like auth, payments, search, or background jobs?
By building the same features across different stacks, I’ll share:
How each ecosystem handles common tasks.
The developer experience of working with each framework.
Performance discussions and potential pitfalls to watch out for.
Architecture patterns that scale.
Who is this for?
Developers curious about exploring Go, Rust, or Elixir.
Backend devs looking for real-world examples beyond tutorials.
Anyone who wants to compare frameworks before starting their next project.
Engineers who love learning new ecosystems and seeing how they stack up.
My Experience So Far
This series builds on my past work, including 108 days of Go and Rust, where I’ve already explored many patterns and best practices. The Polyglot Journey is the next step—putting all that experience into real apps that you can learn from, fork, or extend.
Follow Along
You can follow the journey right here on thedeveloper.tech. I’ll post detailed articles for each stack, covering the why behind each decision and sharing code snippets, architecture diagrams, and performance benchmarks.
I’ll also post highlights on dev.to, but the full deep dives and source code breakdowns will live here.
Let’s build together and explore how Go, Rust, and Elixir shape up in the real world! 🚀