Skip to content

What the web renderer draws

Every block below is drawn live from its example data, followed by the props it takes. Both come from the renderer's own block shapes, so this page changes with the code.

Hero with the brand

Describe it. The AI builds the app.

Three steps.

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextrequiredThe page's headline; without it the hero draws nothing.
ledetextA sentence under the heading.
accenttextThe part of the heading drawn in the accent; a part the heading does not hold is not drawn so.
aligntext: start, center`center` centres the text and the actions; `start` is the default.
questiontextA line above the actions.
primaryobjectThe main call to action. Without `label`, or without `href` and the sheet, none is drawn.
primary.labeltextrequiredThe button's text.
primary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
primary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
primary.notetextA line beside the button, such as the mail address it writes to.
secondaryobjectA second, quieter call to action. Without `label`, or without `href` and the sheet, none is drawn.
secondary.labeltextrequiredThe button's text.
secondary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
secondary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
secondary.notetextA line beside the button, such as the mail address it writes to.
visualtextThe plugin that draws the figure beside the text, by its id, or `none`.
captiontextA line under the figure.
atmospheretext: none, data-rainWhat falls behind the hero; left out, the site's `hero_atmosphere`.
rainlist, max 5The rain's columns, drawn only under the block's own `atmosphere`.
rain[].tokenstextsThe words of one column, top to bottom.

Step rail

From a sentence to running software.

  1. 1

    Describe

    what the business needs

    You
  2. 2

    Set up

    once

    Once
  3. 3

    Run

    every day

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
stepslist, max 4requiredTwo to four steps, numbered in this order.
steps[].icontextA lucide icon name, such as `sparkles`, or an image of the site's assets, `assets/<file>`.
steps[].titletextrequiredThe step's name.
steps[].texttextA line under the name.
steps[].tagtextA short label, such as who does the step.
steps[].tag_tonetext: accent, plain`accent` marks the tag; `plain` is the default.

Flow step

3

It goes live by itself.

Automatic
The way to live
  1. Test
  2. Stage
  3. Live
One updatereaches every customer
PropKindWhat it holds
numbernumberrequiredThe step's place in the flow.
headingtextrequiredThe step's heading.
bodytextA sentence under the heading.
tagtextA short label, such as who does the step.
tag_tonetext: accent, plain`accent` marks the tag; `plain` is the default.
figurevariant: form, status, pathWhat the step shows, drawn by its `kind`; without it the step draws its head only.
figure(form).titletextrequiredThe record's kind, such as `Order`.
figure(form).reftextThe record's number.
figure(form).fieldslist, max 6Its fields, two by two.
figure(form).fields[].labeltextrequiredThe field's name.
figure(form).fields[].valuetextrequiredWhat it holds.
figure(form).statestexts, max 6Its states in order.
figure(form).currenttextThe state marked as current.
figure(status).layouttext: stack, row`row` lays the rows out side by side from a medium screen up; `stack` is the default.
figure(status).rowslist, max 6requiredWhat is set up, one row each.
figure(status).rows[].labeltextrequiredWhat the row is, such as `App`.
figure(status).rows[].valuetextrequiredIts value.
figure(status).rows[].notetextA line beside the value.
figure(status).rows[].stagestexts, max 6The stages the row went through.
figure(path).headingtextA line above the path.
figure(path).stagestexts, max 6requiredThe stages in order.
figure(path).currenttextThe stage the runner reaches; the first when left out.
figure(path).updateobjectA note under the path.
figure(path).update.headingtextrequiredThe note's heading.
figure(path).update.texttextA line under it.
figure(path).update.countnumberHow many small marks stand for whom it reaches.
figure(path).update.icontextA lucide icon name, or an image of the site's assets, `assets/<file>`.

Screen feature

Everything your app needs, included.

includedWith every app.

Your app

  • In all your languages
  • Light and dark
PropKindWhat it holds
icontextA lucide icon name or an image of the site's assets, `assets/<file>`, in the head's tile.
headingtextrequiredThe section's heading.
ledetextA sentence under the heading.
badgetextA short accent label on a line of its own, such as `included`.
badge_notetextA line beside the badge.
titletextThe card's title.
texttextA line under the card's title.
link_labeltextA text button beside the card's title that opens `link_shot` large.
link_shotobjectThe screenshot `link_label` opens.
link_shot.lighttextrequiredThe image in light mode, and in both modes without a `dark` twin.
link_shot.darktextIts twin in dark mode.
link_shot.alttextrequiredWhat the image shows, for a reader who cannot see it.
link_shot.paperflagA printed page: one image, the same in both modes, drawn whole.
screenslist, max 2requiredOne or two screenshots: a desktop one, and a phone beside it.
screens[].lighttextrequiredThe image in light mode, and in both modes without a `dark` twin.
screens[].darktextIts twin in dark mode.
screens[].alttextrequiredWhat the image shows, for a reader who cannot see it.
screens[].paperflagA printed page: one image, the same in both modes, drawn whole.
screens[].labeltextA short label on the image, such as `Phone`.
screens[].frametext: desktop, phone`phone` draws it in a phone's frame; `desktop` is the default.
pointstexts, max 6Short points under the screens.

