Hasura API engine & Elm— let’s go bug-free & rapid app development

Kaspar L. Palgi
Nov 21, 2020 · 5 min read

Hasura BaaS

Hasura is Backend as a Service that means you get most of your backend API (GraphQL API — the next generation of the well-known REST API) out of the box and back-end development will be INSANE FAST. More than 10x faster in most cases!

Usually BaaS like for example Google’s Firebase means that you get super rapid back-end development out of the box and it’s all already hosted and set up for you for free but once you start getting some traffic you will notice that monthly bills are getting way higher compared to the usual hosting plans. With Hasura Open-Source GraphQL Engine it’s different — you set it all up in your AWS (Amazon Web Services) and enjoy 12 months free tier and pay after that most probably less than $10 depending on your traffic amount of course but many times cheaper to hosted BaaS service providers such as Firebase for example.

At many cases, Hasura gives you out of the box also admin panel to for example manage your users, orders, products, customers, invoices, whatever your app needs admin panel for.

Of course, Hasura isn’t some miracle that solves everybody’s back-end problems at least 10x faster but at CrewNew we use about 70–80% less NodeJS or Laravel for the back-end for the new projects since we started using Hasura.

And programmers behind Hasura are top experts and know what they are doing so you don’t have to pay $100+ hourly rate but get your back-end done by programmers with such rates. They got Feb 2020 also A series funding $9.9m to accelerate product delivery using GraphQL.

Read also, how Hasura saved Cresta $50k>>

Elm Front-End

One of the guarantees of Elm is that you will not see runtime errors in practice. Elm treats errors as data so there can’t be any crashing! And it doesn’t have NULL — so there are never any surprises. Coding without the surprise crashes means hours and hours saved in debugging = cheaper total cost & less stress for programmers when the apps scales. And happy programmers means better software and less money spent on recruiting new programmers!

In Elm impossible states are made impossible. No need to write unit tests!

And Elm is blazing fast! It’s faster than it’s competitors React, Vue and Angular.

Elm is fast for the end-user because it has runtime system that might sound something big but actually, Elm is way smaller than it’s competitors (see the pic).

So far: no bugs, fast & small. Let’s move on!

And then there’s Elm UI that means that writing and designing the layout should be as simple and as fun as possible. And many layout errors (like you’d run into using CSS) are just not possible to write in the first place! Layout and style are explicit and easy to modify. CSS and HTML as tools for a layout language are hard to modify because there’s no central place that represents your layout.

So why not is everybody using Elm? One of the reasons is money! React has the Facebook’s bucks, Angular has the Google’s bucks! And Vue is actually nothing drastically new — just little simpler and a bit better React. But they’re all just JS (JavaScript). And people are religious! I mean with this that if you’re told since the beginning of your career JS, JS, JS and you’re been doing your whole life JS then you’re religious to JS and you deny to see something different and way better.

Elm is a delightful functional language for reliable webapps. It compiles to JavaScript, has great performance, no runtime exceptions, and can be embeded easily into existing JS projects without the need for huge rewrites or time investment. freeCodeCamp.org

OK, and finally some downsides of Elm:

  1. The biggest downside is the number of developers available is small compared to for example React developers. But when we started at CrewNew looking around Elm communities we found out that the average Elm developer is in general way better developer than for example React developer. And Elm developers are all Elm fans and don’t want to move away from Elm. Now we just don’t have great Elm developers on board but also some of our old team members started learning Elm (hey, it’s just bit more than 20 pages manual).
  2. In Elm, you can’t leave small bugs in and move on. You must fix every tiny bug to move on because otherwise, it won’t just compile. In React you could maybe go 15min earlier to enjoy your free time and leave some small bugs in but in Elm you can’t. But it will pay you back later. For example, 3 months later you might be asked to add some functionality and then you can’t remember those small bugs and spend hours thinking why that important feature now doesn’t work! So if you’re building your MVP and want to get everything done super fast = cheap then Elm isn’t the way to go but if you’re building something bigger than you want to scale then in long run Elm means fewer headaches and way less money spent over the years.
  3. Less working hours for developers means less money for developers. There’s even a video on YouTube: I used Elm in production and it cost me my job. He built a news portal for a major US magazine in Elm and once it was ready he had nothing else to do so he lost his job. With some other stack, he could keep his job by endlessly debugging and fixing.

Elm is like chalk and cheese difference to the kind of development. I’m finding it increasingly difficult to program on other languages since I met Elm. Elm has decreased my confidence in other languages.


Web / Mobile Design & Development Agency of Freelancers.


Web / Mobile Design & Development Agency of Freelancers. Mostly European top programmers, rapid designers, and local project managers, internet marketers, photographers, video producers, copywriters, etc. etc. Top 6keywords: Laravel, VueJS, React, NodeJS, PWA, SPA

Kaspar L. Palgi

Written by

Founder and CTO of CrewNew.com & e-Stonia.co.uk


Web / Mobile Design & Development Agency of Freelancers. Mostly European top programmers, rapid designers, and local project managers, internet marketers, photographers, video producers, copywriters, etc. etc. Top 6keywords: Laravel, VueJS, React, NodeJS, PWA, SPA