Skip to content
incordaiPublic

About

Incord Intelligent Language (inlang) by Incord AI — describe a website in short words; az compiles it into a pre-rendered, secure site. Built for AI assistants to write.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

INCORD

Incord Intelligent Language (inlang)

Describe a website in short words; inlang compiles them into a pre-rendered, locked-down site — and the words are designed so an AI assistant can write them for you.

By Incord AI. The command is az and site files end in .az.

inlang is for developers, small studios and agencies shipping client sites, and founders building their own product site — very often with an AI assistant doing the typing. When an assistant writes a site's code directly, every run comes out different and nothing checks the result. inlang gives the assistant a small vocabulary instead (hero center, faq list, pricing cards), checks every line of it, and compiles it into tested production code. The compiler itself has no AI in it and never calls the network.

What you get

  • Pre-rendered static pages with a strict Content-Security-Policy on every page.
  • Colour first: 6 themes, each light and dark, with 9 accent hues and gradient pairs proven for contrast.
  • 12 building blocks ("words"): nav, hero, text, feature, gallery, pricing, faq, cta, footer, auth, scene (3D), chat.
  • An optional backend: accounts, social sign-in, data tables on SQLite, PostgreSQL or MySQL, and an admin area.
  • An optional AI chat block that answers with your own components, charts and tables, with share links and operator data tools.
  • Images resized at build into WebP widths, each <img> with its width and height.
  • Checks built in: az check for the file, az doctor for the machine, az audit for what a build ships.
  • Deterministic builds: the same file gives byte-identical output, every time.

A 60-second example

az 1

site aurora
  width default
  theme midnight
    accent violet
    pattern glow

  nav bar
    link "Work" /work

page /
  hero center
    eyebrow "Limited run"
    title   "Built in the dark"
    sub     "Handmade. Forty pairs a month."
    height  peek

page /work

That is fixtures/minimal.az. It builds a two-page site (/ and /work) in the dark midnight theme with a violet accent and a soft glow behind the opening section. Both pages share a navigation bar with a "Work" link. The home page opens with a centred headline, a small label above it and a line of text below. Every page comes out as plain HTML with its security policy, ready to put on any static host. az explain <term> says what any word means in one line, for example az explain hero center.

Quick start

Install. You need Node 22.18 or later and pnpm (corepack provides it).

git clone https://github.com/incordai/inlang.git && cd inlang
corepack enable pnpm
pnpm install --frozen-lockfile --ignore-scripts
alias az="node $(pwd)/packages/cli/bin/az.js"
az --help

Always install with --ignore-scripts: nothing here needs install scripts, and they are a common way for a dependency to attack a machine.

1. Choose the colour. Colour is the first decision, before any section.

az palette            # writes a gallery page of every theme, hue, pair and pattern
az palette --list     # the same choices in the terminal

2. Write the file. Save the example above as site.az, then change the words. docs/WORDS.md lists every word and its options.

3. Preview it.

az dev site.az        # serves http://127.0.0.1:5173/ and reloads on every save

4. Check and build.

az check site.az      # diagnostics only, writes nothing: "az: no problems found"
az build site.az      # writes the project to .az-build/
cd .az-build && npm install --ignore-scripts && npm run build   # the site, in .az-build/dist/
cd .. && az audit     # checks what the build ships: secrets, security policy, links

A mistake names the line, a stable code and the fix:

broken.az:4:15 error AZ1202  hero: 'center' and 'split' are both layouts — pick one

5. Deploy. .az-build/dist/ is plain static files: upload them to any static file host. A site with a backend also builds a server/ folder to run on Node 22; docs/self-hosting.md walks through it. There is no az deploy command yet.

The full walkthrough, with every option, is docs/USAGE.md.

How it works

You write one .az file. The az compiler reads it, checks every word against the word list and the theme, and writes an ordinary React + Vite project. That project's build pre-renders every page. If the file declares a backend, the compiler also writes the server beside the site. You never edit the generated code; you change the .az file and rebuild (or az eject a word to own it).

site.az ──> az compiler ──> .az-build/   React + Vite project ──> dist/  static site
            (checks,        └─ server/   optional backend (accounts, data, chat)
             no network)    └─ AZ.md     a map of the project for people and AI tools

Using az with an AI assistant

  • az prompt prints the instructions any AI model needs to write .az: the order (colour first), the syntax, every word and its options, and the common errors with their fixes. It is generated from the compiler's own tables, and every example in it compiles. Paste it into the assistant's instructions; --compact gives a short version.
  • az mcp serves the compiler to an assistant as tools (MCP over stdio): look up words, check a file, build it. Setup: docs/mcp.md.
  • AZ.md, written into every generated project, maps each page and block to its file and says where to change things.
  • docs/WORDS.md lists every word, variant and key.
  • Fewer tokens: on the median of the repository's sites, the same site takes about 1.5× the .az file's tokens as a component-tree JSON and about 9× as pre-rendered HTML (token benchmark).

