Concepts Overview
Before starting the next few sections, here are a helpful things to know:
OCaml
This is the backing of BuckleScript. BuckleScript is a fork of OCaml, specifically v4.02.3
(upgrade impending!). This doc site assumes basic knowledge of OCaml; you can learn OCaml through Real World OCaml or, if you're learning Reason anyway, start with the Reason site.
This documentation site will mostly cover just the extra bits we've added to OCaml to enable good JS interoperability.
Reason
An alternative syntax for OCaml that's more familiar to JS programmers and reduces the learning overhead a bit. Reason works with OCaml, since apart from the syntax they share most other things. This also means Reason works with BuckleScript. The latter has some first-class support for some other utilities of Reason.
OPAM
This is OCaml's official package manager. Since BuckleScript uses NPM and Yarn, you won't need OPAM as a beginner. We will mention it for advanced workflows.
External/Interop/FFI
These are all jargon for working with BuckleScript <-> JavaScript.
External: in the context of BuckleScript, one of the primary ways to use a JS value.
Interop: short for "interoperability".
FFI: Foreign Function Interface. The general term for things like "external", "wrapper" and "interop". Basically means calling a value from the other language. Prefer the first two terms.