Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 39 additions & 8 deletions apps/docs/markdown-pages/community/roadmap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,47 @@ order: 3

# Roadmap

The ReScript development is an Open Source effort coordinated by individiual Open Source contributors, its creator [Hongbo Zhang](https://github.com/bobzhang) and members of the [ReScript Association](https://rescript-association.org).
ReScript was created by [Hongbo Zhang](https://github.com/bobzhang), whose foundational work shaped the language and compiler. Today, ReScript is developed in the open by individual contributors and members of the [ReScript Association](https://rescript-association.org).

For latest development updates, please check out the [ReScript forum](https://forum.rescript-lang.org) development section and the [ReScript blog](/blog), or follow the relevant GitHub milestones on the rescript-compiler repository.
## ReScript 13

## Current focus
The target for ReScript 13 is **Q4 2026**. This roadmap describes the intended outcomes of the release rather than tracking the day-to-day status of individual changes.

Major v12.0 release (see [v12 milestone](https://github.com/rescript-lang/rescript/milestone/16)).
The main areas of focus are:

- Move the [Rescript Core](https://github.com/rescript-lang/rescript-core) standard library into the compiler / remove the OCaml standard library
- A new build system tailored to ReScript's needs ([rewatch](https://github.com/teamwalnut/rewatch)) for better monorepo support and even faster compilation speed
- Make it easier to create libraries for consumption from TypeScript with GenType
### Source Maps and Debugging

**Note:** Release goals may be subject to change.
Compiler-generated source maps, with linked, inline, and hidden modes, will make generated JavaScript easier to debug. Tools that consume source maps will be able to relate stack traces and runtime performance profiles back to their original ReScript source.

### Faster, Observable Builds

ReScript 13 completes the transition to the native Rewatch build system and removes the legacy Ninja-based builder.

The build scheduler uses a work-stealing dependency-graph dispatcher ordered by critical-path priority. This avoids waiting for the slowest file in each compilation wave and makes better use of the available CPU cores. The build system also focuses on reliable monorepo builds, production-only builds, feature-gated source directories, and a better watch-mode experience.

OpenTelemetry tracing through OTLP exposes initialization, dependency discovery, parsing, per-file compilation, and post-build work. This provides a modern path for investigating build performance after the removal of the legacy `bstracing` tool.

### TypeScript Declarations

Direct TypeScript declaration (`.d.ts`) generation in the compiler will make ReScript libraries easier to consume from TypeScript without requiring a separate type-information parsing pipeline. The focus is declaration output for ReScript-generated JavaScript, not compiling ReScript to TypeScript source.

### JavaScript-Style Control Flow

ReScript 13 adds `for...of` and `for await...of` loops for iterables and async iterables. Loops also support `break` and `continue`, making common JavaScript control-flow patterns available without dropping down to bindings or helper functions.

### More JavaScript-Aligned Language Features

The ReScript 13 language direction also includes:

- dictionary spreads
- record rest destructuring
- inline record types in external definitions
- first-class, type-safe tagged-template functions

ReScript 13 also removes deprecated configuration, syntax, and standard-library APIs, defaults the module system to ES modules, and raises the minimum supported Node.js version to 22.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also want JavaScript-Aligned Naming:

  • bool -> boolean
  • float -> number
  • int -> int32
  • Nullable -> Nullish

I have issues with the agent misleading them without extra help, and I don't see much value in sticking to old names.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I imagine it would cause a lot of migration friction though 🤔

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Never had such issues with GPT models.
I agree that an alignment makes sense for the users though.
I think this warrants a forum survey though. Or we have another way of aliasing everything.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

int32 already exists as I know. Most of the issues I had is with it using Nullable as T | null, while it's T | null | undefined.

I think an alias with deprecation message you can opt-out will be a good solution

## Follow Development

For the latest details, follow the [ReScript 13 compiler changelog](https://github.com/rescript-lang/rescript/blob/master/CHANGELOG.md), the [development section of the ReScript forum](https://forum.rescript-lang.org/c/development/11), and the [ReScript blog](/blog).

Release contents and timing may change.
Loading