The OCaml community has signed up to Outreachy May 2026 (see pastposts)!
What is Outreachy?
Outreachy is a paid, remote internship program. Outreachy promotes diversity in open source and open science. Our internships are for people who face under-representation, and discrimination or systemic bias in the technology industry of their country.
The current round is still ongoing with interns making great progress with @tmattio on Raven, with @xvw on YOCaml and with myself on ocaml-tiff.
Important Dates
For this next round, the important dates are as follows (these are always subject to some change):
Our next deadline is for mentors to sign up to the OCaml community with a project idea. Please do consider being an Outreachy mentor. If you have any questions or ideas you can always reach out to me directly. If you need a refresher of past projects, there’s a dedicated page on the OCaml website: OCaml Outreachy Internships. Feel free to discuss ideas on this thread too!
The OCaml community is currently able to financially support Outreachy internships thanks to the generous support of Tarides and Janestreet. This includes being able to fund mentors as well.
My name is Abubakar, and I am a statistics and data professional from Nigeria. I have been following the OCaml ecosystem with great interest particularly projects like ppxlib, ocaml-tiff, and YOCaml.
I applied for the May 2026 Outreachy cohort with the hope of contributing to OCaml. Although I wasn’t selected for the contribution stage this round, my commitment to the project remains unchanged. I actually began setting up my local OCaml environment and experimenting with opam and DKML well before the results were announced, as I wanted to be fully prepared to contribute.
@patricoferris and @avsm I noticed that OCaml is not listed in the final project list for this May round. I would love to know the reason why, and if there is an update on the community’s participation for the remainder of this year, or if there are specific ‘Good First Issues’ currently available in the ecosystem that would be suitable for a new contributor looking to build a strong foundation before the next application cycle in August.
I am eager to keep following the community’s workflow and learning from the incredible work being done here. Thank you
Thank you for your interest! Unfortunately, we will have no mentors this round for the OCaml community. I think it is quite possible we will be back for the December round all being well. I encourage any prospect mentors to share any details here if they are tentatively considering mentoring in the next round.
As one of the maintainers for ocaml-tiff and ppxlib I can say that it is unlikely either project will appear in the next round, though I am happy to help you tackle any of the open issues on those projects.
Although we cannot support applicants like we usually do (financially via Outreachy, mentoring, etc.) all of these projects remain available and are likely eager for contributors. Contributions don’t always have to be tackling issues, even just using the tool (for example, building your own YOCaml-powered website!) and providing feedback/bugs is also very useful.
Thank you so much for the detailed response and the encouragement!
I really appreciate the heads-up about the DkML distribution sunsetting. I will pivot my setup to align with the community’s current recommendations for Windows.
Your suggestion to build a YOCaml-powered website sounds like a fantastic way to get started. My goal isn’t just to complete an internship; I am genuinely interested in becoming a long-term contributor to the OCaml ecosystem. I want to use the coming months to really understand the community’s workflow so I can be a reliable part of the project well beyond the next application cycle. I’m also very interested in looking at the open issues for ocaml-tiff and ppxlib. I’ll dive into those repositories and reach out if I hit a roadblock.
Looking forward to contributing and preparing for the December round!
I’ve started building my project’s proposal (Forecasting AI’s Impact on Human Labor: Speed, Rate, and Job Displacement Timeline) research website using YOCaml. I’m temporarily developing on a mobile environment (Termux) and have successfully managed to generate a little professional research layout (MVP) using a manual ocamlfind workflow.
However, I’m looking to transition to a proper Dune build to take advantage of the YOCamlCSS pipeline features. I’m currently hitting an Unbound value error when running dune build@build-sitebuild-sitebuild-sitebuild-site. Even though I have a temporary workaround for now, I’d appreciate your guidance on correctly configuring the build environment to resolve this.
The Technical Setup I’m using:
Environment: Android (running via a proot-distro/Debian environment).
rchitecture: ARM.
OCaml Version: 5.3.0.
YOCaml/YOCaml_markdown Version: 3.0.0.
The Issue:
Even with open Yocaml at the top of my site.ml, the compiler is reporting “Unbound value >>>” and “Unbound module Build.” It seems like the standard library structure for YOCaml 3.0.0 isn’t being recognized as expected in this specific environment, even after a clean opam install and eval $(opam env).
I’ve verified my dune file libraries, but I suspect there might be a version mismatch or an environment-specific linking issue with OCaml 5.3 on ARM.
If you have any suggestions on how to properly initialize the build or if there’s a known breaking change in the 3.0.0 API that I might be missing, I would greatly appreciate your guidance.
That is a very helpful clarification! I was using the guide linked by @patricoferris in his reply to my post, suggesting building my own YOCaml-powered websites ( YOCaml - Goals & Introduction ).
It seems that guide still references the Build module and Arrow notation (>>>) from v1.0, while I am running v3.0.0.
I’m temporarily developing on Android/Termux (ARM) using OCaml 5.3.0. While my manual ocamlfind workaround is producing results for my research portal, but I’m eager to align with the v3.0 patterns for a more sustainable build.
It is a little bit complicated to give advice without seeing the code, but I am pretty sure that the tutorial (even it mention >>>, located in Task) does not mention Build. So could you share some code snippets?
I’m really sorry for the delayed response, I’ve been very busy in the last couple of days.
Thank you for looking into this! Here is the state of my site.ml and dune file.
Because I am targeting a professional layout for my AI Impact Research, I was trying to implement the CSS piping logic from the ‘Generating CSS’ guide. I suspect I may have manually introduced Build while trying to troubleshoot the Unbound value >>> error.
open Yocaml
let () =
let open Yocaml_unix in
let program =
read_file "index.md"
>>> Yocaml_markdown.to_html ()
>>> write_file "index.html"
in
run program
If you could show the idiomatic v3.0 way to concatenate two CSS files into one output, that would be incredibly helpful for my research layout.
No distraction at all! To get OCaml 5.3.0 running smoothly on Android, I’m using Termux as the base. However, for a more stable build environment, I installed a Debian instance using proot-distro.
I appreciate the nudge—I’m revisiting the YOCaml - Generating CSS and the full tutorial now to properly align my implementation with the new standards. Back to the code!