Skip to content

Application System

ElyOS recognizes two types of applications:

TypeLocationDeveloped ByAccess
Built-in Applicationapps/web/src/apps/[app-name]/ElyOS core teamFull internal API
External ApplicationStandalone project, .elyospkg packageExternal developersOnly 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.

  1. User opens the application from the Start Menu or Taskbar
  2. AppLoader checks application status and permissions
  3. WebOSSDK is initialized with the application ID, user data, and permissions
  4. IIFE bundle is dynamically imported (dist/index.iife.js) — a standalone, isolated JavaScript file that doesn’t conflict with other applications
  5. If there’s a menu.json, the AppLayout wrapper appears with sidebar navigation
  6. 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.