Kaury 1.0.0 · open source · MIT
Websites,
written in words.
One file holds the logic, the look and the 3D. The compiler turns it into a fast, complete site.
$
npm install -g @kaury/cli
01 · Made with Kaury
Real sites. One file each.
Not screenshots: the site below is running, here, now. Scroll inside it, click, fill its form.
● ● ●
dev.kaury.studio/showcase/forge/
Strength gym
Forge
A headline over a shaded photograph, a ticker, pictures in black and white, prices that follow a choice.
shade
grayscale
ticker
components
232
lines of Kaury. The compiler turns them into 180 elements and 414 style rules: none was written by hand.
02 · How it reads
The code. The real site.
Change the tab: the right panel runs the compiler in your browser.
state likes = 0
let double = likes * 2
page "/"
section fullscreen, center
title "Hello, world", size 72, text-gradient #F56E2E #A83E0D
enters from bottom
text "The double computes itself: {double}"
button "I like it ({likes})", large -> likes += 1
if likes >= 5
text "You really like it!", bold, color #C2410C
A state changes, the page follows. No hooks, no listeners.
Edit →page "/"
scene fullscreen, particles stars, background night, immediate
light neon
object star "star.svg", size 0.8
float
follows mouse, smooth
on click -> jump
says "Click me!"
title "A universe in 10 lines", size 64, color white
enters from bottom
A scene, a light, an object that follows the mouse. Three.js loads by itself.
Edit →state cart = []
let total = sum cart, f -> f.price
let flavors = [
{ name: "Berry", price: 3.9 },
{ name: "Mint", price: 3.9 },
{ name: "Mango", price: 4.2 }
]
page "/"
section center
title "Cart: {cart.length} · {price(total)}", size 40
grid 3 columns, gap 16
for f in flavors
card f.name
text price(f.price)
button "Add", small -> cart.add f
Lists, loops, a cart and a price format, in plain words.
Edit →page "/"
section center
title "Contact", size 48
form -> sent = true
field name "Your first name", required, label "First name"
field email "name@example.com", type email, required, label "Email"
checkbox agree "I agree to be contacted"
button "Send", disabled not agree
if sent
text "Thanks {name}, see you soon.", bold
Each field is bound to a state. Validation is built in.
Edit →● ● ●
localhost:3000
03 · How it works
Three steps. No setup.
Nothing to configure, no framework to choose, no stylesheet to keep in step.
1
Write
One file, in words you can read aloud. The editor colors it and names every mistake with its fix.
kaury dev
2
Check
The compiler renders every page and tells you what a visitor could not use, a dead link, a text too pale.
kaury check
3
Ship
A folder of plain files, fast everywhere. Host it where you like, or in a folder of another site.
kaury build
04 · Measured
Fast by default.
Lighthouse on the sites above, as they are built: nothing was tuned by hand. Orange is a phone on a slow network, beige a desktop.
Terre
99
100
Relay
99
100
Forge
99
100
Nuit
96
100
Chez Lina
95
100
Performance score, measured on 12 October 2026. Accessibility, best practices and SEO: 100 on every one.
05 · Why Kaury
Three promises, kept by the compiler.
01
Simple to write
One line, one idea. Errors that tell you the fix.
button "+1" -> count += 1
02
Fast by default
Server rendering, inlined CSS, light pictures, fonts served by the site. 100 on a desktop, measured.
kaury build → dist/
03
3D is a word
Scenes, lights, cameras, particles. Three.js loads only where needed.
object "can.glb", spin on scroll
06 · Built in
Nothing to install.
Reactive
Change a value, the page follows.
Content
Markdown and YAML, one page per post.
SEO & GEO
Sitemap, llms.txt, JSON-LD, Open Graph.
Mobile first
Grids fold, menus collapse by themselves.
Open to JS
Any npm package, or a js block.
Editor
VS Code coloring, completion, live errors.
07 · For AI assistants
Your AI already speaks Kaury.
One spec file, kaury-ai.md. Give it to any AI, ask for a site.
Prompt
Read https://dev.kaury.studio/kaury-ai.md — the full specification of the Kaury language. Then write a complete Kaury site (one site.kaury file) for: a bakery in Lisbon with a 3D croissant.
→ site.kaury
✓ compiles
08 · Questions
Kaury, in plain answers.
What is Kaury?
Kaury is an open-source programming language for websites. One .kaury file holds the logic, the structure, the style and the 3D of a site; the compiler turns it into server-rendered HTML, CSS and JavaScript that are fast by default. In Lighthouse, the pages of this site score 100 on a desktop and 97 to 100 on a phone for performance, and 100 for accessibility, best practices and SEO.
Is Kaury free?
Yes. The compiler, the runtime, the command line and the VS Code extension are open source under the MIT license.
Do I need to know JavaScript, React or Three.js?
No. Kaury is a complete language of its own, with readable keywords. You can still import any npm package or write a js block when you want to.
How does Kaury add 3D without slowing the site down?
The 3D library loads only on pages that contain a scene, when the scene becomes visible and after the visitor's first gesture. The text of the page is real HTML rendered on the server, so it is readable instantly.
Can ChatGPT, Claude or Cursor write Kaury?
Yes. The whole language fits in one specification file, kaury-ai.md, written for AI assistants. Paste it, or its address, into your assistant and ask for a site.
Where can I host a Kaury site?
Anywhere. kaury build produces a static site in dist/ that works on Netlify, Vercel, Cloudflare Pages, GitHub Pages or any web server. kaury deploy --netlify publishes it in one command.
How is Kaury different from Astro, Next.js or Webflow?
Kaury is a language, not a framework or a visual builder. There is no JSX, no component library to learn and no configuration; immersion (3D, scenes, characters) is part of the syntax, and SEO, llms.txt and structured data are generated by default.
Your first Kaury site in five minutes.
$
npm install -g @kaury/cli