Hub

The core

The engine

Reads what was built and serves it.

One core feeds them all.

  • App
  • Websites
  • Reports
PropKindWhat it holds
labeltextA short line above the heading.
headingtextrequiredThe core's name.
bodytextA line under the heading.
coretextA lucide icon name or an image of the site's assets, `assets/<file>`, drawn between the arrows.
notetextA line above the outputs.
outputstexts, max 6requiredWhat the core feeds, one to six, in order.

Shot cards

WebsitesPages, menu and forms.
Reports

Reminders and imports, finished even after an interruption.

JobsDone in the background.
PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
cardslist, max 4requiredOne to four cards, in a row from wide screens up.
cards[].titletextrequiredThe card's name.
cards[].texttextA line under the name.
cards[].shotslist, max 2None, one or two screenshots on top of the card, side by side.
cards[].shots[].lighttextrequiredThe image in light mode, and in both modes without a `dark` twin.
cards[].shots[].darktextIts twin in dark mode.
cards[].shots[].alttextrequiredWhat the image shows, for a reader who cannot see it.
cards[].shots[].paperflagA printed page: one image, the same in both modes, drawn whole.
cards[].icontextWithout a screenshot: a lucide icon name or an image of the site's assets, `assets/<file>`, on top of the card.
cards[].icon_texttextWithout a screenshot: a sentence under that icon.

Disclosures

For engineers

What an app is made of
Order.entity.jsonorder.ts
ArtefactWhat it does
entity JSONThe records and their fields
PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
itemslist, max 8requiredThe panels, closed until a reader opens one.
items[].summarytextrequiredThe panel's line, which opens it.
items[].chipslist, max 16Short labels, such as file names.
items[].chips[].labeltextrequiredThe chip's text.
items[].chips[].tonenumber1 to 6: one of six marks from the theme's accent, so chips of one kind match; 1 when left out.
items[].headtexts, max 2The table's column heads, one or two; a missing second one stays empty.
items[].rowslist, max 16The table's rows.
items[].rows[].labeltextrequiredThe left cell.
items[].rows[].valuetextrequiredThe right cell.

Closing panel

See it live, with your own process.

We show live demos by appointment.

Book a live demohello@example.com
PropKindWhat it holds
headingtextrequiredThe panel's heading; without it the panel draws nothing.
bodytextA line under the heading.
primaryobjectThe main call to action. Without `label`, or without `href` and the sheet, none is drawn.
primary.labeltextrequiredThe button's text.
primary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
primary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
primary.notetextA line beside the button, such as the mail address it writes to.
secondaryobjectA second, quieter call to action. Without `label`, or without `href` and the sheet, none is drawn.
secondary.labeltextrequiredThe button's text.
secondary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
secondary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
secondary.notetextA line beside the button, such as the mail address it writes to.
notetextA small line under the actions.
frametext: card, none`none` draws the panel without its card, border and glow; `card` is the default.

Pillars

What we stand on

01

Open

Every book is on the shelf.

02

Free

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
itemslistrequiredThe pillars; one without a title is left out.
items[].numtextA short mark above the title, such as `01`.
items[].titletextrequiredThe pillar's title.
items[].bodytextA sentence under the title.

Stack

The products

Lending

available

Loans and returns.

Shop

coming
PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
itemslistrequiredThe products; one with neither a title nor a lockup is left out.
items[].titletextThe product's name, where no lockup draws it.
items[].lockupobjectThe product's name as a family lockup, such as `digita ● erp`.
items[].lockup.familytextThe family's word.
items[].lockup.producttextThe product's word.
items[].statustext: available, early_access, comingHow available the product is today.
items[].bodytextA sentence under the name.
items[].hreftextWhere the card's link leads; drawn only with `link_label`.
items[].link_labeltextThe link's text.

Pipeline

How a loan works

  1. 1

    Reserve

  2. 2

    Collect

    within a week

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
stageslistrequiredThe stages in order; one without a title is left out.
stages[].stagetextA short mark above the title, such as `Step 1`.
stages[].titletextrequiredThe stage's title.
stages[].bodytextA sentence under the title.
stages[].targettextA line at the card's foot, such as how long the stage takes.

Compare

Before and after

LoansBeforeOn paperAfterIn the app
PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
columnstexts, max 2requiredThe two columns' heads; without both nothing is drawn.
rowslistrequiredThe rows; one without an aspect is left out.
rows[].aspecttextrequiredWhat the row compares.
rows[].atextThe first column's cell.
rows[].btextThe second column's cell.

