Glossary
One-line definitions for the words these docs use, one meaning per word.
The package list named a lot of parts. This page pins down the words around them. Each word has one meaning across the site.
Writing components
| Term | Meaning |
|---|---|
| component | A function in a .tsrx file whose body is markup, written function Counter() @{ ... }. |
| TSRX | The file format for components: TypeScript plus markup and @if, @for, and @try blocks. |
| state | A value from state() that you read and write as a plain variable, like count. |
| computed | A value from computed() that Markless derives from state. |
| shared | State from shared() that many components reach without props. |
| storage | A string value from storage() that Markless saves in localStorage. |
| element handle | A reference from element() to a tag in the markup. |
| key | The identity of each row in an @for, as in key item.id. |
| async boundary | An @try block with @pending and @catch around an async read. |
Where a component renders
The compiler does its work at build time. The compiled component then renders wherever you need it. The model is the same in every place.
| Term | Meaning |
|---|---|
| browser-only | render() from @markless/core mounts the app in the browser. The component body runs once there. You need no server. |
| client render | Another name for browser-only rendering. The test helper render() uses it. |
| server render | renderToString() turns components into HTML on a server. The component body runs on the server and zero times in the browser. |
| multi-page app | An app built with @markless/router: file routes, links, and pages rendered through Nitro, which deploys to many hosts. |
| prerender | HTML made at build time. Demos turn it on with MARKLESS_PRERENDER=1. Treat it as a preview feature. |
| test render | @markless/vitest-browser renders a component in a browser test, either mounted directly or through a server render. |
| native host | Proofs in the repo drive UIKit and AppKit controls with the same model. They are proofs, not a feature you can use. |
How it works
| Term | Meaning |
|---|---|
| compiler | The build step that reads .tsrx files. It plans the state, the updates, and which code runs on which event, before the app runs. |
| symbol | One piece of code that the compiler split out, like one click handler. |
| chunk | A file that holds symbols. The browser loads a chunk the first time it needs one of them. |
| packing | The production build step that groups symbols into fewer chunks. It is on by default. Set packing: false to turn it off. |
| state graph | The map of which computed values and which page updates read each piece of state. |
| payload | In server output, the data next to the HTML. markless/state scripts hold the values. markless/view scripts say which element does what. |
| container | In server output, the element with the data-async-container attribute. It wraps the HTML and its payload. |
| resumer | The small inline script in server output. It waits for the first interaction and then loads the code it needs. A page with no interactions gets no resumer. |
| resume | The browser continues from server HTML and its payload. It does not run the component body again. |
| hydrate | What many other frameworks do: run components again in the browser to attach events. Markless doesn’t. |
Tooling
| Term | Meaning |
|---|---|
| diagnostic | A compiler message with a code, a reason, a suggested fix, and a link. |
markless-allow |
A comment that silences one warning, with a reason: // markless-allow CODE: reason. |
TS91001 |
The error code that pnpm typecheck and the editor use for a .tsrx file that does not parse. |
Next: Which commands create and build an app? CLI →
