v3.OCaml.org: A roadmap for OCaml's online presence

Issues · ocaml/v3.ocaml.org-server · GitHub - as suggested above. We’re using bleeding-edge odoc which has been almost entirely rewritten since 1.5, so I wouldn’t be surprised if there are a few rough edges :slight_smile:

1 Like

Do we have access to all of the previous years’ workshops to add to watch.ocaml.org?
I can see pieces of 2015, 2017, 2020 and this year. @avsm

Is it possible to add the ML Workshop as well?

1 Like

This is all so lovely! The principles around privacy and sustainable energy sources are genuinely wonderful to see. I think we should be sure to advertise that when we spread word after launch. Everything looks amazing. :heart_eyes::camel:

4 Likes

the landing page looks much nicer and modern! really look forward to this project!

as someone who hasn’t used, but has been considering jsoo vs rescript for the FE of a project, I’m curious why ReScript was chosen over JSOO for the website FE?

1 Like

It’s a bit unclear what you meant in this paragraph. Does that mean that you plan to kill the ocaml planet ? I would find it a little bit sad.

One of the reason why you may feel it doesn’t work well may be that it has been constantly broken in the current version of the site…

Personally I have no interest in losing my time on “social” networks to get a feel of what’s happening around – and I don’t think a forum is any kind of replacement for it. It seems the big tech players really managed to convince everyone that syndication was broken after they decided to kill it for the sake of their own business interests.

FWIW I follow the haskell planet which does not break every two months and while I’m far from reading everything I’m quite happy with the articles I’m getting there; the amount of articles is reasonable, the signal to noise ratio is good and some of the content quite interesting.

4 Likes

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 graphics, 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.

That’s not to say you can’t use jsoo for front-end work, for example there are bindings to reactjs and FRP libraries like brr + note. Another very flexible way for building static sites with a sprinkling of JS when needed is using OCaml for HTML generation and alpine.js for bits of javascript (e.g. the preview app in ood).

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!

8 Likes

Enjoying the new design direction.

Big win here too is the use of modern and community-built tools like Dream and Rescript. It sets a great precedence of what and how a modern system can look. Makes OCaml feel very possible for those interested in adopting this stack.

7 Likes

This looks awesome and is definitely going to push the community and ecosystem forward! I’m so happy to see centralized documentation as a thing that’s doable now.

1 Like

I also hope that OCaml organization will participate into the Google Summer of Code 2022, like other languages, e.g. Haskell or Julia, do. It will help to find more potential young contributors, moreover, will attract more attention to the OCaml ecosystem and the current roadmap. Apart from that, it will require dedicated GSoC pages about the program, potential ideas for the tasks. Furthermore, some organizations have a good policy of having some “good first issues” that should be solved by the students to apply for the GSoC. This might need a separate page as well.

Why I am writing this? It will need to be on the site as well, assuming OCaml will apply for the GSoC 2022.

See also Google Summer of Code and GSoC project on Coccinelle

2 Likes

The hardest question to answer is: should the site be a classic html site with very minimal interactivity, or should it be a richly interactive site? At first glance, one doesn’t really have uses for the interactivity, but then interesting possibilities start to creep in - an interactive map, interactive highlighting of table of contents position, a carousel to browse books. We’ll see if more desire for interactive features emerge, possibly when the manual starts to be integrated into the site.

If interactivity isn’t important, that leads to a wide path of technical options. If interactivity is important, the path gets narrower, but there are still a few interesting options.

1 Like

Not having spent so much time as part of the OCaml community, while reading people’s response regarding the topic in question, I can fairly judge that this is a better progress for OCaml at large. From own perspective, I’m confident to say that the new site and the incorporated features is so awesome. Thanks to the community’s support and efforts.

4 Likes

Many thanks for all the constructive comments and suggestions so far, and also for those who have gotten in touch to contribute. Please do keep them coming (either on this thread or on the various issue trackers that @jonludlam and @patricoferris have pointed to). I’ll answer some earlier questions here:

The styling of the /packages sub-URL does indeed differ from the main design, but this is simply due to a temporary technical detail. The majority of the site uses React/NextJS to generate the frontend, and this uses the now-trendy medium-contrast colours and also features like fast-page-switching that NextJS offers. However, the documentation portion generated around 2.7 million individual pages when run across the full opam repository, and so we restored to dynamic generation of the content for that. What’s going to happen next is a rationalisation of the code across the ReScript and OCaml frontends so that there will be no observable difference in the colour schemes across the full site.

