Alpha · Early development

Joy, compiled.

Friendly. Safe. Powerful.

Koja is a statically typed, compiled language targeting native binaries via LLVM. It combines Ruby-inspired syntax with functional value semantics and an Erlang-style concurrency model.

point.kojs
struct Point
  x: Int32
  y: Int32

  fn distance_squared(self) -> Int32
    self.x * self.x + self.y * self.y
  end
end

p = Point{x: 3, y: 4}
IO.puts("distance² is #{p.distance_squared()}")
terminal
$ koja run point.kojs
distance² is 25
$ koja build && ./point
distance² is 25

Get started

Koja is alpha software. Expect rough edges and breaking changes.

terminal
$ asdf plugin add koja https://github.com/koja-lang/asdf-koja.git
$ asdf install koja latest
$ asdf set --home koja latest
$ echo 'IO.puts("hello, world!")' > hello.kojs
$ koja run hello.kojs
hello, world!

Prebuilt binaries for macOS (Apple Silicon) and Linux (x86_64, arm64), including the koja-lsp language server. Other platforms can build from source.

Develop with your favorite tools

Something missing? Build with koja-lsp and tree-sitter-koja.

VS Code

Highlighting and LSP features. Also works in Cursor, VSCodium, and Windsurf.

Install from Open VSX — VS Code extension

Zed

Tree-sitter highlighting, an outline view, and live diagnostics through koja-lsp.

View on GitHub — Zed extension

Vim & Neovim

Syntax highlighting, indentation, and :make integration. Pair with any LSP client for koja-lsp.

View on GitHub — Vim and Neovim plugin

Join the community

Koja is just getting started. Come be a part of it. Ask questions, share what you're building, and follow along as the language grows.

Join the Discord