Skip to content

Top-level fields

These keys live at the root of links.json, alongside categories or links.

FieldTypeNotes
$schemastringOptional. URL of the JSON Schema for editor autocomplete. See JSON Schema.
brandstringOrganization name. Shown in the top bar, used as the browser tab title. Editable from /admin.
titlestringCollection title shown as a sub-label next to the brand. Editable from /admin.
descriptionstringPage description / meta.
faviconstringURL or /api/icons/... path for the favicon. Set via the Branding panel in /admin.
imagestringOG image used when the page is shared on social platforms. Absolute URL or /api/icons/... path; recommended 1200×630.
themestringFirst-time-visitor theme: light / dark / mocha / latte (Catppuccin variants).
groupByTagbooleanFlat shape only. If true, links bucket into synthetic categories by their first tag.

brand vs title

brand is your wordmark (the thing on the left of the top bar — “Acme Co”). title is the sub-label (the collection name — “Internal links”). They render together as Acme Co / Internal links. Either is optional; both are editable from the admin Branding panel.

favicon

Accepts either an absolute URL or a /api/icons/<hash>... path. The admin panel lets you upload a file (cached locally) or paste an external URL (which jabol downloads and caches). Both produce the same /api/icons/... form in the persisted JSON.

image

Used at the head-tag layer only — jabol emits it as og:image and twitter:image so social platforms can render a large card when someone shares your URL. Kept separate from favicon because favicons are small icons (16–32px) and OG cards are large banners (1200×630 is the recommended size); reusing one for the other looks bad in previews.

If image is unset, jabol simply omits the og:image / twitter:image tags rather than falling back to the favicon — Slack/Twitter/Discord will render a plain text card instead of a broken icon-as-banner.

theme

Picks the default colour scheme for new visitors. Once a visitor has loaded the site once, their preference is stored in localStorage and overrides the file-level setting. The four themes are light, dark, mocha (Catppuccin Mocha), and latte (Catppuccin Latte).