Multi-tier programming for Web and mobile apps

Android, iOS, Server & client in one piece of code

Powerful type-checking with OCaml/Reason

Get started now!



We are happy to release the first public version of html_of_wiki.

html_of_wiki is a versatile, minimalist yet powerful static website generator. It is designed with simplicity in mind: no special directories, almost no configuration and everything working out of the box. No web server required, just the compilation of your content to HTML and you're free to choose which static files server service fits you: GitHub Pages, GitLab Pages, etc.

html_of_wiki is used to generate this Web site.

More info about html_of_wiki.

Send us your feedback and bug reports about the Web site on Github.


We have recently released the following Ocsigen packages: Ocsigen Start 1.3.0, Ocsigen Toolkit 2.0.0, Eliom 6.5.0, Js_of_ocaml 3.3.0, Lwt 4.1.0, Ocsigen Server 2.11.0, TyXML 4.3.0

The releases restore compatibility with the latest OCaml and as usual bring about a fair amount of bugfixes end enhancements.

Everything is available in opam. `opam install ocsigen-start` will pull in all the other packages.


Multi-tier language for multi-platform apps

Eliom extends OCaml/Reason into a multi-tier language making it possible to write your whole application (client and server parts) as a single program!

It can run as a Web app, or as a mobile app (based on Web technologies).



Optimizing compiler for OCaml/Reason to Javascript

Js_of_ocaml translates your OCaml or Reason programs to Javascript. You can choose between readable or optimized JavaScript.

Js_of_ocaml operates from compiled OCaml bytecode programs. You don't even need the source code, and you don't need to recompile all the OCaml libraries you use.

Easy interfacing with Javascript libraries.

let fib num =
  let rec aux num prec2 prec =
    if num = 0
    then prec
      aux (num - 1) prec (prec + prec2)
  in aux num 1 1
function fib(num)
 {var num$0=num,prec2=1,prec=1;
   {if(0 === num$0)return prec;
     prec$0=prec + prec2 | 0,
     num$1=num$0 - 1 | 0,
function(d){var b=d,c=1,a=1;for(;;){if(0===b)return a;var b=b-1|0,e=a+c|0,c=a,a=e;continue}};

Main projects


Optimizing compiler from OCaml/Reason to Javascript.


Multi-tier language and framework for multi-platform apps.


Full-featured and extensible Web Server.


Cooperative threading library.


Static type-checking for HTML and SVG.

Ocsigen Toolkit

Native OCaml widgets for browsers (client side only or client-server).


A full-featured app to use as code example for your own projects.


Here is a short list of users:

Tell us if you want (or do not want) to appear in this list.