More detail: docs/USAGE.md §6.

Feature guides

Topic Guide Reference
Words (building blocks) WORDS.md GRAMMAR, one docs/<word>-block-spec.md per word
Themes and colour USAGE §3 theme-spec
Backend and data USAGE §4, self-hosting, managed cloud setup backend-spec, data-spec
Sign-in USAGE §4 auth-block-spec
AI chat chat README chat-block-spec (§19: what is built)
Images gallery-block-spec §7 hero-block-spec
Security USAGE §5 security scanning, word-quality-gate
Testing VERIFICATION §1.1 VERIFICATION
AI assistants USAGE §6 mcp, token benchmark
Every other doc USAGE §7 ARCHITECTURE, PRD

Commands

Command Purpose
az build <file.az> [--out dir] compile to a runnable project (default .az-build)
az dev <file.az> [--port N] [--open] [--no-serve] build, serve and reload on every save; a site with a backend runs it locally too
az spec <file.az> print the resolved Spec as JSON
az check <file.az> report diagnostics only, write nothing
az add chat <file.az> [--page /route | --float] [--show all] add a working chat in place: the backend lines, a chat with a greeting and suggested questions, the model's keys (commented) for az dev; backs the file up, ends with az check passing, and a second run adds nothing
az lint [words-dir] theme-token check of every word pack
az migrate <file.az> upgrade the file to this grammar version
az eject <word> [--dir project] copy a word into the project's words/ to own it — one-way
az backend init <server-dir> write the backend's .env with a fresh secret (owner-only, never overwrites)
az backend plan <file.az> show the data schema step the file needs; writes nothing
az backend schema <file.az> [--rename a=b] [--drop x] [--unique t.f] [--expose t] record that step in <file>.data.json
az backend images <server-dir> [--confirm] count stored images without width copies; with --confirm, make them
az backend probe <server-dir> [--json] ask the configured chat model the production prompt; times, tokens, what was dropped
az backend usage <server-dir> [--json] the chat's daily counts and budget left, and the shares kept; reads only, never a message
az mcp [--root dir] serve the compiler's tools to an AI agent (MCP over stdio)
az explain <term...> one line per term, e.g. az explain hero center
az palette [--theme t] [--accent h] [--out dir] write the colour gallery: every theme, hue, pair and pattern in light and dark, with its .az lines
az palette --list | --json [--theme t] [--accent h] print every colour choice, for a terminal or a tool
az prompt [--words a,b] [--compact] [--budget N] [--json] print the Markdown instructions any AI model needs to write .az, generated from the compiler's tables; writes nothing
az doctor [file.az] [--out dir] [--json] check this machine and project; changes nothing
az audit [--out dir] [--online] [--json] check a build's output; changes nothing (--online adds the advisory lookup)

az --help prints the same list (a test keeps this table and it in step). Exit codes: 0 success; 1 errors in the file or a failed check; 2 bad usage, configuration, or a file that cannot be read.

Words

A word is a block on the page. Each lives in packages/words/<word>/ with its manifest (word.json), web emitter, README and previews. The table below is generated from each word.json by node scripts/gen-words-index.mjs, which also writes the full index, docs/WORDS.md; pnpm test fails if either is stale.

Word Info Variants Docs
auth Sign-in, sign-up or password-reset form on its own page login signup reset README
chat A panel or a launcher where visitors ask the site's AI panel float none README
cta Closing call-to-action section before the footer band card split README
faq Questions with expandable answers, plus FAQ schema list columns README
feature Set of features or benefits grid rows bento README
footer Site footer: links, legal row and copyright minimal columns mega none README
gallery Set of images in a chosen layout grid masonry carousel orbit README
hero Page opener: the page's only h1, text and actions center split full stack minimal README
nav Site navigation bar with links, groups and a CTA bar center split minimal side mega none README
pricing Plans and prices with a monthly/annual toggle cards table README
scene Standalone 3D scene with a poster fallback inline full backdrop none README
text Section of written copy from a string or .md file prose centered columns README

Project status

  • Built: the compiler and web target, all 12 words, the six themes, the backend with accounts, sign-in adapters and data tables, and the chat block through its operator data tools (C6). Details: ROADMAP.
  • Still open: chat's interactive controls and maps (C7, C8); a sign-in test against a real provider; 3D measurements on a genuinely slow device.
  • Not started: M5, the first real site shipped with az. The grammar is frozen only after it, so the file format can still change.
  • Not built yet: az deploy, an editor language server, a playground.

Contributing

Read CONTRIBUTING.md: setup, which checks to run for each kind of change, the house rules, and where things live in the repository. Before any change, pnpm verify must pass.

Everyone taking part follows the code of conduct. Report security problems privately, as SECURITY.md describes — never in a public issue.

License: Apache License 2.0. See also NOTICE.

About

Incord Intelligent Language (inlang) by Incord AI — describe a website in short words; az compiles it into a pre-rendered, secure site. Built for AI assistants to write.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages