bots.list | The space's bots (the AI chat first) and automations: what each does, what starts it, today's use, the next scheduled run, and an on/off switch. For people who manage the space. | title (string): Heading, default none<br>show (string): 'all' (default), 'bots' or 'automations' | Ready |
bots.waiting | Things bots and automations want to do that wait for a person: posts (reply drafts), records, notifications, coins. Approvers can edit the words, approve or discard. Shows only what this person may approve. | title (string): Heading<br>empty (string): Shown when nothing waits | Ready |
bots.runs | Recent runs of automations and bots: what started each, every step's result and any failure. For people who manage the space. | automation (string): Only this automation's runs<br>bot (string): Only this bot's runs<br>limit (number): How many, default 10<br>title (string): Heading | Ready |
bots.run | A button that starts an automation whose trigger is manual (send the weekly report now, close the day, deal a new round). Shows only to roles in its when.who and people who manage. | automation* (string): The /automations id<br>label (string): Button words, default the automation's name<br>done (string): Words after it starts | Ready |
bots.ask | Give one of the space's bots a task in words and see its answer (for people who manage the space). People talk with bots in conversations by @mentioning them. | bot* (string): A /bots id (not the builder)<br>placeholder (string): Words in the empty box<br>title (string): Heading | Ready |
bots.hooks | Webhook addresses that start an automation whose trigger is webhook, for outside services (forms, shops, scripts). Make one, copy it once, revoke it. For people who manage the space. | automation* (string): The /automations id<br>title (string): Heading | Ready |
stack | Lays out child blocks in a column or a row. Holds children. | direction (string): 'column' (default) or 'row'<br>gap (number): Space between children in px, default 12 | Ready |
heading | A title. | text* (string): The words<br>level (number): 1 to 3, default 1 | Ready |
text | A paragraph of text. | text* (string): The words | Ready |
image | A picture from a URL. | src* (string): https URL<br>alt (string): What the picture shows | Ready |
button | A button that opens a link or another page. | label* (string): Button words<br>href (string): https URL, or '#page-id' for a page in this workspace | Ready |
list | A bulleted list. | items* (string[]): One string per item | Ready |
card | A framed box with an optional title, text and child blocks. Holds children. | title (string): Card title<br>text (string): Card text | Ready |
stat | A big number with a label. | label* (string): What the number is<br>value* (string): The number or short value | Ready |
divider | A thin line between sections. | none | Ready |
miniapp | Runs one of the workspace's mini-apps (apps[].id) in a sandbox. Use for games and anything blocks can't express. props.config is a JSON object the mini-app reads as window.zvessa.config (its settings; config.connections lists connection ids it may read from). | app* (string): The id of an entry in blueprint.apps<br>height (number): Height in px, default 360<br>config (object): Settings for this copy of the app, handed to it as window.zvessa.config (a starter app lists its keys). Plain JSON, up to 16 KB. config.connections names the space connections it may read through the bridge | Ready |
records.list | Shows a collection's records as a list, or as a board with one column per option when groupBy names a choice field. | collection* (string): A blueprint.collections id<br>fields (string[]): Which fields to show, in order; default all<br>groupBy (string): A choice field id: show a board, one column per option<br>empty (string): Words when there are no records | Ready |
records.form | A form that adds a record to a collection. | collection* (string): A blueprint.collections id<br>fields (string[]): Which fields to ask for; default all<br>submit (string): Button words, default 'Save'<br>done (string): Words shown after saving<br>defaults (string): JSON object of values set on every new record, e.g. {"status":"To do"} | Ready |
records.count | A big number: how many records a collection has. | collection* (string): A blueprint.collections id<br>label (string): What the number is | Ready |
stream | One live conversation from blueprint.streams: a room, a channel, a feed. Who sees, writes and moderates is set on the stream. look 'feed' shows posts as cards, newest first. | stream* (string): A blueprint.streams id<br>look (string): 'chat' (default, bubbles) or 'feed' (cards)<br>height (number): Height in px of the chat look, default 520<br>placeholder (string): Words in the empty message box (overrides the stream's) | Ready |
conversation | One conversation with its header: back, picture, name and people count, voice and video call buttons (direct and group chats, with the calls kit), a details button (people, mute, leave), then the messages and the box to write in. Replies, reactions, edits, read receipts and typing follow the conversation's settings (/streams, /talk). Without a stream it shows the conversation that was opened: put it on the page /talk/screen names to design the full-screen chat. | stream (string): A blueprint.streams id. Leave it out on the /talk/screen page to show whichever chat was opened<br>header (boolean): Show the header row (default true)<br>calls (boolean): Show voice and video call buttons when calls are on (default true)<br>details (boolean): Show the details button (default true)<br>look (string): 'chat' (default, bubbles) or 'feed' (cards)<br>height (number): Height in px when it sits inside a page, default 520<br>placeholder (string): Words in the empty message box<br>background (string): The colour behind the messages: a style colour role (chatBg, bg, surface…). Default chatBg on the full screen<br>send (string): The send button: 'text' (default, a Send button) or 'icon' (a round button with an arrow, like messaging apps) | Ready |
inbox | A person's conversations in one list: direct chats, groups, the space's streams and their cases, with unread counts, search and New chat. Opens a conversation (beside the list on wide screens). | title (string): Heading<br>show (string[]): Which kinds to list: direct, group, stream, case; default all<br>height (number): Height in px on wide screens, default 600 | Ready |
direct | The person's direct (one-to-one) conversations. Same as an inbox showing only direct chats. | title (string): Heading, default 'Messages' | Ready |
queue | The team's side of a queue stream (support desk, applications, orders): every case by status and who it's given to, to answer them. Only the stream's team sees it. | stream* (string): A blueprint.streams id whose mode is 'queue'<br>title (string): Heading | Ready |
ask | The asking side of a queue stream: a person opens a case (asks for help, applies, orders) and follows their own. | stream* (string): A blueprint.streams id whose mode is 'queue'<br>subject (string): Label for the short title, default 'Subject'<br>button (string): Button words, default 'Send'<br>done (string): Words shown after sending | Ready |
drafts | A person's unsent drafts and scheduled posts, and, for moderators, posts waiting for approval. | title (string): Heading | Ready |
units | The space's units (teams, departments, classes, branches…) as a tree with who is in each, their titles and leads. Leads and managers place people; open units can be joined; managers add and rename units. | unit (string): Start at this unit (blueprint.structure.units id); default the whole tree<br>people (boolean): Show who is in each unit, default true | Ready |
members | The space's members and their roles, with a button to message each one directly. | title (string): Heading, default 'People' | Ready |
invite | Makes an invite link people open to join the space with a role. | role (string): Role new people get, default 'member'<br>label (string): Button words | Ready |
booking | People book a time (appointments, classes, a table). Props are the opening hours, in the owner's time zone; people who manage the space see every booking. | title (string): Heading, default 'Book a time'<br>duration (number): Minutes per booking, 5-480 (default 30)<br>days (string[]): Open days: sun, mon, tue, wed, thu, fri, sat (default mon-fri)<br>from (string): Opening time, HH:MM 24-hour (default 09:00)<br>to (string): Closing time, HH:MM 24-hour (default 17:00)<br>tz (string): IANA time zone like America/New_York (default UTC; ask the owner)<br>ahead (number): How many days ahead people can book (default 14) | Ready |
scheduled | Write a post now and have it go out in a chat, channel or feed later; lists what's waiting. | stream (string): Only post into this blueprint.streams id | Ready |
analytics | Charts of what happens in the space per day: page views, posts, records, joins, plays. Only people who manage the space see it. | days (number): Days to show first: 7, 14, 30 or 90 | Ready |
poll | A question members vote on, with live results. | question* (string): The question<br>options* (string[]): At least two answers<br>multiple (boolean): Allow picking more than one | Ready |
wheel | A wheel anyone can spin for a random pick; everyone sees the same result. | options* (string[]): At least two slices<br>label (string): Button words, default 'Spin' | Ready |
game | A live game from blueprint.games (trivia, quiz board, charades, bingo, a gift draw…). People start one, join with a code and play on their phones; on a TV paired with Show on TV it shows the big screen. | game* (string): A blueprint.games id<br>title (string): Heading, default the game's name | Ready |
game.screen | The big-screen view (question, board, timer, scores) of the game in progress, for a tablet or a screen on the wall. | game* (string): A blueprint.games id | Ready |
split | Totals a collection's money field, shows each person's share and the fewest payments to settle up. Trip costs, a shared gift, a picnic. | collection* (string): A blueprint.collections id<br>amount* (string): The money or number field to add up<br>payer* (string): The text field with who paid<br>people (string[]): Names sharing the cost; default everyone who paid<br>title (string): Heading | Ready |
room | A live room for voice, video and screen sharing. mode 'talk': everyone allowed to speak joins as equals (calls, group calls, huddles, a study room). mode 'stage': hosts are seen and heard and everyone else watches and reacts (live streams, classes, town halls, a show). | title (string): Name shown on the room<br>mode (string): 'talk' (default) or 'stage'<br>video (boolean): Allow cameras, default true; false makes it voice only<br>screen (boolean): Allow screen sharing, default true<br>speak (string): Permission needed to speak in 'talk' mode (view, post, play, add, edit, invite, manage), default 'post'<br>watch (string): Permission needed to watch a 'stage', default 'view'<br>host (string): Permission needed to host: be on stage, invite people up, mute, remove and record. Default 'manage'<br>max (number): Most people in the room at once, default 50 for talk, 1000 for stage<br>record (boolean): Let hosts record to the media library (needs LiveKit Egress and R2)<br>join (string): Join button words | Ready |
call | A button that rings people for a voice or video call. Use it on a contact page, a service page or a members list. | to (string): Who it rings: 'owner' (default), 'pick' (choose from the space's members) or a role id (everyone with that role)<br>video (boolean): Start with cameras on, default false<br>label (string): Button words | Ready |
media.gallery | A grid of photos, videos, audio and files from the space's media library, with an upload button for people allowed to add. Tap an item to open it. | folder (string): Which folder of the library, default 'main'. Any short name; recordings go to 'recordings'<br>kinds (string[]): Only these kinds: image, video, audio, file. Default all<br>upload (boolean): Show the upload button to people with 'add', default true<br>columns (number): Columns on a phone, default 3<br>empty (string): Words when the folder is empty<br>label (string): Upload button words | Ready |
media.player | Plays the newest video or audio (or shows the newest photo) from a media folder. Good for a latest episode, a welcome video or a song. | folder* (string): Which folder of the media library<br>kind (string): 'video' (default), 'audio' or 'image'<br>title (string): Words above the player | Ready |
screen.pair | Connects a TV, projector or any big screen. Open the TV link on the screen (any browser, a smart TV, or a laptop with AirPlay or Chromecast), then type the code it shows here. The screen joins the space with the role you pick and shows a page. | page (string): Page id the screen opens on, default this page's first other page<br>role (string): Role the screen gets in the space, default 'guest'<br>pair (string): Permission needed to connect screens, default 'manage'<br>label (string): Button words | Ready |
screen.remote | A remote for the space's connected screens: pick what each one shows. Phones become controllers. | pages (string[]): Page ids people can put on the screen, default every page except HQ<br>control (string): Permission needed to use the remote, default 'play'<br>title (string): Heading | Ready |
hq.pages | HQ: every page of the space, to open one. | none | Ready |
hq.library | HQ: the kit library, to add or remove kits (optional features). | none | Ready |
hq.history | HQ: the list of saved versions with undo. | none | Ready |
hq.proposals | HQ: changes the AI proposed, waiting for Approve. | none | Ready |
hq.styles | HQ: the style library (Classic, Futuristic and the space's own) and the scheme, to switch the look. | none | Ready |
hq.access | HQ: who can find and join the space (visibility, join rule), join requests, and the roles. | none | Ready |
hq.connections | HQ: the space's own AI key, its key vault, access tokens for MCP clients, and connections to outside MCP servers and APIs. | none | Ready |
hq.blueprint | HQ: the whole blueprint as readable JSON. | none | Ready |
ledger.balance | The viewer's balance in one unit (coins, points, credits…) or in every unit of the space. | unit (string): A unit id; leave out to show every unit<br>label (string): Words under the number, e.g. 'Your coins' | Ready |
ledger.send | A form to send some of a unit to another person by email. Only works for units with transfers on. | unit* (string): A unit id from ledger.units, e.g. 'coins'<br>title (string): Heading, e.g. 'Send coins'<br>button (string): Button words, e.g. 'Send'<br>done (string): Words shown after sending | Ready |
ledger.give | For whoever may issue a unit: create some and give it to a person by email, or take some back. | unit* (string): A unit id from ledger.units, e.g. 'coins'<br>title (string): Heading, e.g. 'Give coins' | Ready |
ledger.history | The viewer's latest movements in and out (received, sent, spent, rewards). | unit (string): A unit id; leave out for every unit<br>limit (number): How many, default 20<br>empty (string): Words when there's nothing yet | Ready |
ledger.leaderboard | A ranking of people: by a unit (who holds the most, received the most ever, or received the most this day/week/month/year), or by how often they did something (an event: post, view, play, record, join or a custom one). Give either unit or event. | unit (string): A unit id to rank by, e.g. 'coins'<br>event (string): An event name to rank by instead, e.g. 'post' or 'play' (needs the Leaderboards kit)<br>by (string): 'balance' (default) or 'earned'<br>window (string): 'all' (default), 'day', 'week', 'month' or 'year'; ranks by what was received in that time<br>limit (number): How many places, default 10<br>title (string): Heading<br>empty (string): Words when nobody is ranked yet | Ready |
ledger.levels | The space's levels (tiers, VIP, memberships, plans) with their perks and price, and a button to get or renew one. | only (string[]): Level ids to show; leave out for all<br>get (string): Button words to get a level, e.g. 'Join'<br>renew (string): Button words to renew a level that runs out, e.g. 'Renew'<br>held (string): Words on a level the viewer holds, e.g. 'You're in'<br>byHand (string): Words on a level that can't be bought, e.g. 'By invite' | Ready |
ledger.marks | The viewer's marks in this space: their top level and badges (verified, VIP…). | empty (string): Words when they have none | Ready |
ledger.grants | For whoever may give a level or badge: who holds it, give it to someone by email (optionally for some days), or take it away. Use for verified, VIP, staff and the like. | kind* (string): 'level' or 'badge'<br>key* (string): The level or badge id<br>title (string): Heading | Ready |
invites.code | The viewer's own invite code for this space, as a link, a QR code and a share button, with what inviting earns. Needs /referrals/codes. | title (string): Heading, e.g. 'Invite friends'<br>qr (boolean): Show the QR code (default true)<br>message (string): Share words; {space}, {code} and {link} are filled in. Default 'Join me in {space}: {link}'<br>button (string): Share button words, default 'Share'<br>empty (string): Words for people who can't get a code | Ready |
invites.list | Who the viewer invited and whether each counted, with totals; or, for people who can invite or manage, who invited whom in the whole space. | who (string): 'mine' (default) or 'everyone' (only shows to roles that can invite or manage)<br>title (string): Heading<br>limit (number): How many, default 50<br>empty (string): Words when nobody has joined yet | Ready |
invites.redeem | A box to type or paste an invite code or link and join that space. | title (string): Heading, e.g. 'Have a code?'<br>button (string): Button words, default 'Join'<br>scan (boolean): Also offer to scan a QR code with the camera (default true on phones) | Ready |
qr | A QR code for any link or text: a page of this space, a website, wifi details, a ticket number. Phones open it with their camera. | value (string): The text or full link to encode (up to 300 characters)<br>page (string): Or a page id of this space: makes a link that opens that page<br>label (string): Words under the code<br>size (number): Width in points, 96-320 (default 200) | Ready |
ai.chat | The builder AI chat: people ask, the reply streams in word by word with a progress line and a Stop button, and proposals show Approve and Discard. Only people who can manage the space see it. | placeholder (string): Words in the empty box (default: words.chatPlaceholder)<br>model (string): Model size for messages sent here: auto (default, follows /ai/model), small or large<br>steps (boolean): Show what the AI is doing while it works (default true) | Ready |
ai.model | HQ: choose the AI's model size (auto, small and fast, large and careful), and switch streaming and finish pushes on or off. Writes /ai. | title (string): Heading, default 'AI' | Ready |
ai.notes | The notes the AI keeps on how the viewer likes things built: read, add and delete them, and switch notes on or off (/ai/remember). | title (string): Heading, default 'What the AI remembers' | Ready |
ai.jobs | The space's latest AI work (chat replies, bots): what each is doing now, how it ended, and Stop for running ones. | title (string): Heading, default 'AI activity'<br>limit (number): How many to show, default 10 | Ready |
ai.setup | The 'Connect your AI' step: people who manage the space paste their Claude API key right here (sealed in the vault, never shown again); others see who to ask. Hides itself once the AI is connected unless hideWhenReady is false. Good at the top of HQ, a welcome page or an onboarding page. | title (string): Heading, default the word aiSetupTitle ('Connect your AI')<br>about (string): Words under the heading, default the word aiSetupAbout<br>hideWhenReady (boolean): Hide once a key is connected, default true | Ready |
ai.allowance | How many AI messages the viewer has left today in this space (or that there's no limit), and when they come back. Put it near an AI chat or on a profile page. | label (string): Words above the number, e.g. 'Your AI today'<br>meter (boolean): Show a bar of used vs. allowed, default true | Ready |
hq.aiUsage | HQ, for people who manage the space: today's AI use by person, the space and its bots, the limits that apply (the space's /ai/limits and, on the server's key, the server's), and whose key pays. | limit (number): How many people to list, default 20 | Ready |
feed.timeline | Posts of a feed (blueprint.feeds) with likes, replies, reposts and a box to post. Layouts: list (X/Threads style), cards (Instagram style), grid (gallery, profile grid), stories (a row of recent posts that disappear). | feed* (string): A blueprint.feeds id, or '*' for every feed of the space<br>layout (string): 'list' (default), 'cards', 'grid' or 'stories'<br>sort (string): 'new' (default), 'active' (latest reply first, for forums) or 'top' (most liked this week)<br>scope (string): 'all' (default), 'following' (people I follow), 'mine', or 'person' with the person prop<br>person (string): A @handle, when scope is 'person'<br>tag (string): Only posts with this #tag (an album, a topic)<br>mediaOnly (boolean): Only posts with photos or videos<br>composer (boolean): Show the box to post at the top, default true<br>placeholder (string): Words in the empty post box<br>empty (string): Words when there are no posts<br>columns (number): Grid columns, 2 to 5, default 3<br>pageSize (number): Posts per page, 5 to 50, default 20 | Ready |
feed.composer | Just the box to write a post in a feed, with photos and videos when the feed takes them. | feed* (string): A blueprint.feeds id<br>placeholder (string): Words in the empty post box | Ready |
feed.profile | A person's profile: photo, name, @handle, bio, link, follower counts, a follow button and their posts. | person (string): 'owner' (the space's owner, default), 'me' (whoever looks), or a @handle<br>feed (string): Which feed's posts to show: a feed id or '*' (default)<br>layout (string): 'grid' (default) or 'list'<br>posts (boolean): Show their posts under the profile, default true | Ready |
feed.people | A list of people with follow buttons: who to follow in this space, or someone's followers or following. | list (string): 'suggested' (default), 'followers' or 'following' (of the person looking)<br>title (string): Heading<br>limit (number): How many, default 10 | Ready |
feed.activity | The person's activity: likes, replies, mentions, reposts and new followers. | title (string): Heading | Ready |
feed.search | Search posts by words and #tags, with the week's trending tags. | feed (string): A feed id to search in, or '*' (default) for all<br>trending (boolean): Show trending tags, default true | Ready |
feed.saved | Posts the person saved for later. Private to them. | title (string): Heading | Ready |
feed.sources | For people who manage the space: the outside feeds (X, Bluesky, Mastodon, Instagram, Threads, YouTube, RSS) a feed pulls in, how the last pull went, and adding, pausing or removing them. | feed (string): A feed id, or '*' (default) for all | Ready |
reviews.summary | The rating at a glance: the average in big stars, how many reviews, a bar for each star (tap one to read those), the average of each aspect, and a Write a review button. Put it at the top of a services, product, place, game or profile page. | reviews* (string): A blueprint.reviews id (a review board)<br>subject (string): What the reviews are about: a subject id of the board, 'record:<id>' (a record of the board's subjectsFrom collection), '@handle' (a person), any short id (app:weather, deep-clean), 'main' for the board as a whole, or '' for every subject. Default '' when reading; writing then asks which one (or uses 'main' when the board has no list)<br>heading (string): Heading over it, e.g. 'What people say'<br>bars (boolean): Show the bar for each star. Default true<br>aspects (boolean): Show each aspect's average. Default true<br>write (string): Words on the write button. Default 'Write a review'; empty = no button<br>look (string): 'card' (default) or 'plain' | Ready |
reviews.list | Reviews with stars, words, photos, the verified mark, helpful votes, answers from the owner, report, and edit or delete your own. Chips to sort (most helpful, newest, highest, lowest) and filter (stars, with photos, verified). People who manage can hide, show and answer. Your own review shows first. | reviews* (string): A blueprint.reviews id (a review board)<br>subject (string): What the reviews are about: a subject id of the board, 'record:<id>' (a record of the board's subjectsFrom collection), '@handle' (a person), any short id (app:weather, deep-clean), 'main' for the board as a whole, or '' for every subject. Default '' when reading; writing then asks which one (or uses 'main' when the board has no list)<br>sort (string): 'helpful' (default), 'new', 'high' or 'low'<br>filters (boolean): Show the sort and filter chips. Default true<br>write (string): Words on a write button over the list. Default none<br>pageSize (number): Reviews per page, 3 to 50. Default 10<br>heading (string): Heading over the list<br>empty (string): Words when there are no reviews<br>look (string): 'cards' (default, each review on a card) or 'list' (rows with lines between)<br>subjects (boolean): Show what each review is about. Default true when subject is '*' | Ready |
reviews.stars | A small rating line: ★ 4.6 (128). Tap it to read and write reviews in a sheet. Put it under a heading, a product or a service, in a hero or on a profile. | reviews* (string): A blueprint.reviews id (a review board)<br>subject (string): What the reviews are about: a subject id of the board, 'record:<id>' (a record of the board's subjectsFrom collection), '@handle' (a person), any short id (app:weather, deep-clean), 'main' for the board as a whole, or '' for every subject. Default '' when reading; writing then asks which one (or uses 'main' when the board has no list)<br>count (boolean): Show how many reviews. Default true<br>size (number): Star size in points, 12 to 40. Default 16<br>empty (string): Words when there are no reviews yet. Default: hidden until the first one<br>open (boolean): Tap opens the reviews sheet. Default true | Ready |
reviews.write | A card that asks for a rating: a question and a row of stars to tap, which opens the full review (words, photos, aspects). Shows your own review once you wrote one, with Edit. | reviews* (string): A blueprint.reviews id (a review board)<br>subject (string): What the reviews are about: a subject id of the board, 'record:<id>' (a record of the board's subjectsFrom collection), '@handle' (a person), any short id (app:weather, deep-clean), 'main' for the board as a whole, or '' for every subject. Default '' when reading; writing then asks which one (or uses 'main' when the board has no list)<br>question (string): The question, e.g. 'How was your visit?'<br>note (string): A line under the question | Ready |
reviews.top | A ranked list of the board's subjects by rating: top rated services, best games, favourite places, most loved mini-apps. Each row shows stars and the count; tap one for its reviews. | reviews* (string): A blueprint.reviews id (a review board)<br>heading (string): Heading. Default 'Top rated'<br>limit (number): How many, 3 to 50. Default 10<br>min (number): Fewest reviews to be listed, 1 to 100. Default 1<br>sort (string): 'best' (highest average, default) or 'most' (most reviews) | Ready |
reviews.queue | For people who manage: reviews waiting for approval and reviews people reported, to approve, hide or keep. Shows nothing to anyone else. | reviews (string): A blueprint.reviews id, or '*' (default) for every board | Ready |
hero | The top of a page: a big round picture or emoji, a title, a line under it, and a row of buttons (its child blocks: button, call or tile). A profile header, a business card, a welcome. Holds children. | title (string): Big title. Empty uses the space's name<br>subtitle (string): A line or two under the title<br>image (string): https URL of a round picture (logo, face)<br>icon (string): An emoji or a letter shown when there's no picture<br>cover (string): Colour of the band behind it: a style colour role (accent, accent2, gold…) or a colour. 'none' for no band<br>align (string): 'center' (default) or 'left'<br>look (string): 'band' (default: a colour band and a round picture) or 'card' (the chat app's page header: a rounded logo, the space's name in small capitals over the title, a soft glow of the cover colour)<br>eyebrow (string): look 'card': the small line over the title. Empty uses the space's name | Ready |
tiles | A grid of app-style tiles (its children are tile blocks): a games hub, an apps page, quick actions, a link-in-bio. Big tiles show a note under the name. Holds children. | title (string): Section title over the grid<br>columns (number): Tiles per row on a phone, 2 to 5. Default 4 (2 for big tiles)<br>size (string): 'small' (icon and name, default) or 'large' (a card with a note)<br>tone (string): How the icons are painted: 'solid' (default), 'soft' (a light tint with the icon in colour, like the chat app's app grid) or 'glossy' (shiny, eye-catching)<br>frame (string): 'card' puts the grid on a card (the chat app's sections), 'none' (default) draws it on the page<br>heading (string): How the title looks: 'title' (default, big) or 'label' (small capitals over the card) | Ready |
tile | One tile in a tiles grid: an icon on a coloured square and a name. Opens a page, a conversation, a link or the AI. | label* (string): Name under the icon<br>icon (string): An icon name (game, trophy, chat, phone, calendar, coin…) or an emoji<br>href (string): '#page-id' opens a page, 'https://…' a website, 'chat:<conversation key>' a conversation (e.g. chat:support, chat:general), 'ai' the AI chat (people who manage), 'mailto:' or 'tel:' a mail or a phone call<br>tint (string): The square's colour: a style colour role or a colour. Default accent<br>note (string): A short line: under the name on large tiles, a small status line on small ones (12 players, Fridays 8 PM)<br>badge (string): A small label on the corner (New, 2). 'Live' shows a red LIVE pill | Ready |
links | A section of a service page or link list (its children are link blocks): services with prices, support links, partners, a menu, social links. People who manage the space edit it in place. Holds children. | title (string): Section title<br>note (string): A line under the title<br>layout (string): 'list' (default, rows on a card), 'cards' (big cards with a button), 'grid' (two across), 'icons' (the chat app's app grid: icons on one card, four across) or 'banners' (big pictures swiped sideways)<br>heading (string): How the title looks: 'title' (default, big) or 'label' (small capitals over the card, like the chat app)<br>tone (string): How the entries' icons are painted: 'solid' (default), 'soft' (a light tint with the icon in colour) or 'glossy' | Ready |
link | One entry in a links section: a service, a product, a support link, a social profile. | title* (string): Name<br>note (string): A short description<br>icon (string): An icon name or an emoji<br>image (string): https URL of a picture (cards, grid and banners show it)<br>tint (string): The icon's colour (and a banner's, without a picture): a style colour role or a colour. Default accent<br>href (string): '#page-id' opens a page, 'https://…' a website, 'chat:<conversation key>' a conversation (e.g. chat:support, chat:general), 'ai' the AI chat (people who manage), 'mailto:' or 'tel:' a mail or a phone call<br>price (string): Price as people should read it ($40, From $120, Free)<br>action (string): Button words (Book, Order, Open). Default: an arrow<br>tag (string): A small label (New, Popular, Team only) | Ready |
chats | The full-screen chat list of a messaging app: every direct chat, group, channel and case with the newest message, unread counts, pinned on top, search, filters and New chat. Put it alone on a page that is a tab. Its children are custom rows for pages when the app has no tab bar: a lobby.row with href '#games' draws the games row with poster art. Holds children. | title (string): Title, default 'Chats'<br>show (string[]): Kinds to list: direct, group, stream, case. Default all<br>empty (string): Words when there are no chats yet<br>search (string): 'header' (default: a search button in the bar opens a search line), 'field' (always shown) or 'off'<br>filters (boolean): Filter chips (All, Unread, Groups, Channels…), default true<br>compose (boolean): A New chat button in the bar, default true<br>rowsTop (string[]): Page ids (or 'ai' for the AI chat) shown as rows above the chats, like HQ in the chat app. Only when the app has no tab bar (dashboard.nav 'list')<br>rowsUnder (string[]): Page ids shown as rows under the first chat (services, apps, games…). Only when the app has no tab bar. Leave both out to list every page of the dashboard | Ready |
calls.recent | The call log of a phone app: recent calls in and out (missed in red), tap to call back. Its children are call blocks shown as the buttons on top (Call us, Video, New call); calling back goes through whichever of them can reach that person. Holds children. | title (string): Section title, default 'Recent'<br>empty (string): Words when there are no calls yet | Ready |
hq.overview | HQ: the space at a glance for people who manage it. Members, new members, active people, messages, page views and plays over the last days, each with the change from the days before. | days (number): How many days, 7 (default), 14 or 30<br>title (string): Heading, default 'Overview' | Ready |
hq.navigation | HQ: how people move around the app on a phone. Off (the chat app's way): the home is the chat list, and the other pages are rows in it. On: a bottom tab bar with the first five pages. Also orders the pages. Only people who manage the space see it. | title (string): Heading, default 'Navigation' | Ready |
hq.starters | HQ: the starter templates (Business, Personal…) with a button to switch the space to one. Switching adds the missing kits, puts the template's pages in place and sets the tabs and look, as one version that can be undone. Only people who manage the space see it. | title (string): Heading, default 'Starters' | Ready |
switcher | A segmented control that shows one of its child blocks at a time: For you / Following over two timelines, Posts / Photos on a profile, Activity / Saved, Menu / Reviews. Each child is one segment, named by labels in the same order. Only the open one is drawn. With one child left it shows that child without the control. Holds children. | labels (string[]): The segments' names, one per child in order. A missing one uses the child's title prop, else 'Part 2'<br>look (string): 'segments' (default, a rounded segmented control), 'tabs' (words with an underline, like a profile) or 'pills' (separate rounded chips)<br>start (number): Which segment is open first, counting from 0. Default 0 | Ready |
poster | One bright game card: art on a gradient, the name in big letters, a badge, a corner chip and a line under the name. Tap opens a sheet with how to play and a big Play button (the game opens full screen), or goes to href. Put posters in posters, showcase or lobby.row. | label* (string): The name on the card<br>game (string): A blueprint.games id: Play starts or joins it, and the card shows how many are playing<br>href (string): Instead of a game: where the card goes ('#page-id', https link, chat:<key>, ai)<br>line (string): A short line under the name (Rounds ~20 s, Teams of 2+, New this week)<br>about (string): One or two sentences on the sheet. Default: the game's about<br>art (string): The picture: an art name (trophy, board, survey, mask, sketch, bubble, dice, wheel, bingo, cards, bomb, gift, detective, number, poll, buzzer, crown, mic, tv, rocket), an emoji, or an https picture. Default: art that fits the game<br>palette (string): The colours: sunset, ocean, grape, lagoon, ember, lime, candy, night, gold, mint, berry, sky. Default: one picked for the game<br>colors (string[]): Your own 2 or 3 colours instead of a palette: colours (#ff6b4a) or style colour roles (accent, gold)<br>badge (string): A small label top-left: HOT, NEW, LIVE (pulses) or any short word. A game being played shows LIVE by itself<br>corner (string): A chip top-right: the hook (x2 points, 2-20 players, 500 coins)<br>steps (string[]): How to play, up to 3 short steps, on the sheet. Default: from the game's rounds<br>tip (string): One useful tip on the sheet and the intro<br>opens (string): 'sheet' (default: details first), or 'play' (straight into the game) | Ready |
posters | A grid of poster cards, the main shelf of a games page, with a switch for small, medium or large cards. Cards pop in one after another. Holds children. | title (string): Section title<br>note (string): A line under the title<br>size (string): 'small' (3 across), 'medium' (2 across, default) or 'large' (1 across, wide)<br>sizes (boolean): Show the size switch (default true) | Ready |
showcase | A featured carousel of poster cards as big wide cards with a PLAY button. Swipes, and moves on by itself every few seconds. Holds children. | title (string): Section title (default none)<br>every (number): Seconds before it moves on by itself, 0 to stay still. Default 5 | Ready |
game.live | Games people have started and others can still join, with how many are in and a Join button. Hidden when nothing is on. | title (string): Section title, default 'Live now'<br>games (string[]): Only these blueprint.games ids. Default: every game on the page's posters, or all games | Ready |
game.winners | The latest winners scrolling by on their own: who won which game, their points, when. | title (string): Section title, default 'Big wins'<br>games (string[]): Only these blueprint.games ids. Default all<br>max (number): How many winners, 3 to 30. Default 12 | Ready |
game.record | Each person's own record per game: games played, games won and best score. Everyone sees only their own. | title (string): Section title, default 'Your record'<br>games (string[]): Only these blueprint.games ids. Default all | Ready |
lobby.header | The top of a games page: a logo square, the page's big name, a line under it, and the person's coins (Ledger) counting up. | title (string): Big name, when it differs from the page title (the page title already shows above). Default none<br>tagline (string): A line under the name<br>image (string): https URL of a square logo<br>icon (string): An art name, icon name or emoji in the logo square when there's no image. Default sparkle<br>palette (string): Colours of the logo square (a palette name). Default the accent<br>unit (string): A ledger unit id to show the person's balance; 'none' to hide. Default the space's first unit | Ready |
lobby.row | A row for a chat list or a menu that opens a games page: a 2×2 mosaic of the page's poster art, the name, the games' names and a count. Put it at the top of a chat list page. | title* (string): Name on the row (e.g. 'Game night')<br>href* (string): '#page-id' of the games page<br>line (string): Line under the name. Default the posters' names<br>count (boolean): Show the number of games (default true) | Ready |
game.frame | A game in its own full play screen: a branded intro, a header with the round and timer, a progress bar, your results as chips, the game in the middle and one big button. Posters open this by themselves; put it on a page to give one game its own page. | game* (string): A blueprint.games id<br>label (string): Name shown. Default the game's name<br>line (string): Line under the name on the intro<br>art (string): The picture: an art name (trophy, board, survey, mask, sketch, bubble, dice, wheel, bingo, cards, bomb, gift, detective, number, poll, buzzer, crown, mic, tv, rocket), an emoji, or an https picture. Default: art that fits the game<br>palette (string): The colours: sunset, ocean, grape, lagoon, ember, lime, candy, night, gold, mint, berry, sky. Default: one picked for the game<br>colors (string[]): Your own 2 or 3 colours instead of a palette: colours (#ff6b4a) or style colour roles (accent, gold)<br>tip (string): One tip on the intro<br>intro (boolean): Play the short branded intro (default true) | Ready |
records.composer | A writing card: a question, a quick row of the chip field's options (tap a mood) and a big button that opens a full-screen writing sheet for a new record (title, body, chip, day, tags). A journal's 'How was today?', a gratitude log, a quick note, a workout log. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>icons (string[]): An emoji or icon name for each option of the chip field, in order (😄 🙂 😐 😔)<br>tones (string[]): A colour for each option of the chip field, in order: style colour roles (tint1, success…) or colours. Default tint1, tint2…<br>write (string): Words on the button that opens the writing sheet, e.g. 'Write'. Empty = no button<br>placeholder (string): Grey words in the empty body, e.g. 'Dear diary…'<br>fields (string[]): Fields the writing sheet asks for, in order. Default all<br>defaults (string): JSON object of values set on every new record<br>saved (string): Words shown after saving, e.g. 'Saved. {streak} days in a row!' ({streak} is the current streak)<br>question (string): The card's question, e.g. 'How was today?'<br>note (string): A line under the question<br>quick (boolean): Show the chip field's options to tap on the card. Default true | Ready |
records.timeline | A collection's records as a timeline like a diary: grouped under day or month headers, each with its date, title, a few lines, chip and tags. Search box, tap to read in full, edit, delete or share, and a Write button. Journals, notes, logs, changelogs, a reading list. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>icons (string[]): An emoji or icon name for each option of the chip field, in order (😄 🙂 😐 😔)<br>tones (string[]): A colour for each option of the chip field, in order: style colour roles (tint1, success…) or colours. Default tint1, tint2…<br>write (string): Words on the button that opens the writing sheet, e.g. 'Write'. Empty = no button<br>placeholder (string): Grey words in the empty body, e.g. 'Dear diary…'<br>fields (string[]): Fields the writing sheet asks for, in order. Default all<br>defaults (string): JSON object of values set on every new record<br>saved (string): Words shown after saving, e.g. 'Saved. {streak} days in a row!' ({streak} is the current streak)<br>group (string): 'month' (default) or 'day' headers<br>search (boolean): Show a search box. Default true<br>lines (number): Lines of body shown per record, 0 to 8. Default 3<br>limit (number): How many to show before 'Show more', 5 to 100. Default 30<br>empty (string): Words when there are no records yet<br>heading (string): Heading over the timeline | Ready |
records.calendar | A month calendar of a collection: each day with records is filled with the colour of its chip (a mood calendar, a habit tracker, a booking or workout calendar). Swipe or tap the arrows for other months; tap a day to see and edit its records, or write one for that day. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>icons (string[]): An emoji or icon name for each option of the chip field, in order (😄 🙂 😐 😔)<br>tones (string[]): A colour for each option of the chip field, in order: style colour roles (tint1, success…) or colours. Default tint1, tint2…<br>write (string): Words on the button that opens the writing sheet, e.g. 'Write'. Empty = no button<br>placeholder (string): Grey words in the empty body, e.g. 'Dear diary…'<br>fields (string[]): Fields the writing sheet asks for, in order. Default all<br>defaults (string): JSON object of values set on every new record<br>saved (string): Words shown after saving, e.g. 'Saved. {streak} days in a row!' ({streak} is the current streak)<br>heading (string): Heading over the calendar<br>week (string): First day of the week: 'mon' (default) or 'sun'<br>empty (string): Words under a day with no records | Ready |
records.streak | Days in a row with at least one record, with a flame, the longest streak, how many in total and this week as dots. Brings people back every day: journals, habits, workouts, practice, reading. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>label (string): What a day counts as, e.g. 'days of writing'. Default 'days in a row'<br>icon (string): Emoji or icon name, default 🔥<br>goal (number): A goal in days (7, 30, 100…): shows a progress bar towards it<br>nudge (string): Words shown while today is still empty, e.g. 'Write today to keep it going'<br>done (string): Words shown once today has a record | Ready |
records.memories | 'On this day': records from a week, a month, six months and every year ago today, as cards to open. Hidden when there are none (or shows empty). Journals, photo diaries, logs. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>icons (string[]): An emoji or icon name for each option of the chip field, in order (😄 🙂 😐 😔)<br>tones (string[]): A colour for each option of the chip field, in order: style colour roles (tint1, success…) or colours. Default tint1, tint2…<br>heading (string): Heading, default 'On this day'<br>empty (string): Words when there's nothing from before. Unset = the block hides itself | Ready |
records.prompt | A daily writing prompt on a card: the same question all day, a new one tomorrow, a button for another one, and Write, which opens the writing sheet with the prompt saved on the record. Journals, reflection, team check-ins, kids' diaries. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>write (string): Words on the button that opens the writing sheet, e.g. 'Write'. Empty = no button<br>placeholder (string): Grey words in the empty body, e.g. 'Dear diary…'<br>fields (string[]): Fields the writing sheet asks for, in order. Default all<br>defaults (string): JSON object of values set on every new record<br>saved (string): Words shown after saving, e.g. 'Saved. {streak} days in a row!' ({streak} is the current streak)<br>prompts (string[]): The prompts to rotate through. Default a set of everyday journal prompts<br>label (string): Small heading over the prompt, default 'Today's prompt'<br>shuffle (string): Words on the 'another one' button. Empty = no button | Ready |
records.stats | Insights about a collection over the last days: how many records, words written, best streak, and a bar for each option of the chip field (how your moods add up). Journals, habits, feedback, support tickets. | collection* (string): A blueprint.collections id<br>title (string): Field id drawn as the title (a text field). Default: a field called title. 'none' for no title<br>body (string): Field id drawn as the body (a longtext field). Default: the first longtext<br>chip (string): Field id drawn as a coloured chip (a choice field: mood, status, rating). Default: the first choice. 'none' for no chip<br>date (string): Field id of the record's day (a date field). Default: the first date field, else the day it was written<br>tags (string): Field id of #tags (a text field). Default: a field called tags. #tags written in the body count too<br>field (string): A text field that holds the prompt a record was written from (records.prompt fills it; others show it when there's no title)<br>icons (string[]): An emoji or icon name for each option of the chip field, in order (😄 🙂 😐 😔)<br>tones (string[]): A colour for each option of the chip field, in order: style colour roles (tint1, success…) or colours. Default tint1, tint2…<br>days (number): How many days back, 7 to 365. Default 30<br>heading (string): Heading, default 'Insights' | Ready |
photobook.book | A photo book from blueprint.books: its cover, then pages people flip through sideways (or scroll), each laying out photos from the book's feed. People who manage the space can arrange pages, change layouts, swap photos and write on pages right there; saving is one version. | book* (string): A blueprint.books id<br>view (string): 'flip' (default: one page at a time, swipe sideways like a real book) or 'scroll' (pages one under another)<br>start (string): 'cover' (default) or 'first' (open on the first page)<br>thumbs (boolean): Show a strip of small pages to jump around, default true<br>edit (boolean): Show the Edit book button to people who manage the space, default true | Ready |
photobook.shelf | A shelf of photo book covers that open full screen: the space's books, and (albums) one book for every #tag in a feed, so each Gallery album is a book by itself. | title (string): Heading<br>books (string[]): blueprint.books ids to show, in order; default all of them<br>albums (boolean): Also show a book for each #tag of the feed, default true<br>feed (string): The feed albums come from, default 'gallery'<br>columns (number): Covers per row, 2 to 4, default 2<br>empty (string): Words when there are no books or albums | Ready |
search | A search box with results as you type, grouped by what they are, each one opening where it lives. Looks across the space (pages, records, messages, feed posts, people, files) or only some of it: one collection makes a record finder, one stream a chat search, sources ['people'] a people finder. Only shows what the viewer may see. | sources (string[]): What to look in, some of pages, records, messages, posts, people, files; default all<br>collection (string): Only records of this collection (a /collections id)<br>stream (string): Only messages in this conversation (a /streams id)<br>feed (string): Only posts in this feed (a /feeds id)<br>limit (number): Results per kind, 1 to 25, default 5<br>title (string): Heading above the box<br>placeholder (string): Words in the empty box, default 'Search'<br>empty (string): Words when nothing is found<br>groups (boolean): Show a small heading for each kind of result, default true | Ready |
miniapps.library | The public mini-app library: browse and search mini-apps people published, try one, add it to this space or make your own copy (remix). | category (string): Start on one category: games, tools, party, kids, learning, business, health, social, creative, info<br>title (string): Heading words | Ready |
miniapps.mine | For people who manage the space: this space's mini-apps, with publish to the library, updates from the library, and stats. | title (string): Heading words | Ready |
miniapps.review | For Zvessa admins only: published mini-apps waiting for review, and reports. Shows nothing to anyone else. | none | Ready |
safety.report | A Report button for one thing: the space itself (default), a person, a post or a record. People pick a reason and it goes to the space's moderators (and to Zvessa's team for serious reasons). Posts and people already have Report in their menus; use this for a 'Report this space' link in a footer, a help page or a profile. | target (string): What it reports: post, feedPost, record, person, space (default space)<br>id (string): The id of the post, record or person; leave out for this space<br>label (string): Button words, default 'Report this space' | Ready |
safety.block | A Block / Unblock button for one person (by user id). Blocking works everywhere: neither sees the other's posts, and neither can message, call, friend or group the other. | person* (string): The person's user id<br>label (string): Button words, default 'Block {name}' | Ready |
safety.queue | The review queue for the space's moderators: reported posts, records and people, and posts the word filter held, grouped by what they're about, with Dismiss, Hide, Let through, Warn, Mute, Ban and Send to zvessa. Shows nothing to people who don't moderate. quiet hides it entirely while nothing waits (for HQ). | title (string): Heading, default 'Reports'<br>quiet (boolean): Show nothing while the queue is empty<br>log (boolean): Also list what moderators did lately (default true) | Ready |
safety.filters | The space's safety settings for people who manage it: filter words, ready word lists, catching links and contact details, what happens to caught words (mask, hold, refuse), report reasons, who moderates, auto-hide, with a box to try a sentence. Saves blueprint.safety as a version (undo from History). | title (string): Heading, default 'Word filter' | Ready |
safety.blocked | The person's own blocked people, with Unblock. Works in any space (blocks follow the person). | title (string): Heading, default 'Blocked people' | Ready |
safety.admin | Zvessa's admins only: reports that reached Zvessa from every space, the spaces with the most open reports, suspended accounts and locked spaces, with Suspend, Lock and their undo. Shows nothing to anyone else. Pair it with miniapps.review for the mini-app library. | title (string): Heading, default 'Safety across Zvessa' | Ready |
account.email | The viewer's email, and a form to change it: their password, the new email, then a code sent to the new email. | title (string): Heading, e.g. 'Email'<br>change (string): Button words to start, e.g. 'Change email'<br>sent (string): Words after the code was sent, e.g. 'We sent a code to your new email.'<br>done (string): Words after the change, e.g. 'Your email is changed.' | Ready |
account.password | A form to change the viewer's password (current one, then the new one). Signs them out on their other devices. | title (string): Heading, e.g. 'Password'<br>button (string): Button words, e.g. 'Change password'<br>done (string): Words after the change | Ready |
account.sessions | Sign out here, or sign out on every other device. | signOut (string): Button words, e.g. 'Sign out'<br>others (string): Button words, e.g. 'Sign out on other devices'<br>done (string): Words after signing out the other devices | Ready |
account.delete | Delete the viewer's account and everything that belongs to it: their own spaces (named, with how many people are in each) and what they posted or uploaded in other spaces. Asks for their password, or a code sent to their email. Can't be undone. | title (string): Heading, e.g. 'Delete my account'<br>about (string): What it does, in the space's words<br>button (string): Button words, e.g. 'Delete my account'<br>confirm (string): Final button words, e.g. 'Delete forever' | Ready |
notify.settings | The viewer's own notification controls: pause, quiet hours, daily digest time, and on / digest / off for each kind of notification (per kit and topic) here or in every space, and per space. Each person sees and changes only their own. | title (string): A heading above it<br>sections (string[]): Which parts show, in order: pause, quiet, digest, topics, spaces. Default all<br>topics (string[]): Only these topics or groups ("talk", "social.like"); default every topic the space uses | Ready |
notify.inbox | The viewer's notifications, newest first; tapping one opens the exact page it's about (switching space if needed). Shows what quiet hours or the digest are holding. | title (string): A heading above it<br>scope (string): 'all' (every space, default) or 'space' (only this space)<br>limit (number): How many, default 30, up to 100<br>topics (string[]): Only these topics or groups | Ready |
notify.bell | A small button with the viewer's unread count that opens their notifications. | label (string): Words next to the bell; default none<br>page (string): A page to open (one with a notify.inbox block); default the built-in notifications screen<br>scope (string): Count 'all' spaces (default) or this 'space' | Ready |
notify.send | A form for the space's managers to send a notification to members (everyone, some roles); shows only to people who can manage. Ten an hour per space. | title (string): A heading above it<br>topic (string): space.announce (default) or one of notifications.topics, so people can choose to get it<br>to (string[]): Role ids it goes to; default every member<br>link (string): Where a tap goes: page:<pageId> or an app path; default none | Ready |
share.save | For people who manage the space: save the whole space as a template, or pages they pick as a kit. Shows what's inside and every private thing taken out (keys, emails, phone numbers, signed links, uploaded photos, outside accounts) before saving. Saved ones are private until the person publishes them. | title (string): Heading words<br>kind (string): 'template' or 'kit' to offer only one; default both | Ready |
share.library | Browse templates and kits people published (each accepted by a Zvessa admin), see what's inside, add one to the space or switch to a template, rate and report. | title (string): Heading words<br>kind (string): 'template' or 'kit' to show only one; default both<br>category (string): Start on one category: business, personal, community, creator, games, party, kids, learning, work, health, tools, other | Ready |
share.mine | For people who manage the space: their own templates and kits (publish, new versions, unpublish, delete) and the ones this space added (newer versions, take out). | title (string): Heading words | Ready |
share.review | For Zvessa's admins only (shows nothing to anyone else): published templates and kits waiting for review, with what's inside and what was taken out, and reported ones. | none | Ready |
web.share | This space's web address (or one page's), with Copy and Share. Hides itself while the space isn't on the web. | page (string): A page id; default the address itself (the web home page)<br>label (string): Words before the address, e.g. 'Find me at' | Ready |
hq.web | HQ: the space's web address, handle, own domains with their DNS steps and status, which pages are on the web, share card and embed code. | none | Ready |