
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

Etsy’s Journey to TypeScript.
Over the past few years, Etsy’s Web Platform team has spent a lot of time bringing our frontend code up to...
New

GitHub - eeue56/derw: An Elm-inspired language that transpiles to TypeScript.
An Elm-inspired language that transpiles to TypeScript - G...
New

Assertion Functions in TypeScript.
TypeScript 3.7 implemented support for assertion functions in the type system. An assertion function ...
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

WebAssembly in my Browser Desktop Environment.
For over a year now I’ve been working on daedalOS, my desktop environment in the browser....
New

Recommendations when publishing a Wasm library.
A set of recommendations to make publishing a Javascript library that uses Wasm internal...
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

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

Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
New

Just done a fresh install of macOS Big Sur and on installing Erlang I am getting:
asdf install erlang 23.1.2
Configure failed.
checking ...
New

Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New

Hello everyone! This thread is to tell you about what authors from The Pragmatic Bookshelf are writing on Medium.
New

API 4
Path:
/user/following/
Method:
GET
Description:
Returns the list of all names of people whom the user follows
Response
[
{ ...
New

Biggest jackpot ever apparently! :upside_down_face:
I don’t (usually) gamble/play the lottery, but working on a program to predict the...
New

Hi folks,
I don’t know if I saw this here but, here’s a new programming language, called Roc
Reminds me a bit of Elm and thus Haskell. ...
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

Will Swifties’ war on AI fakes spark a deepfake porn reckoning?
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /rails
- /js
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /java
- /haskell
- /onivim
- /svelte
- /typescript
- /crystal
- /c-plus-plus
- /kotlin
- /tailwind
- /gleam
- /react
- /ocaml
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /centos
- /php
- /deepseek
- /html
- /scala
- /zig
- /sublime-text
- /textmate
- /nixos
- /debian
- /lisp
- /agda
- /react-native
- /kubuntu
- /arch-linux
- /ubuntu
- /revery
- /manjaro
- /django
- /spring
- /diversity
- /nodejs
- /lua
- /c
- /julia
- /slackware
- /neovim