If you don't know OCaml

OCaml can be a little bit daunting, but even if you don't know it, there are a bunch of ways to get involved.

Other languages

Dark has a number of different languages, including Rust, bash, Python, Javascript, HTML, and CSS.

We have issues in each of these:


Lots of times we don't know what to do, and it's extremely valuable to have someone look into the problem and document what's happening. These issues are labeled "investigation".

Similar, the "needs thought" issue is about designing thoughtful solutions to sticky problems.

Writing docs

There are lots of docs that would be very helpful to write. If you look at the current docs, there are docs that would be useful that you can write as a non-expert.

There are a bunch of tutorials for different technologies, frameworks and libraries; writing one for another would be extremely useful. It would also allow you to write up how Dark could be improved to support that technology. You can even make video tutorials!

Similarly, we have some guides for people learning Dark who know other languages. Adding another language would be wonderful. See for example the Python version.

Writing issues

Dark has many bugs and problems: documenting them for other contributors to fix would be very useful. Small, compact descriptions with instructions to reproduce the bugs are very welcome.

Fluid editor

The "fluid" editor is how you write code in Dark. It is still often the case that you get an unexpected result when you type something: documenting individual cases as issues is very valuable!

Better error messages

Dark's error messages are not as good as they could be, and this is a real problem for users learning the language the first time. Documenting a bad error message, especially with a suggested better version, is a really useful contribution.

Learning OCaml

Dark is almost everybody's first OCaml project. So if you don't know OCaml, join the club - we all learned as we contributed to Dark.

There are a number of resources to help as well:

Alos, some bugs, especially our initiatives, require almost no OCaml knowledge, despite the fact that they are in OCaml parts of the codebase. People with no prior exposure to OCaml should be able to make a useful change to one of these in very little time.