Discussion: Decoupling apps from PlayOS windows
Is your feature request related to a problem? Please describe. Currently, PlayOS runs all apps in its container (container here meaning on the domain playos.io). This is good for technological reasons since we can keep track of all the processes and easily manage them. This only gives a few problems:
-
Users don't want an OS in another OS experience. Since most users run already an OS of their choice it defeats the purpose to run yet another OS in the browser. This is pretty much overkill for a user who just wants to get the job done.
-
Less space for the actual app. Since we have to figure out how we can let the user return home from an app adds it unnecessary UI components to the window. This can quickly feel cramped for the user as well as the developer.
-
Developers need to follow our rules, locking them too much in. We don't want developers to have to rewrite their entire app to be able to play nice with PlayOS. It does not encourage developers to start writing apps for the platform. Of course, WASM solves most of these issues. But at the current stage, WASM is not optimal for UI apps. HTML, CSS, and JavaScript are still king here.
Now, this does not mean PlayOS is not useful. The features such as giving an easy way to connect an app to a storage unit and allow it to make purchases give developers a quick way to market. We should focus more on that aspect and expose a set of API's to make web app development easier. In other terms include the PlayOS Kernel in every app and tie them all together.
Describe the solution you'd like 1 & 2. Use actual windows We should use actual windows with real URLs as a replacement for our PlayOS window. These hold a connection through post messages with PlayOS. This would still allow us to let it communicate with other apps and keep track of running processes.
- Since we use real windows developers can just include the PlayOS SDK with an easy to use API for authentication, notifications, and file storage. This is just a simple integration library so a developer could swap this out (just like the Facebook sign-in, Google sign in) and have their app standalone. The WASM VM will still be available and actively maintained for PlayOS and will remain a crucial component. This would allow for a drop-in replacement of a regular WASI runtime and be able to use all the PlayOS features out of the box.
Make PlayOS.io just the dashboard for viewing files, notifications, apps marketplace, and installed apps. It's still an essential part, but the user would just notice it less. And IMO that's what a good UX should be.
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context https://www.figma.com/file/lGE9MAcc7EuwUFI6oj45L9/PlayOS?node-id=10%3A134