Publish your app
Publishing turns something you've deployed into an app: a public page on koo.io that anyone can visit. This page covers what a listing is, how to publish a service, how to author the page, and what to do when a listing degrades.
A listing that points at a service
An app page is a listing that points at exactly one exposed web service. The page lives at koo.io/@handle/app-slug — the handle belongs to the account that owns the service (see Your public profile), and you choose the slug when you publish.
The page shows a Visit link to the URL you chose, the listing content you author, and community activity — votes and comments, covered in Discovery & community.
Publishing shares only the service's public URL and the listing content. It doesn't change the service itself, and visitors never see your logs, variables, deployments, or anything else inside the console.
Publish a service
- Publish from the board, or from Apps:
- From the board — press Publish app, or open a service node's menu and choose Publish app… to start with that service selected. Either way a dialog opens over the canvas: you fill it in and publish without leaving the board, and a link to the new page appears in the confirmation.
- From Apps — open Apps in your account and click New app, which walks the same steps on its own page and can reach services in any project. New app is available once you have an exposed web service to point at; until then it explains that an app points at an exposed web service.
- Under Target service, pick the service. Only exposed web services can be published; anything else is listed with the reason it can't be picked. (From Apps you pick the project and environment too.)
- Under Public URL, choose what the page links to: the Koo-generated URL, or one of the service's active custom domains.
- In Listing, set the display name and the Handle — the
app-slugpart of the page URL. Use 3–16 characters: lowercase letters, numbers, and dashes, starting with a letter and ending with a letter or number. The slug is fixed after publishing. - Fill in the rest of the listing. A tagline and a category are required to publish; the button stays disabled without them.
- Click Publish app.
The page is live right away at koo.io/@handle/app-slug. On the board, the service's node picks up a Published badge, so you can see at a glance which services have a public page.
Publishing, unpublishing, and re-pointing a listing require the admin role or higher. Editing a published listing's content requires editor or higher — see Teams and roles.
Author the listing
The listing carries everything the public page shows. You fill it in when you publish, and edit it any time after by opening the app from Apps:
- Display name — the public name; the page falls back to the slug when it's unset.
- Tagline and description — the one-liner shown on cards, and the long-form story on the page.
- Images — an ordered gallery; the first image is the cover used on the apps feed. Images are added after publishing, on the app's edit page.
- YouTube video — an optional demo or trailer, pasted as a link or a video id. When there's a video, its thumbnail can front the page as the cover — pick Video thumbnail or First image under Cover.
- Category — one of a fixed list, used for filtering on the apps feed.
- Tags — free-form, used for search.
- Links — website, repository, App Store, Google Play, and Steam.
Change where the page points
The listing tracks its service by name, not by a hidden id. Deleting a service and recreating it under the same name — or promoting into that environment — keeps the page bound to whatever holds the name.
To point the page somewhere else, open the app from Apps, change the environment, service, or public URL under Target service, and click Save changes.
When the page looks broken
The pointer is re-checked every time the page is read — nothing stale is stored. When it no longer resolves, the public page hides its Visit link, and your own view of the app tells you exactly why:
- Service deleted — the service behind the listing is gone, or is no longer a web service. Re-point the listing at another service, or unpublish it.
- Not exposed — the service no longer has a public URL. Re-expose it, or re-point the listing.
- Domain removed — the custom domain you chose is no longer active on the service. The page falls back to the Koo-generated URL when there is one; re-point the listing at an active domain, or keep the generated URL.
Fixing the service or re-pointing the listing clears the state on the next read — there is nothing extra to save.
The console won't let you break a listing silently: staging a change that un-exposes or deletes a service behind a live app asks for explicit confirmation before the change goes on the changes bar.
Unpublish
To take the page down, open the app from Apps and click Remove app in the Danger zone, then confirm.
- The public page and its URL stop working right away.
- The service keeps running — only the listing is removed.
Removing an app can't be undone. Publishing the same service again creates a fresh listing — the old page's votes and comments don't carry over.
Everything on this page is also available programmatically — see the Published apps API and the Published app object.