Checklist

What you need

  • An IDany official one
  • An address
PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
itemslistrequiredThe points; one without `what` is left out.
items[].whattextrequiredThe point.
items[].notetextA line beside it.

Segments

Who reads here

A

Students

who study here

Quiet desks

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
itemslistrequiredThe segments; one without a title is left out.
items[].marktextA short mark above the title.
items[].titletextrequiredThe segment's title.
items[].whotextWho it is for.
items[].gaintextWhat they gain, at the card's foot.

Signals

In short

  • Free
  • Open six days
  • In the town centre
PropKindWhat it holds
eyebrowtextA short line above the heading.
itemstextsrequiredThe short claims, one per line.
notetextA small line under them.

Hero

Borrow a book today

Every book, three weeks at a time.

How to join
PropKindWhat it holds
headingtextrequiredThe page's headline; without it the hero draws nothing.
subheadingtextA sentence under the headline.
cta_labeltextThe button's text; drawn only with `cta_href`.
cta_hreftextWhere the button leads.

Rich text

Visit us

Open Monday to Saturday.

The reading room closes an hour earlier.

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
bodytextThe text; an empty line starts a new paragraph.
primaryobjectA call to action under the text. Without `label`, or without `href` and the sheet, none is drawn.
primary.labeltextrequiredThe button's text.
primary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
primary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
primary.notetextA line beside the button, such as the mail address it writes to.
secondaryobjectA second, quieter call to action. Without `label`, or without `href` and the sheet, none is drawn.
secondary.labeltextrequiredThe button's text.
secondary.hreftextWhere it leads: a path of the site, which takes the page's language, an address, or `mailto:`.
secondary.actiontext: sheet`sheet` opens the site's contact sheet instead of `href`.
secondary.notetextA line beside the button, such as the mail address it writes to.
notetextA small line under the actions.
aligntext: start, center`center` centres the text; `start` is the default.
sizetext: normal, small`small` sets the lede as a small aside; `normal` is the default.

Feature grid

What members get

Three weeks

Every loan runs three weeks.

Reservations

PropKindWhat it holds
headingtextThe section's heading.
itemslistThe cards, three in a row on a wide screen.
items[].titletextThe card's title.
items[].bodytextA line under the title.

Stats

Books
12,000
Members
800
PropKindWhat it holds
itemslistrequiredThe figures, up to four in a row on a wide screen.
items[].labeltextWhat the figure counts.
items[].valuetextThe figure.

Media

The reading room

The reading room

PropKindWhat it holds
imagetextThe image as a file id or `assets/<file>`; it wins over `src`.
srctextThe image's address.
alttextWhat the image shows, for a reader who cannot see it.
captiontextA line under the image.

Call to action

Join today

Membership is free.

PropKindWhat it holds
headingtextThe panel's heading.
bodytextA line under the heading.
cta_labeltextThe button's text; drawn only with `cta_href`.
cta_hreftextWhere the button leads.

Embed

PropKindWhat it holds
srctextrequiredThe address the frame shows; without it nothing is drawn.
titletextThe frame's title for a screen reader.

Code

One file

book.entity.jsonjson
{ "name": "Book" }
PropKindWhat it holds
codetextrequiredThe code, as it is shown; without it nothing is drawn.
titletextA file name or title above the code.
languagetextThe language's name, shown as a badge.
headingtextThe section's heading.
introtextA sentence above the code.
captiontextA line under the code.

Contact details

Find us

Town LibraryMain Street 11000 Towndesk@example.org
PropKindWhat it holds
headingtextThe section's heading.
bodytextA sentence under the heading.
addresstextsrequiredThe postal address, one line each; without it nothing is drawn.
emailtextThe mail address.
phonetextThe phone number.
booking_urltextWhere the booking button leads; drawn only with `booking_label`.
booking_labeltextThe booking button's text.
formobjectThe contact sheet's own texts; each one left out keeps the site's text.
form.titletextThe sheet's title.
form.headingtextThe heading above the form.
form.ledetextA sentence under it.
form.nametextThe name field's label.
form.emailtextThe mail field's label.
form.messagetextThe message field's label.
form.messagePlaceholdertextThe message field's hint.
form.sendtextThe send button's text.

App list

The apps

PropKindWhat it holds
eyebrowtextA short line above the heading.
headingtextThe section's heading.
ledetextA sentence under the heading.
appslistThe texts of the tenant's apps, each by its name; an app without one shows its name in words.
apps[].apptextrequiredThe app's name, as the tenant runs it.
apps[].titletextThe card's title.
apps[].descriptiontextA sentence under the title.
link_labeltextThe text of the link into an app.
demo_labeltextThe text of the demo link on a demo tenant.
What the web renderer draws · simplidigita