# Xo Language > Xo is a small, statically typed language for backends and web services, built for AI agents to write, check, and debug. Xo is pronounced "ex-oh". Status: experimental (v0.9); expect breaking changes before 1.0. The source code is not public yet; it will be soon. Every page below is also served as Markdown: append `index.md` to its URL. ## Specification - [Xo Language Specification (Core)](https://xolang.dev/docs/spec/core/index.md): Syntax and semantics of Xo: types, errors, concurrency, effects, modules, diagnostics. - [Xo Standard Library](https://xolang.dev/docs/spec/std/index.md): Prelude methods and the standard library surface. ## Docs - [Why Xo? (FAQ)](https://xolang.dev/docs/faq/index.md): What Xo is for, how it relates to Go, how to say it, and what experimental means today. - [Getting started](https://xolang.dev/docs/getting-started/index.md): Install the xo toolchain, then check, run, and test a first program. ## Tour - [A tour of Xo](https://xolang.dev/docs/tour/index.md): Twelve short steps through Xo, each with a program that checks, runs, and passes its tests. - [Basics](https://xolang.dev/docs/tour/01-basics/index.md): Bindings, functions, string interpolation, and expressions. - [Structs, enums, and newtypes](https://xolang.dev/docs/tour/02-types/index.md): Structs, sum types, derived behavior, type aliases, and newtypes. - [Lists, maps, and sets](https://xolang.dev/docs/tour/03-collections/index.md): Immutable persistent collections, higher order methods, and safe map reads. - [No nil: optionals](https://xolang.dev/docs/tour/04-optionals/index.md): T? instead of nil, if let, ??, and ? on optionals. - [Errors you have to handle](https://xolang.dev/docs/tour/05-errors/index.md): Result types, ?, error enums with from variants, and why ignoring an error does not compile. - [Pattern matching](https://xolang.dev/docs/tour/06-matching/index.md): Exhaustive match, ranges, alternatives, list shapes, tuples, and is. - [Values and mutation](https://xolang.dev/docs/tour/07-mutation/index.md): Value semantics, var receivers, updating collections in place, Mutex and Atomic. - [Effects and capabilities](https://xolang.dev/docs/tour/08-effects/index.md): uses clauses, capability values passed from main, and fake capabilities in tests. - [Structured concurrency](https://xolang.dev/docs/tour/09-concurrency/index.md): Scopes, tasks, await, channels, and cancellation without ctx plumbing. - [Contracts and tests](https://xolang.dev/docs/tour/10-contracts/index.md): requires, ensures, invariants, test blocks, property tests, and contract fuzzing. - [A small web service](https://xolang.dev/docs/tour/11-web-service/index.md): std/http routing, JSON, typed path parameters, errors that map to status codes, and in process tests. - [Using Go packages](https://xolang.dev/docs/tour/12-go-packages/index.md): use go to call any Go package, with bindings generated automatically. ## Diagnostics - [Diagnostic codes](https://xolang.dev/docs/diagnostics/index.md): Every XOnnnn code the xo toolchain reports, with an example and a fix. Each code also has a page at /docs/diagnostics//index.md, for example /docs/diagnostics/xo0401/index.md. ## Release notes - [Introducing Xo](https://xolang.dev/blog/introducing-xo/index.md): A small, statically typed language for backends, designed so the compiler catches what AI agents (and people) get wrong. - [Xo v0.9.0](https://xolang.dev/blog/v0-9-0/index.md): Release notes for Xo v0.9.0, spec draft 0.9. - [Xo v0.8.0](https://xolang.dev/blog/v0-8-0/index.md): Release notes for Xo v0.8.0, spec draft 0.8. - [Xo v0.7.0](https://xolang.dev/blog/v0-7-0/index.md): Release notes for Xo v0.7.0, spec draft 0.7. ## Source - Source code: not public yet; it will be published at https://github.com/xo-lang/xo - [GitHub organization](https://github.com/xo-lang)