A better Documentation Platform for Reason

The website reasonml.org is a community project dedicated to a better documentation experience for the Reason & BuckleScript platform and is currently a Work in Progress.

More details about this project and its high level roadmap (1-2 years) are documented here.

The reasonml.org website is currently in pre-alpha phase. Please be aware that the URL structure for this website is not finalized yet and may be subject to change.

We will introduce permalinks with our first stable release.

Current Progress

All the information you can find here is a fork of the official sources, unified and optimized for a single doc website experience. Especially for the BuckleScript documentation, you'll find some useful additions and better explanations for its functionality.

We always make sure to regularly sync with the changes upstream and we accept PRs for doc improvements (we try to keep the same file structure though).

If there's anything missing, please open up an issue and let us know!

DocsOfficial SourceLatest Update / Commit
ReasonMLreasonml.github.ioFeb 19, 2020 / #bd70b1
BuckleScriptbucklescript.github.ioFeb 19, 2020 / #5f8df9
ReasonReactreasonml.github.io/reason-reactFeb 21, 2020 / #206d8c
GenTypegithub.com/cristianoc/genTypeFeb 25, 2020 / #e2590e
Playground🚧In the works within the BuckleScript repo
BS API Docs🚧Only JS / Belt module (rest coming soon) (BS v7.0.0)
Full Page Search📝In the planning phase
BlogRelocated and cross-referenced all BuckleScript, ReasonReact, ReasonML Posts
Communityadapted and partly rewritten

Stay informed about recent updates either via the @ReasonAssoc twitter handle or within the ReasonML Discord!

Official Resources

In case you are looking for the current official docs, here is a good reference sheet:

Current Focus / Open Tasks

Following sections are just a rough outline on what needs to be done in the next steps:


  • Upstream the Reason language docs from reasonml.github.io

  • Upstream the BuckleScript docs from bucklescript.github.io

  • Upstream GenType docs

  • Upstream Blog Posts from all different sources

  • Merge Reason's & BuckleScript's docs into one cohesive document

API documentation:

  • Refining the Belt API & Js API documentation by hand via markdown

  • Use odoc to extract JSON API documentation from source code (see our doc-tools project for more details)

  • Upstream our markdown curated changes of the Belt / Js modules into the BuckleScript source code


  • Implement the design for mobile and desktop

  • Improve the BuckleScript generated playground bundle for our use-cases (see issue)

  • Improve the workflow for generating third-party package bundles (define a protocol on how to hook those into the playground engine)

  • Integrate the Playground Engine + ReasonReact 3rd Party dep into the UI (see the NIT playground for inspiration)

Search Functionality:

  • Build the custom Search overlay (see the design)

  • Add Algolia's OSS webscraper engine and wire it up with our UI

  • Generate indexing data via odoc and use a paid plan for Algolia's indexing service

  • Tweak UI for API vs. whole page searches

How to contribute

Check out our contribution guidelines to find a task to work on and make sure to sync up with the team via Discord (ReasonML / #docs channel) and / or ping @ryyppy.

If you want to contribute to the ReasonML / BuckleScript / ReasonReact / GenType docs, please open PRs on the original sources for now and feel free to open issues on reasonml.org to let us know about it.

Also check out our markdown guide to get an overview over all available UI components when writing documentation.


We want to thank our sponsors for making this project possible.

We are always looking for new sponsor partners to continously improve our documentation experience. Please refer to the Reason Assocation's donation section for more information.