Regarding creating a categorised list of recommendations, that is absolutely in scope for the v3 iteration of the site. However, this metadata should ideally live in the opam-repository (for example, using tags as you suggest, which opam already supports). If anyone would like to have a go at this, I’d encourage PRs to the opam-repository to add the relevant tag metadata for a codex. Meanwhile, @lambda_foo @tmattio and @patricoferris are working on the core OCaml Platform workflow information for the guides section of the website which will cover opam, merlin, lsp-server, dune and so on.

Absolutely. The watch.ocaml.org has held up nicely after the OCaml Workshop, so I think it’s in good shape to populate with more videos. This needs a volunteer to help us upload the past nine years of videos from YouTube to watch.ocaml.org. If anyone wants to have a go, please message me and I’ll create you an account.

I’m not sure why you think the current ocaml.org new feed has been broken – it’s been working fairly reliably for the past decade. The only real problem came up a few times when a feed’s domain expired and got taken over by domain squatters, at which point we got spam into the main page of ocaml.org.

What I meant with that part of the announcement is that the syndication feed should not be mistaken with original news on the website. Right now it’s difficult to distinguish official announcements (such as compiler or opam releases) as they are a little scattered (e.g. on opam.ocaml.org). The plan is to combine the platform-blog with the new website directly. I’ve also been considering just having a special tag on this forum so that nice announcement posts could also be syndicated to the website easily (for example, @gasche’s compiler newsletters).

My general desire is to grow the planet feed and syndication system, but to clearly demarcate them as not being published by ocaml.org and to manage them via more modern decentralised techniques that feature spam, moderation and archival. PeerTube is a good example of this for videos that is working well, and I’d welcome suggestions for Atom/RSS (there must be something in this space, ideally ActivityPub-based).

Depending on how the experiments go, it’s very likely that we’ll have a Matrix homeserver for ocaml.org where CI bots can report status information (see this prototype PR) for ocaml-ci that will also apply to opam-repository. The goal here is to for ocaml.org to publish its data using an open protocol, which can then be syndicated into whatever technologies are in vogue (e.g. Discord, Slack, Teams, …).

So if you spot some decentralised syndication system that you think might be interesting for OCaml, please do let me know. Even better, if you’d like to develop one to tailor it to our needs, let me know even sooner :wink:

8 Likes

Note that there’s already an OCaml channel (hosted on matrix.org but anyone can join). :slight_smile:

1 Like

I guess everyone has it’s own notion of reliable but it does sometimes stop updating altogether (and that’s only the latest occurence).

If you have some funds to invest, get in touch :wink:

1 Like

Thanks for your work on this.

So that page uses various external resources: fonts, javascript, … – which allows these external partners to track (log analysis, cookies) clients.

For me, the most useful item on opam - Packages are the reverse dependencies – are there plans to add them to v3.ocaml.org/packages as well? That’d be highly appreciated.

2 Likes

Thanks for the feedback @hannes :))

That sounds like a good point. Do you have any suggestions or ideas for helping to improve this beyond minimising the dependencies? Perhaps an issue on v3 would be a better place to discuss that?

Yes! It’s on my todo list :))

This is an interesting point. So, two things:

  • These externally-loaded fonts can of course be made internally hosted, and the issue goes away
  • I checked and the page right now has no cookies (zero)

So, if you’ll forgive the pun, that tracks with what avsm said :slight_smile:

3 Likes

:raised_hand: send me some details of where I can get access to the originals too. I also want to try fixing the audio levels to remove the background noise, the older recordings are difficult to watch because of that.

3 Likes

There is a PR to add leaflet, which will make some runtime fetches for tiles, but at least the tiles won’t be coming from Google Maps.

There aren’t any widgets embedding Twitter, Facebook, or other feeds, so I can’t think of any other javascript issues at the moment.

Wow the new website is AMAZING :star_struck:. Fantastic work by the team. Especially the integrated docs. They look way better than before, and secondly what an amazing effort to have all the docs in one place!

5 Likes