publish an app.
two ways to ship something here. pick the one that matches how deep you want to integrate.
1. external app (any URL)
your app lives at its own URL. listing it here means it appears under the ▦ filter in the new-tab picker — users click, it opens in a tab. closest thing to chrome's web-store except scoped to workspaces.
today: PR a row into src/lib/apps.ts. v0.2: form on this page + supabase write + automated review.
2. deeply-integrated app (in our ecosystem)
for apps that need workspace data, AI tool-use, or to embed inside surfaces (newtab widgets, mobile tabs). these get a real repo in the whitelabel-dev org + a slot in the ecosystem manifest. talk to garrett.
listing schema
{
slug: string // url-safe, unique
name: string // display
description: string // 1–2 sentence pitch
url: string // where install/open opens
publisher: string // org or person
kind: 'first-party' | 'third-party'
glyph: string // 1-char unicode badge
installable: boolean // true if /api/install lands today
}