# Building Ahrefs codebase with Melange

**URL:** <https://discuss.ocaml.org/t/building-ahrefs-codebase-with-melange/7941>\
**Category:** Ecosystem\
**Tags:** javascript, dune\
**Created:** [May 31, 2021, 8:16am UTC](https://discuss.ocaml.org/t/building-ahrefs-codebase-with-melange/7941 "2021-05-31T08:16:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jchavarri](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/jchavarri/32/4418_2.png) [@jchavarri](https://discuss.ocaml.org/u/jchavarri)\
**Post date:** [May 31, 2021, 8:16am UTC](https://discuss.ocaml.org/t/building-ahrefs-codebase-with-melange/7941/1 "2021-05-31T08:16:34Z")

</div>

At Ahrefs, we make extensive use of OCaml and ReScript —previously [known as BuckleScript](https://rescript-lang.org/blog/bucklescript-is-rebranding). So we have been following the latest developments in the ReScript ecosystem with great interest.

A few months ago, [António Monteiro](https://discuss.ocaml.org/u/anmonteiro/summary) released [Melange](https://github.com/melange-re/melange), a fork of ReScript with an emphasis of keeping compatibility with OCaml ecosystem. One of the key features of Melange is that it uses OCaml 4.12, with all the upsides that that entails (ppxlib, let syntax, better errors, …). Besides that, Melange has been modeled recently [as just a `compiler-libs` library](https://github.com/melange-re/melange/pull/107), so it can be integrated with other OCaml code in a single opam switch.

We decided to give Melange a try recently at Ahrefs, and shared the results of this experiment in a blog post:

> **[Building Ahrefs codebase with Melange](https://tech.ahrefs.com/building-ahrefs-codebase-with-melange-9f881f6d022b)**
>
> What we learnt after experimenting with Melange, a fork of ReScript with a strong focus on keeping compatibility with OCaml.

We are currently looking into how a deeper integration with Dune would look like. If your team or company has tried Melange, or is interested on doing so, we would be very interested to hear your use cases and share experiences.
