From TypeScript to ReScript

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

Our great sponsors
  • Mergify - Tired of breaking your main and manually rebasing outdated pull requests?
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • SonarLint - Clean code begins in your IDE with SonarLint
  • 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

  • Mergify

    Tired of breaking your main and manually rebasing outdated pull requests?. Managing outdated pull requests is time-consuming. Mergify's Merge Queue automates your pull request management & merging. It's fully integrated to GitHub & coordinated with any CI. Start focusing on code. Try Mergify for free.

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

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • 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