V3.ocaml.org: we are live!

I am thrilled to announce that https://ocaml.org/ now serves version 3 of the site! Here’s an overview of the major features in this new version:

Version 2 remains accessible at https://v2.ocaml.org/, and older URLs to ocaml.org will be redirected to the v2 URL from now on. Similarly, v3.ocaml.org URLs will continue to work.

Community feedback was instrumental and has been driving the direction of the project since day one. For instance, having a centralized package documentation site; or facilitating the hiring of OCaml developers and finding OCaml jobs were major concerns that were highlighted in the last OCaml Survey. They were what prompted us to work on the documentation site and the job board respectively.

We’ve also listened to the community feedback we received along the way, and in particular, here’s an overview of everything we’ve been doing to address the feedback we received after our last Discuss post: v3.ocaml.org Feedback Retrospective - HackMD.

Given how critical your input is to drive the project, I am deeply grateful to every one who took the time to share insights, suggestions and bug reports. Some of the suggestions will need more work and couldn’t happen before launch, but we’ve listened to every one and will keep working on improving OCaml.org to address pain points of the community. Thank you, and keep the feedback coming!

We’re also starting to see a lot of contributions from external contributors. OCaml.org is open source, and contributions from anyone are extremely welcome! Never hesitate to open a PR if you see something you’d like to improve! You can read our Contributing Guide to learn how to contribute.

Ecosystem Contributions

As the storefront of the OCaml ecosystem, we couldn’t develop the next version of OCaml.org without contributing back! As a result, we’ve published several packages on opam that we’re using for OCaml.org:

  • dream-accept: Accept headers parsing for Dream
  • dream-encoding: Encoding primitives for Dream.
  • hilite: Generate HTML ready for syntax-highlighting with CSS by parsing markdown documents.

Other packages that are yet to be released are:

We’ve also made contributions downstream:

A huge thank you to the community for your constant effort in making OCaml such a great language to work with! In particular, here are some amazing community projects we are building upon: Dream, Brr and Omd and many more

What’s next?

Launching the website is the first step on our roadmap to improve OCaml’s online presence.

As mentioned above, the immediate goal is to be ready for this OCaml 5.00.0 release. With this in mind, we want to focus on improving the documentation and ensuring it includes good user pathways to learn about Domains, Effects, and generally how to write concurrent programs in OCaml.

In addition to the documentation, some of the other projects on our roadmap are:

  • Toplevels for all the packages that compile to JavaScript.
  • Including OCaml Weekly News in the OCaml blog.
  • A better search through packages, documentation, and packages’ documentation.

This is an exciting time! Stay tuned!

Call for maintainers

There’s a lot of ways to contribute if you’d like to help. Our contributing guide should be a good entry point to learn what you can do as a community contributor.

We’re also looking for maintainers. As we’re completing the first milestone with the launch and will start working on new projects, now is a great time to get involved!

If you’d like to help on the initiatives on our roadmap above (or others!), feel free to reach out to me by email at thibaut@tarides.com, or by replying to this post.

Acknowledgements

This project was a huge effort that started over a year ago, and the result of dozens of contributors. We want to thank every one who contributed to the site.

In particular, for the groundwork on rethinking the sitemap, user flows, new content, design, and frontend and package docs, we thank Ashish Agarwal, Kanishka Azimi, Richard Davison, Patrick Ferris, Gemma Gordon, Isabella Leandersson, Thibaut Mattio and Anil Madhavapeddy.

For the work on the package site infrastructure and UI, we thank Jon Ludlam, Jules Aguillon and Lucas Pluvinage. And for the work on the designs and bringing them to life on the frontend, we thank Isabella Leandersson and Asaad Mahmood.

For the work on the new content and reviewing the existing one, we thank Christine Rose and Isabella Leandersson.

For the contributions on the content for Ahrefs, Jane Street and LexiFi respectively, we thank Louis Roché, James Somers, Nicolás Ojeda Bär.

We’d also like to thank the major funders who supported the work on revamping the website: grants from the Tezos Foundation, Jane Street and Tarides facilitated the bulk of the work. Thank you, and if anyone else wishes to help support it on an ongoing basis then donations to the OCaml Software Foundation and grants to the maintenance teams mentioned above are always welcomed.

69 Likes

Congratulations on the launch! This has been such a positive and constructive effort across so many people, and I’m very glad to see such progress. Also happy to see the playground make its way to the launched site as well :slight_smile:

As for next steps: we really need members of the community to contribute now to their case studies and papers and so on. If you’re using OCaml, then please do consider sending a PR into GitHub - ocaml/ocaml.org: Upcoming version of the official OCaml website. with what you do. If you have any doubts about how to do so, just create an issue on that repository and we can work through it with you.

12 Likes

Congratulations :camel: !

I’d also like to thank in particular the four Outreachy interns who have worked on the project so far. All of them showed great tenacity and patience whilst working on such a new and changing project. With the site going live, I hope this makes their efforts feel all the more worthwhile.

