youros

FeaturesChanging it

Building

How your.os's own pages and apps are made, edited and shipped: this site and the shell are files on a machine, drawn by the same renderer that builds them, edited in the OS like any note, and released through the same gate as any code. For us first; a library for anyone's site, later. None of it is built: the site is still rendered by its own build.

One renderer↑ Why · Priya adds what only code can do, and stops being asked for words Priya sees the page in the pane exactly as it will ship, because one renderer draws both.↑ Why · Someone checks every claim before trusting it That the page in the editor is the page that ships is checked on every build, not claimed.

This site is built by the editor's renderer

Two renderers drift, and an edit that looks right in one ships wrong.

Shown when the site's build imports the editor's renderer and nothing else that draws a page; a docs page opened in the pane and the same page as built have the same DOM.

Not built: nothing in the code or tests names this yet.

The build says when the pane and the site disagree

The pane runs the released editor and the build runs the commit, so they can part.

Shown when CI renders every page with the released renderer and with the commit's, and fails on a difference unless the commit changed the renderer.

Not built: nothing in the code or tests names this yet.

Structure and words are files↑ Why · Sam changes the café's page without waiting on anyone The rectangles and words of a page or an app are a file Sam can open, point at and change.

A page's or an app's rectangles and words are an MDX file

Most of a screen is boxes and text, which a file can say and anyone can edit without code.

Shown when the welcome note, the MCP settings page and this site's pages are MDX files that draw the same in the pane and in the build.

Not built: nothing in the code or tests names this yet.

A file's components can hold blocks, and still round-trip byte for byte

A layout is boxes inside boxes.

Shown when a <Row> holding two paragraphs and a <Card>, edited in the pane, changes only the edited lines on disk.

Not built: nothing in the code or tests names this yet.

Nothing in an MDX file runs

A file anyone can edit must not be a way to run code.

Shown when props are literal values; an import, an export or a {…} expression is kept and shown as text, never evaluated.

Not built: nothing in the code or tests names this yet.

A component made of others is a file any page in its folder can use

A component made once should be usable everywhere it's needed.

Shown when components/Card.mdx, with two slots, used on two pages and edited once, changes both; an instance's own props keep their values.

Not built: nothing in the code or tests names this yet.

A component with behaviour is code, and comes from a build

Static components are data; anything that runs is reviewed code.

Shown when a file naming a component the release doesn't have shows a placeholder (file/unknown-tags), and nothing in the folder is loaded as code in its place.

Not built: nothing in the code or tests names this yet.

Drawn in a frame of its own↑ Why · Sam changes the café's page without waiting on anyone Sam's page can look like anything CSS can do, and still can't reach past its rectangle.

A page is drawn in a frame that runs nothing and fetches nothing

Contained, a stylesheet can't escape its rectangle or send what's on screen anywhere, so it needn't be filtered.

Shown when a page whose CSS loads url(https://elsewhere/…) makes no request, and its position: fixed stays inside the pane; the browser's copy of a site (browsing.md) is drawn by the same frame.

Not built: nothing in the code or tests names this yet.

A page or a folder may have a stylesheet of any CSS

A fixed list of properties can't make every design.

Shown when a folder's .css with :root, @media, grid and an @font-face from the folder draws the same in the pane, the build and a publish.

Not built: nothing in the code or tests names this yet.

A page draws offline from what this device holds

Rendering is reading data, with nothing to compile or fetch.

Shown when offline, a page of a folder this device holds opens, draws and takes edits; back online, the edits sync.

Not built: nothing in the code or tests names this yet.

Apps, edited where they live↑ Why · Priya adds what only code can do, and stops being asked for words Priya changes an app's layout, words and styles in the OS, and its behaviour in code beside them.

Every app can be previewed from a machine's working tree

An edit should be seen at once, before it is a release.

Shown when an edit to an app's files on the machine shows in its preview within a second, drawn from fixture state.

Not built: nothing in the code or tests names this yet.

A preview that breaks breaks only itself

Editing the shell must not lose you the shell you're editing with.

Shown when a preview whose code throws or loops leaves the shell, and the pane round it, working.

Not built: nothing in the code or tests names this yet.

Pointing at an element opens where it was made

The quickest way into a screen's source is the screen.

Shown when every element of a preview names its file and block, or file and line for code; picking one opens it there.

Not built: nothing in the code or tests names this yet.

Visual edits change files that are data, never code

A restyle that rewrites code is a code change nobody reviewed.

Shown when moving, retexting and restyling an app in the pane changes only its MDX and style files.

Not built: nothing in the code or tests names this yet.

An edit to the shell or an app reaches devices only as a release

The running shell isn't editable (D-14); what you edit is its source.

Shown when an edited working tree changes nothing on any device until a release built from it is approved (trust.md).

Not built: nothing in the code or tests names this yet.