STENOTM
A next-generation markup & data language.
One human-friendly, AI-friendly source.
Free and open by design. HTML/CSS/JS and JSON become the output, not the starting point.
STENO is an advanced markup language with template-engine capabilities and, more technically, a declarative Domain-Specific Language (DSL) for next-generation HTML/CSS output and compact representation of structured data. It is designed for building pages and web applications where interface and data are described coherently inside the same source.
The name STENO comes from the acronym Structured TErse NOtation and deliberately echoes stenography: just as shorthand writing lets you capture full sentences with a few signs, STENO lets you define complete web interfaces and complex datasets using an extremely compact notation — both compared to traditional HTML/CSS/JS and to verbose, repetitive JSON structures.
The core purpose of STENO is threefold:
1. Radically reduce the amount of code required.
STENO removes the intrinsic redundancy of HTML and conventional data formats through smart conventions, sensible defaults and a syntax that can express in a few lines what normally demands dozens of tags or repeated JSON objects.
2. Unify structure, presentation and data.
Instead of rigidly separating HTML (structure), CSS (style), JavaScript (behavior) and JSON (data), STENO integrates these aspects into a single coherent syntax. From one STENO file you can generate markup HTML, CSS styles and configurations or data collections exportable as JSON or other formats.
3. Democratize web development.
Thanks to a gentle learning curve, designers, content creators and junior developers can quickly assemble professional interfaces without first wrestling with the full complexity of HTML, CSS, JavaScript and JSON. STENO becomes a more human intermediate layer, compilable down to the underlying technologies.
STENO itself will remain free and open. Around it, a growing ecosystem of optional tools and integrations will focus on productivity, not on locking you in.
Designed for humans. Obvious to AI.
STENO was born as a shorthand for complex interfaces and datasets. Its compact, regular notation is not only easier for humans to read, but also dramatically simpler for AI systems to parse, generate and refactor compared to a tangle of HTML, JavaScript and JSON.
One coherent language means a single source of truth for both people and machines. Whether you are hand-writing STENO or letting an AI model propose entire sections for you, the result stays aligned: what you see is the intent of the interface, not its plumbing.
HTML/CSS/JS + JSON vs STENO, at a glance
Same result, different path. These are typical orders of magnitude from real-world tests: the same interface and the same data, expressed once in a traditional stack and once in STENO.
| Scenario | HTML/CSS/JS + JSON | STENO |
|---|---|---|
| Marketing landing page |
~8,000 characters, ~400 lines, 3–5 separate files (HTML, CSS, JS). |
~2,000 characters, ~80 STENO lines, 1 STENO source. |
| Product dataset (100 items) |
Repeated JSON keys for every item, verbose payload and larger transfers. |
Compact, tabular STENO notation, ~100 data rows, 1 STENO header line for the whole dataset. |
| Hero with animations |
Markup + CSS + JS + optional libraries, spread across multiple files and configs. |
Structure, style, motion and data in a few STENO lines in a single file. |
Concrete examples: same UI, fewer lines
Same component, different footprint. These are the kind of differences you see when you translate real pieces of UI to STENO.
6–15 lines across markup, utility classes and small JS helpers, usually in 2–3 different files.
1 single STENO line.
20–40 lines of HTML, classes and JSON data, plus optional JS for hover and interactions.
3–5 STENO lines.
Dozens of HTML table rows plus a large JSON payload with repeated keys for each product.
1 STENO header line + 100 STENO data lines.
Imagine your next project starting in STENO,
not in HTML/CSS/JS and JSON…
The Weight of Code & Data
Same page, same dataset. Fewer files, fewer lines, fewer bytes on the wire.
Typical savings from early real-world experiments:
• from ~400 lines across 3–5 HTML/CSS/JS files to ~80 lines in a single STENO source for a landing page;
• from dozens of table rows plus repeated JSON keys to a handful of STENO lines for product lists and dashboards;
• from scattered snippets for each CTA button to one STENO line per interaction.
What normally needs markup, CSS, JS and JSON becomes a single layer of notation.
© 2025 STENO™ Language Organization.
