# Apps and app cards Use a small app on a card, or a full-page app with a board of its own. Canonical: https://help.lair.so/guides/html-tools ## Add an app There are two sizes. An **app card** sits on a board with your other cards: choose **Add card → Your own app card**. A **full-page app** fills a board of its own, with its own tab: pick one in **Library → Apps** (focus timer, habit tracker, journal, project planner, shopping list and more), or paste your own there or from **New board → Make a full-page app instead**. Paste self-contained HTML, give it a title and save. You can also ask an agent to build one. A full-page app’s **⋯** menu lets you rename it, edit its HTML or delete it. Full-page apps count as boards. ## Choose internet access Full-page apps made by agents and the Library’s apps start without internet access. In the app’s options, choose **Allow the internet** only if it needs it and you trust it. Choose **Take it offline** to turn access off again. An agent changing an app’s HTML removes that permission. App cards can load public HTTPS resources. Both run in a sandbox; they cannot read your owner session, integration keys or another card’s saved state. An app with internet access can send what you type into it to outside services, so review its code and purpose. ## Keep an app’s progress Apps can use the built-in `window.lair` bridge to load and save their own JSON state. Use `await lair.load()` and `await lair.save(value)` rather than cookies or local storage. The state follows your Lair across devices and is capped at 64 KB. Do not put passwords or API keys in HTML, props or saved state. Agents can read app-card state through their board tools. For a blank embed, try opening the source site directly; some sites block embedding.