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.
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()}")
$ 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.
$ 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 extensionZed
Tree-sitter highlighting, an outline view, and live diagnostics through
koja-lsp.
Vim & Neovim
Syntax highlighting, indentation, and :make integration.
Pair with any LSP client for koja-lsp.
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