From TypeScript to ReScript

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

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • purescript

    A strongly-typed language that compiles to JavaScript

  • bs-material-ui

    ReScript bindings for Material-UI

    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

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • Seed

    A Rust framework for creating web apps

  • fartscroll.js

    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

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

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • 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 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