> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vybe.build/llms.txt
> Use this file to discover all available pages before exploring further.

# App limitations

> What Vybe apps can't do, and the workarounds that usually get you there

Vybe apps are internal tools for your organization. That focus rules out a few things, and some others need a different approach. Check this page before you plan an app around one of them. For most of them, the AI tells you when a request runs into a limitation and suggests an alternative.

## Who can open apps

| Limitation | What to do instead |
| - | - |
| **No public apps.** Everyone who opens an app must be signed in to Vybe as a member of your organization. | Share with people outside your organization by adding them as Guests. Sharing a single page by email (**Share externally**) is also available: contact support to enable it. See [Access and sharing](https://docs.vybe.build/apps/access-and-sharing.md). |
| **No public sign-up or separate app accounts.** Apps have no login page, registration or per-app passwords. Vybe handles sign-in. | Use the signed-in person's email to tailor the app to them. |
| **No built-in user management.** The app has no list of its users with roles or profiles. | Ask the AI to keep a table of people, keyed by email, with whatever fields you need, such as a role or team. |
| **No custom domains.** Every app lives at `https://<app-slug>-<org-slug>.vybe.build`, and the app URL can't be changed after creation. | Pick the app URL carefully when you create the app. See [Creating apps](https://docs.vybe.build/apps/creating-apps.md). |

## Code and packages

| Limitation | What to do instead |
| - | - |
| **No arbitrary npm packages.** Only packages on Vybe's approved list can be installed. | Most needs are already covered. See [Tech stack](https://docs.vybe.build/apps/tech-stack.md) for what's included and what the AI can install. |
| **No terminal.** Neither you nor the AI can run commands in the sandbox. | Ask the AI for the outcome you want. It has its own tools for installing packages, running tests and restarting the preview. |
| **Locked configuration files.** Files like `package.json`, `next.config.js` and `.env` can't be edited. | See [Locked files](https://docs.vybe.build/apps/working-with-code.md#locked-files). |
| **No environment variables or secrets in code.** | Store credentials in a [Custom API](https://docs.vybe.build/connections/custom-apis.md) or an [integration](https://docs.vybe.build/connections/integrations.md). Vybe adds them to each request, so the key never appears in the app's code. |

## Running work

| Limitation | What to do instead |
| - | - |
| **No long-running server connections.** The app's server can't hold WebSocket or server-sent event connections open. | For real-time collaboration (live cursors, who's online, shared state, collaborative editing), use the built-in Liveblocks support. See [Building UIs](https://docs.vybe.build/apps/building-uis.md#collaborative-editing-and-rich-text). For data that changes now and then, refresh it periodically. |
| **No background processes outside background jobs.** | Use [background jobs](https://docs.vybe.build/apps/background-jobs.md) for scheduled and long-running work. |
| **No built-in webhook receiver.** Apps can't subscribe to events from other services. | Outside systems can call your app's API routes with an app API token sent in a request header. See [Analytics and APIs](https://docs.vybe.build/apps/analytics-and-apis.md). For a service that can't send that header, check it on a schedule with a background job. |

## Files and data

| Limitation | What to do instead |
| - | - |
| **No file storage.** Apps have no place to keep uploaded files. | Process uploads in memory, for example to read a CSV and save its rows to the database. Store links to files hosted elsewhere, or send files to a storage service through an integration or Custom API. |
| **Integrations come from Vybe's catalog.** | For any other service with an API, add a [Custom API](https://docs.vybe.build/connections/custom-apis.md). |
| **One database for preview and live app.** There's no separate test database. | Test with clearly labelled records and clean them up, or ask the AI to add a way to filter them out. See [App data](https://docs.vybe.build/apps/data.md). |

## Changes and versions

| Limitation | What to do instead |
| - | - |
| **No one-click rollback of a published app.** | Restore an earlier checkpoint, then publish again. See [Version history](https://docs.vybe.build/apps/version-history.md). |
| **Restoring a checkpoint doesn't restore the database.** | Ask the AI to adjust the database after a restore. |

## What apps are good for

Apps work best as tools your team uses every day:

* **Dashboards**: KPIs, pipelines, monitoring.
* **Record management**: customers, inventory, orders, vendors.
* **Admin and review tools**: approvals, moderation, quality checks.
* **Data tools**: imports, exports, report builders, data explorers.
* **Workflow tools**: request forms, ticket queues, task trackers.
* **Integration hubs**: one view across your CRM, ticketing and billing tools.

For a one-off answer, a report or a quick chart, an AI coworker is usually faster than an app. See [Artifacts](https://docs.vybe.build/coworkers/artifacts.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.