Compiled and native
Buoy lowers your source to machine code through an LLVM backend and links real native binaries — .app bundles on macOS, .exe on Windows, ELF executables on Linux. No interpreter, no bundled VM.

Prerelease downloads and bug reporting are available here.
Compiled and native
Buoy lowers your source to machine code through an LLVM backend and links real native binaries — .app bundles on macOS, .exe on Windows, ELF executables on Linux. No interpreter, no bundled VM.
Readable, BASIC-like syntax
Familiar Sub / Function / Dim structure, with modern conveniences like Var and type inference.
One source tree, every platform
A “project” is just a folder of .bui files. There is no project manifest to maintain or merge.
True cross-compilation
Any host can target any platform. Build a macOS app from Linux, or a Windows .exe from a Mac — no target-platform SDK required on your machine.
First-class tooling
A Language Server (LSP) drives completion, hover, go-to-definition, and live diagnostics in any LSP-capable editor. A VSCode extension and DAP-based remote debugger are part of the toolchain.
AI-assistant ready
Buoy is too new to be in AI training data, so every install ships a kit that fixes that: buoy ai init sets up your project so Claude Code, Copilot, Cursor, or any MCP-capable assistant writes real Buoy — verified against the actual compiler and the locally installed docs, not guessed from other BASIC dialects.
Xojo migration path
Buoy’s syntax is Xojo-inspired and aims for source compatibility as a migration route, while deliberately departing from Xojo where its design choices have proven to be friction points.
Sub Main() Var name As String = "world" Print "Hello, " + name + "!"End SubVariable declaration uses Dim or Var (they are exact synonyms), with type inference when an initializer is present:
Dim count As Integer = 0Var total = 0.0 ' inferred as DoubleVar label = "Untitled" ' inferred as StringDocumentation comments use a triple apostrophe and attach to the declaration that follows:
''' Returns the area of a circle with the given radius.Function Area(r As Double) As Double Return Math.Pi * r * rEnd FunctionOptional chaining lets you guard member access without an explicit nil check:
Var name = user?.Profile?.DisplayName ' Nil if user or Profile is NilBuoy produces and runs applications on:
| Platform | Minimum target | Native UI toolkit |
|---|---|---|
| macOS | macOS 12 (Monterey), Apple Silicon or Intel | AppKit |
| Windows | Windows 10, x64 or ARM64 | comctl v6 |
| Linux | A distro providing GTK 4 (e.g. Ubuntu 22.04, Fedora 38, Debian 12) | GTK 4 |
Universal macOS binaries (Apple Silicon + Intel in one bundle) are supported. On Windows and Linux, ARM64 and x64 are shipped as separate builds.