As a part of the team that started thinking about v3.ocaml.org back in Autumn 2020, it is incredibly rewarding and encouraging to see such a positive response and constructive feedback to the new, work-in-progress version of the site. A lot of deliberation and effort has gone into what we currently have and now that is publicly available, hopefully will gain community support and momentum to improve it further. I thought I’d answer some of the questions people have here.
Indeed. Much like the OCaml compiler itself, the “main” ocaml.org website has a commitment to backwards compatibility as well as new content and features. What I mean by this is we are trying to incorporate everything in GitHub - ocaml/ocaml.org: Implementation of the ocaml.org website. as well as creating new content/features. This inevitably makes things a little slower, but best practices are in the works.
Afaik opam already has tags they are just not used that widely or in a standardised way for indicating things like
databases etc. (in fact the server reads them). If some consensus was reached on this it should be a fairly straightforward and useful feature to add. In the meantime we could certainly add curated lists of packages to ood :)).
When making the technology choices, the main reasoning was “use the right tool for the job”. In my opinion (as an avid jsoo user) for what we wanted jsoo makes little sense. The Rescript frontend is essentially bindings to Nextjs (plus any other libraries from the JS universe that are needed). Rescript has good JSX support, integrates well with the npm world, has (arguably…) better FFI support with JS etc. When we need jsoo (e.g. the experimental plan to have integrated toplevels for packages) then we’ll reach for it.
Importantly, now that the data lives very much separately we’re also not tied to any particular front-end. In fact this allows us to share all of the data in ocaml.org (I think there’s more than people realise, that was certainly the case for me!) for example I wrote an in-complete “terminal rendering” of the data. Ood could equally be reused perhaps directly in vscode!