JavaScript Made Simple for Humans and AI
Types > Vibes
ReScript is a strongly typed language that compiles to clean, efficient JavaScript that humans and AI tools can read and understand.
Its fast compiler and static type system keep feedback loops tight, so you can move quickly with AI assistance while maintaining confidence as your codebase grows.
Readable in. Predictable out.
Readable source, predictable output, and fast compiler feedback make ReScript easier to work with. Those qualities help while learning, debugging, reviewing changes, or bringing coding agents into the workflow.
module Button = {
@react.component
let make = (~count) => {
let times = switch count {
| 1 => "once"
| 2 => "twice"
| n => n->Int.toString ++ " times"
}
let text = `Click me ${times}`
<button> {text->React.string} </button>
}
}import * as JsxRuntime from "react/jsx-runtime";
function Playground$Button(props) {
let count = props.count;
let times = count !== 1 ? (
count !== 2 ? count.toString() + " times" : "twice"
) : "once";
let text = "Click me " + times;
return JsxRuntime.jsx("button", {
children: text
});
}
let Button = {
make: Playground$Button
};
export {
Button,
}

Leverage the full power of JavaScript in a robustly typed language without the fear of `any` types.
ReScript is used to ship and maintain mission-critical products with good UI and UX.
Quick Install
The fastest build system on the web
ReScript cares about a consistent and fast feedback loop for any codebase size. Refactor code, pull complex changes, or switch to feature branches as you please. No sluggish CI builds, stale caches, wrong type hints, or memory hungry language servers that slow you down.
Type Better
The familiar JS ecosystem at your fingertips
Working with coding agents
The same qualities that make ReScript pleasant for people also make it a good fit for coding agents: clear source, fast feedback, and JavaScript output that stays easy to inspect.
Clear code is easier to guide
ReScript's small, consistent syntax makes prompts easier to ground and generated edits easier to review.
Compiler feedback helps close the loop
When a change breaks a contract, the compiler points to it directly. That gives both humans and tools a faster path to a correct fix.
The output stays readable
ReScript compiles to straightforward JavaScript, so teams can inspect behavior, debug issues, and hand work back and forth without losing the thread.

A community of programmers who value getting things done
No language can be popular without a solid community. A great type system isn't useful if library authors abuse it. Performance doesn't show if all the libraries are slow. Join the ReScript community — A group of companies and individuals who deeply care about simplicity, speed and practicality.

Tooling that just works out of the box
A builtin pretty printer, memory friendly VSCode & Vim plugins, a stable type system and compiler that doesn't require lots of extra configuration. ReScript brings all the tools you need to build reliable JavaScript, Node and ReactJS applications.

Easy to adopt — without any lock-in
ReScript was made with gradual adoption in mind. If you ever want to go back to plain JavaScript, just remove all source files and keep its clean JavaScript output. Tell your coworkers that your project will keep functioning with or without ReScript!
Trusted by our users
Curated resources

Language Manual

ReScript + React

Gradually Adopt ReScript

