> Documentation index: https://docs.kiste.run/llms.txt, a list of every page in this documentation.

# Isolation and cookies

> Why a published app can't read anything of kiste.run, and how apps on kiste.stream are kept apart from each other.

## Apart from kiste.run

Published apps live on **kiste.stream**, a domain separate from kiste.run.
Browsers keep the two apart completely: an app on kiste.stream can't read your
kiste.run session, cookies or storage, can't call the Kiste API as you, and
can't read anything of the console or the desktop viewer. That is why apps run
there without a sandbox and can use cookies, storage and service workers like
any site.

`https://kiste.stream` itself serves nothing; it only redirects to kiste.run.

## Apart from each other

Every published port has its own host name, so browsers give each app its own
origin: its own local storage, IndexedDB and service workers, and no access to
another app's pages.

Cookies are subtler: browsers let a site set a cookie for its parent domain,
which would be shared by every app under kiste.stream. Kiste closes that gap at
the edge:

- A cookie an app sets for all of `kiste.stream` is never delivered to another
  app: requests from one app to another arrive without cookies, and such shared
  cookies are expired on the next page load.
- Each app keeps the cookies it sets for its own host as usual.

kiste.stream is being added to the [Public Suffix
List](https://publicsuffix.org/), the list browsers use to decide where one site
ends. Once it is there, browsers will treat every app as a separate site on
their own as well.

## What this means for your app

- Set cookies without a `Domain` attribute (the default): they belong to your
  app's host.
- Don't rely on sharing cookies between two published ports; publish one port
  that serves both parts instead.
- An app you publish is public; see [Kiste Stream](https://docs.kiste.run/stream.md#how-the-address-works).

## Related topics

- [Overview](https://docs.kiste.run/stream.md)
- [Limits](https://docs.kiste.run/stream/limits.md)
- Previous: [Overview](https://docs.kiste.run/stream.md)
- Next: [Limits](https://docs.kiste.run/stream/limits.md)
