[ANN] forester 2.2.1 release

I would like to advertise the release of Forester 2.2.1 on opam, which is an OCaml utility to develop “Forests”, which are densely interlinked mathematical websites / Zettelkästen similar to the Stacks Project or Kerodon. An example of a “Forest” is my own website.

Package: opam - forester

Forester is potentially of technical interest to this community as it makes use of new OCaml 5 features like effect handlers, as well as certain functions from domainslib.


Beautiful! I will definitely try it out, as I have thought about having my evergreen notes / digital garden-like website for several months.

Update: I am building my website with it: https://trail.brackets-salad.com/. The result looks fantastic and I will continue to try for a while longer.

1 Like

Forester is licensed under the GPLv3 (excellent) so, technically, if I use assets/ in the repository as a starting point, my website is a covered work in a GPLv3 sense?

Well, I believe that @jonsterling’s intent differs, but, to be clear, would you make a separate repository for a forest template licensed under CC0, zlib, MIT or such?

1 Like

Hi, thanks for pointing this out. It is indeed not intentional that your use of the example code should force you to adopt a particular license for your own forest, or even force you to contribute back changes to (e.g.) the XSLT stylesheet. To avoid any ambiguity, I think i will move the example code to a new repository licensed more permissively. The only thing i intend to be copylefted was the OCaml utility itself.


As an update, I have created a template repository (~jonsterling/forest-template - A template for building your own forest using forester. - sourcehut git) in public domain (CC0).


Out of curiosity, what is the backing store for forester? Is it Irmin?


@yawaramin Good question. Right now the “store” is just some hashtables in memory, as well as some graphs from the ocamlgraph library. These things are reconstituted from your actual plain-text forest (.tree files) every time forester is executed. In the future, especially as forests get larger and more deeply transcluded, it may become important to have a better story for this. Definitely open to proposals and contributions! :smile_cat:


Forester’s markup language reminds me SATySFi that is also implemented in OCaml, by the way.