host.json
host.json, at the top of the folder you publish. A field Tinylib doesn't
know, a value of the wrong type, or a value over its limit is an error, and
npx tinylib-sdk check tells you which.
Example
{
"slug": "block-game",
"name": "Block Game",
"tagline": "Fit three pieces at a time into a 9×9 grid.",
"category": "games",
"tags": ["puzzle", "offline"],
"icon": "icon.svg"
}
Properties
| Property | Type | Description |
|---|---|---|
slug | string | The app's address, as in /app/trip-log: lowercase letters, numbers and single hyphens. Once you've published under it, it's yours. |
name | string | - |
tagline? | string | One line, shown under the name. |
description? | string | Shown on the app's page. Blank lines separate paragraphs. |
category? | | "developer" | "productivity" | "utilities" | "reference" | "health" | "finance" | "games" | "creative" | "other" | Defaults to other. |
tags? | string[] | Lowercased, and searchable. |
entry? | string | The HTML file the build starts from. Defaults to index.html. |
icon? | string | A square image in the folder. SVG works best. Without one, the app is shown as the first letter of its name. |
private? | boolean | true encrypts everything the app stores, in the browser, and asks for a passkey before the app opens. See Store. The first publish decides this, and a later publish that changes it is refused. A private app needs a signed-in user, and can't use host.friends, host.public or a server.js. |
shows? | object | A sentence for each audience the app writes to, shown as written under the title of Tinylib's sharing sheet and under the audience's switch on the app's page. Without one, the sheet shows its title alone. Changing a sentence asks nobody again. A private app can't give shows a sentence. Example { "shows": { "friends": "Friends can see your best and daily scores." } } |
shows.friends? | string | - |
shows.public? | string | - |