One app. An independent environment for every user.
Keep your single-user business logic. Deliver it to teams and customers.
English · 简体中文 · Docs · Getting started · Contributing · Support matrix · Links
Many Web apps, AI agents and developer tools are designed around one person's workspace, configuration and data. A desktop client and a Web version may even share the same business code.
Offering that application to a team or to customers can turn into another project: redesign the backend for multiple tenants, add accounts and permissions, separate user data, and build deployment and instance management. Developers can end up maintaining both a single-user product and a SaaS architecture—or staffing a separate platform team.
OpenApp adds multi-user access around your application, with an independent runtime environment and persistent workspace for each user. For suitable applications, you can keep the single-user business logic and put the integration in an Adapter.
Imagine you build an AI coding workspace with a Web interface. Alice and Bob sign in through OpenApp and launch the same application image. Each gets a separate instance with their own agent state, terminal, files and configuration. OpenApp checks workspace ownership before routing requests; application restarts retain each workspace's persistent data.
Your application continues to work with one user's environment. OpenApp manages the accounts, environment allocation, access, deployment and upgrades across those independent instances.
- A separate multi-tenant business backend. Keep improving the same application for personal and hosted use, reducing duplicated development and platform staffing costs.
- An operations console for every project. Reuse account management, access control, instance start/stop, task records and diagnostics through the management UI and CLI.
- A deployment process tied to your source layout. An Adapter declares the app's build inputs and startup requirements. It does not have to use a fixed frontend/backend package pair.
- Manual assembly on every server. Compose Core and selected Adapters into a compiled deployment directory with Dockerfiles, configuration and integrity checks; build the Linux images on the server.
- A platform release for every app update. Update application images separately, test candidates before activation, and use resource limits and idle stopping to manage capacity.
Core, Adapters and business applications remain independently maintained. OpenApp is self-hosted and licensed under Apache-2.0.
The Adapter describes how an application integrates with OpenApp. Runtime/Provider interfaces describe how to create, start, stop and access its environment. This separation lets execution platforms evolve without putting infrastructure-specific management into your business code.
Docker is implemented today, including local development with OrbStack. Kubernetes (K8s), Daytona and additional runtimes are expansion directions; they are not bundled, supported Providers yet. Each new Provider will need implementation and lifecycle testing against the public contracts.
- Package the app: provide a containerized Web app or HTTP service and identify the files that must persist.
- Write an Adapter: describe its image or build inputs, startup, health checks, storage and any authentication handoff.
- Compose and deploy: combine the Adapter with Core, deploy the directory, and verify two users can work independently.
This fits personal Web tools, AI workspaces, internal services and desktop projects that also expose a deployable Web/service version. The current workspace contract runs one application container with one HTTP entry. A desktop GUI alone is not sufficient; shared external databases, object storage and credentials still need application-specific isolation. See integration requirements.
Follow the tutorial: from a single-user app to two independent user workspaces →
- Repository
- Releases
- Issues
- LINUX DO — community discussion
- Documentation
- Getting started
- Adapter development
- Composition and deployment
- Contributing
- Support
- Security policy
OpenApp Core, repository packages and the OpenApp Logo are licensed under Apache License 2.0. Third-party dependencies and independent plugins retain their own licenses; see third-party notices.
Copyright © 2026 OpenApp Contributors.
