From TypeScript to ReScript

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • purescript

    A strongly-typed language that compiles to JavaScript

  • rescript-mui

    ReScript bindings for MUI

  • I've been using ReScript for a few months now. So far I mostly like it, but it takes some time to get used to it. The error messages can be confusing though so I try not to depend too much on type inference. The other downside is that some bindings for some of the web apis seem to be missing (like for the types in the Dom module).

    Btw, for Material UI there are already bindings [1]

    [1] https://github.com/cca-io/rescript-material-ui

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Seed

    A Rust framework for creating web apps

  • fartscroll.js

    Discontinued You want fart noises as you scroll? We've got you covered.

  • As a sort of litmus test I use the number of stars a superset of(or language compiling to) JavaScript has on GitHub and how that compares to fartscroll.js: https://github.com/theonion/fartscroll.js/

    By this measure ReScript is still a niche language.

  • lwt

    OCaml promises and concurrent I/O

  • I have to admit I don't know much about ReScript and only have very basic exposure to OCAML, here is how you do await in it:

    https://github.com/ocsigen/lwt

    The `let* in` is a generic syntax for monads, it doesn't need a special one just for promise. This was in fact a debate back when async/await was in consideration for ECMAScript, but special syntax is hip so now we have `async/await` for Promise, `.?` for optionals and `flatMap` for arrays, basically the same thing.

  • from-typescript-to-rescript

    Frontend of https://Inhyped.com written in TypeScript and rewritten in ReScript

  • genType

    Discontinued Auto generation of idiomatic bindings between Reason and JavaScript: either vanilla or typed with TypeScript/FlowType.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • zod

    TypeScript-first schema validation with static type inference

  • You can accomplish it with a library like zod[1]. It's not the prettiest though; first class support would definitely be better.

    1 - https://github.com/colinhacks/zod

  • rescript-compiler

    The compiler for ReScript.

  • Idris2

    A purely functional programming language with first class types

  • Idris 2 looks promising... I suggest keep an eye on it https://github.com/idris-lang/Idris2

  • melange

    A mixture of tooling combined to produce JavaScript from OCaml & Reason

  • There is a fork of ReScript that supports ReasonML syntax and with the goal of maintaining Ocaml compatibility: https://github.com/melange-re/melange.

  • Fable: F# |> BABEL

    F# to JavaScript, TypeScript, Python, Rust and Dart Compiler

  • There is also F# via Fable: https://fable.io

    Business logic can be shared with .NET and it has lots of ways to interoperate with JS. There's even a TypeScript converter though of course it's not as pleasant as "yarn add" and YMMV : https://fable.io/ts2fable/

    Here's a demo of building some React components in F#: https://www.youtube.com/watch?v=a6Ct3CM_lj4&t=860s

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts