Before we go further, let us ruminate on why was Realm created, who is it for etc.
Realm was created at, and powers bulk of Acko.com starting about March 2018, with awesome contributions from Jatinder(Tinder), Gagan, Saleem, Sonali, Raka and Sourabh. Later on Abrar and Swapnil made it even better (read: opensource-able).
Before Realm, we used to be big fans of Django, which in our experience quite lives up to its tagline: the framework for perfectionists with deadlines.
We needed something faster (runtime), and after a misadventure with Go, which showed us a benefits of type-system (and compiler actually for once helping you!), we realised we wanted to use Rust and Elm.
Realm was our answer to quest of the holy grail: as productive as Django, and as fast as Rust allows at runtime, and Elm: for we were really getting spoilt.
One question we have asked ourselves often is: are we like Django or Flask? Django/Ruby on Rails are opinionated frameworks, that try to do everything for you, so you can focus on what is unique for you. Flask/Actix on the other hand, give you basic utilities to create your own solutions.
We are fond of Django/RoR approach. We have a big-ish team, people are coming and going, and we have seen that opinions do not scale. In React there are 100 ways to do something, and nobody knows what are the tradeoff, and things change fast. We think this is not great for us.
We wanted a “right-way” to do web development. We are far from it, but Realm is our current answer.
From time to time you will see we picked as fast as Django (ease of development) over as fast as Rust (sheer runtime performance) - if we had to chose.
Side Note: You will see Realm is sync, and Rust is going gaga over async these days. Sync makes things easy, and is still blazing fast. We know how to do it well. Async, we will wait and watch.
Enough talk, start with quick start tutorial.
rustfmtFor Some Section