# Visibility, explained

Every Homespun app has one of three visibility settings, chosen by whoever deployed it. This page describes exactly what each one means today, not what it might mean later.

## Private

[Section titled “Private”](#private)

Only the app’s owner, plus anyone the owner has specifically invited as a member, can open it at all. If you’re not on that list, you’ll see a plain “you’re not a member of this app” message instead of the app itself.

## Link

[Section titled “Link”](#link)

Anyone who has the URL can open the app. There’s no invite list to be gated by; the address itself is the access control. Link addresses are always generated by Homespun (an unguessable word combination plus a short suffix), never chosen by the owner, specifically so they aren’t guessable.

## Public

[Section titled “Public”](#public)

The owner can pick the web address themselves instead of getting a generated one. As of today, opening a public app works the same as opening a link app: anyone with the address can open it, there just isn’t a searchable directory of public apps yet that would help a stranger find one without already having the address. Treat “public” today as “link, but with a memorable address I chose,” not as “listed somewhere for anyone to browse.”

## What visibility doesn’t control

[Section titled “What visibility doesn’t control”](#what-visibility-doesnt-control)

Visibility is only about who can open the app’s page at all. It’s separate from what someone can do once they’re in: whether they can add, edit, or delete specific data is controlled by the app’s manifest, not by visibility. See [Manifest reference](/agents/manifest-reference/) if you’re curious how that’s declared.

## Today’s default

[Section titled “Today’s default”](#todays-default)

If whoever deployed an app didn’t choose a visibility setting, it defaults to **private** visibility. This default has changed before and may change again; this page is the one place that states the current value, so check back here rather than assuming.
