
CommunityNews
Why we chose Typescript for the Hasura Console
At Hasura, we wanted to introduce a statically typed frontend language for quite some time now. We discussed which one we should choose and evaluated options such as PureScript, TypeScript, ReasonML, and Elm. Following aspects were most crucial to us:
- Hasura Console is a pretty large codebase for a small team, so we can’t rewrite it all to the new language. We need something that works well with the existing JavaScript code. A language that we can inject into our codebase and gradually migrate.
- We use React extensively. Thus we need something that goes with React well and improves React components development.
- We want to enhance developer experience for the external contributors and us. By adopting a statically typed programming language, we aim to make things easier, and the development process way faster. We don’t want to introduce high adoption cost nor force developers to learn a new and completely different language.
After all of the discussions, we decided to choose TypeScript. In this article, I’m going to tell you how we made the decision and why we wanted a statically typed language in the first place. I will also walk you through all of the four languages by a brief overview of each of them.
This thread was posted by one of our members via one of our news source trackers.
Popular Frontend topics

**Run any code on any client.**With WebAssembly and Wasmer.
It’s been almost 6-months since we released Wasmer 1.0, and the community ...
New

Hi all,
With excitement we’re sharing today that Vue.js is Wikimedia
Foundation’s official choice for adoption as future JavaScript
fr...
New

Announcing TypeScript 4.6.
Today we’re announcing the availability of TypeScript 4.6. If you’re not yet familiar with TypeScript, it’s a...
New

Learning HTML was too hard so I made a compiler instead.
This is the 10-year story of how I struggled to learn how to code.
New

Effective TypeScript › What’s TypeScript compiling? Use a treemap to find out…
Has TypeScript gotten slow for you? Run this one magic co...
New

Type-Level TypeScript — Introduction.
A course to take your TypeScript skills to the next level!
New

A Game Engine in the Elm Style!.
A ‘Nu’ way to make games! The Nu Game Engine was the world’s first practical, purely-functional game en...
New

Welcome to the Open Source Seed Initiative - Open Source Seed Initiative.
Today, only a handful of companies account for most of the wor...
New

SVGs as Elm Code.
Moving SVGs out of the file system and into regular Elm code can make icons easier to manage, especially if you find y...
New

GitHub - adamshaylor/cooking-with-typescript: A collection of patterns for TypeScript 4.8.
A collection of patterns for TypeScript 4.8. ...
New
Other popular topics

Which, if any, games do you play? On what platform?
I just bought (and completed) Minecraft Dungeons for my Nintendo Switch. Other than ...
New

I’ve been really enjoying obsidian.md:
It is very snappy (even though it is based on Electron). I love that it is all local by defaul...
New

New

I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New

“Finding the Boundaries” Hero’s Journey with Noel Rappin @noelrappin
Even when you’re ultimately right about what the future ho...
New

Intensively researching Erlang books and additional resources on it, I have found that the topic of using Regular Expressions is either c...
New

Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
New

Author Spotlight:
David Bryant Copeland
@davetron5000
We’re so happy to bring you another Author Spotlight, a series where we sit dow...
New

Author Spotlight:
Karl Stolley
@karlstolley
Logic! Rhetoric! Prag! Wow, what a combination. In this spotlight, we sit down with Karl ...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /rails
- /js
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /onivim
- /svelte
- /typescript
- /crystal
- /kotlin
- /c-plus-plus
- /tailwind
- /gleam
- /ocaml
- /react
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /centos
- /html
- /php
- /deepseek
- /zig
- /scala
- /lisp
- /textmate
- /sublime-text
- /nixos
- /debian
- /react-native
- /agda
- /kubuntu
- /arch-linux
- /revery
- /ubuntu
- /django
- /manjaro
- /spring
- /nodejs
- /diversity
- /lua
- /julia
- /slackware
- /c
- /neovim