janestreet/incr_dom

A library for building dynamic webapps, using Js_of_ocaml.

403

stars

184

commits

OCaml

primary language

Jul 10, 2026

updated

Browse cluster: OCaml metaprogramming and PPX

README

#+TITLE: ~Incr_dom~: a library for writing dynamic web-apps

A library for building dynamic webapps, using =Js_of_ocaml=.

The library is designed roughly on a model/view/controller model.
Your application is built out of:

- A functional model type that tracks the state of your application.

- An incremental /view/ function for computing an HTML-like
  representation of how your application should render on the browser.
  The is based on the [[https://github.com/Matt-Esch/virtual-dom][virtual-dom]] javascript library.  

- An action type that is used to schedule events that update the
  model.

Combined with the ability to use Async, and in particular to send out
network requests using websockets, this should allow the easy
construction of rich web applications in a fairly comprehensible
style.

If you want a more concrete sense of how this works, look in the
[[./example/README.org][examples directory]]. 

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

xclerc

66 commits

jdimino-js

41 commits

public-release

31 commits

trefis

25 commits

janestreet/incr_dom

A library for building dynamic webapps, using Js_of_ocaml.

403

stars

184

commits

OCaml

primary language

Jul 10, 2026

updated

Browse cluster: OCaml metaprogramming and PPX

README

#+TITLE: ~Incr_dom~: a library for writing dynamic web-apps

A library for building dynamic webapps, using =Js_of_ocaml=.

The library is designed roughly on a model/view/controller model.
Your application is built out of:

- A functional model type that tracks the state of your application.

- An incremental /view/ function for computing an HTML-like
  representation of how your application should render on the browser.
  The is based on the [[https://github.com/Matt-Esch/virtual-dom][virtual-dom]] javascript library.  

- An action type that is used to schedule events that update the
  model.

Combined with the ability to use Async, and in particular to send out
network requests using websockets, this should allow the easy
construction of rich web applications in a fairly comprehensible
style.

If you want a more concrete sense of how this works, look in the
[[./example/README.org][examples directory]]. 

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

xclerc

66 commits

jdimino-js

41 commits

public-release

31 commits

trefis

25 commits

Languages

OCaml

95.6%

HTML

4.0%