Heavy development — not production ready

WCL is under heavy active development and is not ready for production use. The language, APIs, and wdoc output can change at any time without notice.

Why WCL?

WCL was created out of my desire to have a language that could express most forms of data in a natural way.

This then enables a lot of different use cases. Detailed configurations, WDoc which lets you model the data in a format that makes sense and then present multiple views on it.

Reference

WCL's reference is published as wskills — self-contained WCL models, each projected into a book (linked below) and a Claude Code skill. The wdoc Reference book documents the documentation generator's blocks.

WCL — A typed configuration and schema language: records, unions, interfaces, decorators, and a document model that gathers and validates structured data.

wdoc — WCL's static-site and skill generator: declare pages and sites in WCL and render them to HTML, Markdown, a Claude skill folder, or PDF.

wskill — A WCL document format that captures a topic completely and projects it into both a human-readable book and a Claude Code skill.

A taste

A document is fields and blocks; a schema declared with decorators validates the structure.

@block("service")
type Service {
  @inline(0)   name: utf8     // service "web" → name = "web"
  @default(80) port: u32
  region: utf8
}

@document
type Config {
  @children("service") services: list<Service>
}

service "web" {
  region = "us-east-1"
}
service "api" {
  port   = 9090u32
  region = "eu-west-1"
}