# Vertex > Vertex is a programming language that targets the Salesforce platform. It transpiles to Apex and also runs locally via a JIT. The language prioritizes ergonomics and safety: errors are values (Result, Option), null does not exist, exceptions are not user-visible, and immutability is the default. When writing Vertex, do not reach for Apex idioms by reflex. Common replacements: - No `null`. Use `Option` with `Some(x)` / `None`. - No `try`/`catch` in user code. Fallible operations return `Result`; use pattern matching. - No class inheritance. Composition via interfaces only. - No static methods. Module-level `fn` declarations instead. - `type` is destructurable data; `class` is nominal with methods. No duck typing. - `let` is immutable. Opt in to reassignment with `mutable let`. The file layout is one module per file with no explicit module declaration. Identifiers, types, and constructors follow the conventions shown in the reference pages. ## Documentation Sets - [Abridged documentation](https://vertex-run.github.io/llms-small.txt): a compact version of the documentation for Vertex, with non-essential content removed - [Complete documentation](https://vertex-run.github.io/llms-full.txt): the full documentation for Vertex ## Notes - The complete documentation includes all content from the official documentation - The content is automatically generated from the same source as the official documentation