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 are useful whether changes come from a person or a coding agent. ReScript keeps the edit-review-fix loop tight for both humans and tools.
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) {
var count = props.count;
var times = count !== 1 ? (
count !== 2 ? count.toString() + " times" : "twice"
) : "once";
var text = "Click me " + times;
return JsxRuntime.jsx("button", {
children: text
});
}
var Button = {
make: Playground$Button
};
export {
Button,
}

Quick Install
You can quickly add ReScript to an existing JavaScript codebase in minutes. That low setup overhead also makes it easy to experiment in fast-moving teams, including ones trying AI-assisted workflows.
The fastest build system on the web
Type Better
The familiar JS ecosystem at your fingertips
Why ReScript works well with coding agents
Coding agents tend to work best when the surrounding system is readable, predictable, and easy to review. ReScript helps by keeping the source language simple, the compiler feedback fast, and the generated output understandable.
Readable code helps agents stay on track
ReScript's syntax is small, consistent, and easy to scan, which makes generated edits easier to inspect and prompts easier to ground in real code.
Compiler errors create a tighter repair loop
Instead of vague runtime failures, agents get concrete feedback about what is wrong and where the contract broke. That makes iterative repair much more reliable.
Humans can still review the result
ReScript compiles to straightforward JavaScript, so teams can inspect output, debug behavior, and keep handoff between human and agent work understandable.

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. That pragmatic mindset matters even more when teams start using coding agents and need changes to stay understandable.

Tooling that just works out of the box
A builtin pretty printer, memory friendly VSCode and Vim plugins, and a stable compiler keep the workflow tight without lots of extra configuration. That's especially useful when both humans and AI tools are contributing changes.

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

