Application System
What is an Application?
Section titled “What is an Application?”ElyOS recognizes two types of applications:
| Type | Location | Developed By | Access |
|---|---|---|---|
| Built-in Application | apps/web/src/apps/[app-name]/ | ElyOS core team | Full internal API |
| External Application | Standalone project, .elyospkg package | External developers | Only via WebOS SDK |
External applications are loaded as Web Components into ElyOS. The system dynamically imports the IIFE bundle (IIFE = Immediately Invoked Function Expression — a self-executing, isolated JavaScript package that doesn’t pollute the global namespace), initializes the WebOS SDK, then displays the component in a window.
How is an Application Loaded?
Section titled “How is an Application Loaded?”- User opens the application from the Start Menu or Taskbar
AppLoaderchecks application status and permissionsWebOSSDKis initialized with the application ID, user data, and permissions- IIFE bundle is dynamically imported (
dist/index.iife.js) — a standalone, isolated JavaScript file that doesn’t conflict with other applications - If there’s a
menu.json, the AppLayout wrapper appears with sidebar navigation - If there’s no
menu.json, the application is loaded as a Web Component directly
Built-in Application vs External Application
Section titled “Built-in Application vs External Application”If you want to integrate your own application into ElyOS and have access to the monorepo, a built-in application is the right choice — full SvelteKit access, Drizzle ORM, server actions.
If you’re an external developer or want to distribute the application to other ElyOS instances, use the external application system.
Next Steps
Section titled “Next Steps”- Creating Your First Application — CLI tool, project structure, first build
- Development Workflow — standalone dev mode, Mock SDK, hot reload
- SDK API Reference — all available services in detail
- manifest.json Reference — every field documented
- Server Functions — backend logic for applications
- Build and Packaging —
.elyospkgformat, upload - Security and Permissions — forbidden patterns, whitelist, permissions