13 Likes

Congratulations to all involved! The new site looks amazing, and I am very eager to go through all the learning materials (helpful to a new user like me).

2 Likes

Success stories page gives a 404. Does it mean OCaml do not have success stories yet? :sweat_smile:

1 Like

Hi,

I’m not sure the best place to post this, but I was just reading this thread Basic question on looping - #2 by nojb

I’m fairly new to OCaml and realised I hadn’t actually written a for loop yet and was curious about the syntax. But when I google “ocaml for loop” the top result is a broken link:

Screenshot 2022-04-29 at 16.42.33

clicks through to:

If I repeat it via curl I see:

> GET /learn/tutorials/if_statements_loops_and_recursion.html HTTP/1.1
> Host: ocaml.org
> User-Agent: curl/7.79.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 303 See Other
< Server: nginx/1.21.6
< Date: Fri, 29 Apr 2022 15:45:51 GMT
< Content-Length: 0
< Connection: keep-alive
< Location: /docs/if-statements-loops-and-recursions

I assume this is related to launch of new website.

I had a bit of a dig around and I think the url it’s meant to redirect to is https://ocaml.org/docs/if-statements-and-loops

also, the second result:

Screenshot 2022-04-29 at 16.50.08

…is on www2 subdomain, which has a broken https certificate and gives a warning screen when you click through to it

Success stories page gives a 404 . Does it mean OCaml do not have success stories yet? :sweat_smile:

Good catch! I’ve updated the links in the post to point to the right URL :slightly_smiling_face:

Looks like some of the redirections from V2 were outdated, it should work as expected now. Thanks for the report!

Congratulations everyone on this massive launch. It’s amazing to see a fresh new face for OCaml.

Can you expand a little on what the maintainers would be doing? I am potentially interested :slight_smile:

2 Likes

Congratulations!

There is a styling bug on mobile as you can see:

https://www.ocaml.org/ still serves the old version of the website. Is this on purpose?

Thanks @yawaramin!

OCaml.org maintainers can help to review PRs and address reported issues for example.

Larger projects that are on the roadmap and that maintainers could help on are:

  • Improving the documentation
  • JavaScript toplevels for all the packages
  • Improving the search engine

More generally, I’m hoping that we can build a sustainable development team with the community and take inspiration from the way other projects from the ecosystem are organized. For instance, Dune developers have a bi-weekly meeting. That’s something we could look into replicating, and so maintainers would be encouraged to join the development meetings.

Feel free to send me an email at thibaut@tarides.com, I’d be really happy to discuss more if you’re interested in helping maintain OCaml.org! :slight_smile:

Congratulations on the effort. This is huge, so many improvements that make our life easier, the playground and the documentation are excellent.

3 Likes

I can reproduce it (3 days later so probably not a DNS cache issue), so I reported it upstream. Thanks for pointing it out!

1 Like

Re: the testimonials page: OCaml in Industry

Sorry to be a downer, but can we really include the names and logos of a bunch of companies as OCaml users without any context? For example, in what sense does Microsoft use OCaml in industry? Also, they are named in two sections of the page and each time their logo is different (the first one is the modern logo, the second one is the old one). Do we really have signoff from them for this?

3 Likes

If I remember correctly, we added the Microsoft logo because of https://www.microsoft.com/en-us/research/project/slam/.

I am not aware of any recent OCaml projects at Microsoft though, so perhaps it’s best to remove them from the logo cloud to make room for more active industrial users :slight_smile:

can we really include the names and logos of a bunch of companies as OCaml users without any context?

That’s not an uncommon pattern for logo clouds to not have more context (as a popular website I can think of http://stripe.com/ and for a language website https://rescript-lang.org/), but I agree it would be great if each of them had a success story we could link to!

We’ve actually reached out to most of the organizations in the logo cloud to write a success story, we’ll follow up and reach out to the ones we didn’t contact.

1 Like

I think the front page looks great, but my first (but not subsequent) loading of it had really heavy lag as it loaded in the assets. Same with the playground. Either way it looks super clean, everybody involved has done an amazing job.

2 Likes

Pagespeed has some recommendations for improving loading times https://pagespeed.web.dev/report?url=https%3A%2F%2Focaml.org%2F
E.g. there are quite a lot of images and fonts served with only a 1 day cache policy (including logos), while I think the usual recommendation is 1 year (if you’re worried that the image has to change it might be possible to include the hash in the name as long as that image isn’t used in too many places).
The caching seems to be controlled from here:
ocaml.org/static.ml at a8eb00767d46f983356d287d9b2ce55b21ec684c · ocaml/ocaml.org · GitHub and it looks like it used to have a maxage of 1 year that got reduced in this PR: Optimize assets loading by tmattio · Pull Request #281 · ocaml/ocaml.org · GitHub (not sure whether that was done to fix/workaround a particular caching bug, or just to make testing of the website easier)

1 Like