A complete web-based operating system with modular, plugin-based architecture built with modern web technologies
π Try the Live Demo
- Multi-Window Interface: Full desktop experience with draggable, resizable windows
- Taskbar & Dock: Complete desktop navigation with app launcher and system tray
- Window Management: Minimize, maximize, snap-to-screen, and z-index management
- Desktop Icons: Customizable desktop with shortcuts to applications
- Alt+Tab Navigation: Switch between running applications
- Plugin-Based System: Modular architecture with pluggable applications
- Event-Driven: Robust event bus for inter-application communication
- Multi-Window Support: Dedicated windows for different applications and tasks
- Finite State Machine: Deterministic state management for all subsystems
- Real-time Communication: Built-in support for multi-tab synchronization
- TypeScript-First: Full type safety across the entire operating system
- Authentication & Permissions: Role-based access control
- Configuration Engine: Dynamic configuration management
- Storage Abstraction: Unified storage interface
- Theme Engine: Customizable theming system
- Internationalization: Multi-language support
- Telemetry: Usage analytics and monitoring
- Local Cache: Optimized data caching
- πΎ Storage: Local and cloud storage providers
- π¨οΈ Printers: Print driver support for various printers
- π’ Notifications: Real-time alerts and messaging
- π Network: Network and connectivity adapters
- π Security: Authentication and security service integrations
- Node.js 18+
- Bun (recommended) or npm/yarn
# Clone the repository
git clone https://github.com/devmaaa/webos.git
cd webos
# Install dependencies
bun install
# Start development server
bun run devThe WebOS will be available at http://localhost:3200
# Build the application
bun run build
# Preview the production build
bun run serveWebOS follows a microkernel architecture with Feature-Sliced Design (FSD) principles, creating a complete, modular web-based operating system.
- Microkernel Extensibility: Core + Plugins with schema-driven configuration
- Isolation by Design: Scoped event communication and plugin boundaries
- Event-Driven Communication: Deterministic, leak-free messaging via EventBus
- Offline-First: Real-time sync with local cache capabilities
- TypeScript-First: Full type safety across the entire system
ββββββββββββββββββββββββββββββββββββββββββββββ
β WebOS Core β
ββββββββββββββββββββββββββββββββββββββββββββββ
β π§ Microkernel β
β β’ Plugin Loader β
β β’ Event Bus (Scoped + Leak-safe) β
β β’ Window Manager β
β β’ Finite State Machine (FSM) System β
β β’ State Manager β
β β’ Config Engine β
β β’ Theme Engine β
β β’ Auth & Permission Layer β
β β’ Storage Abstraction (Offline + Sync) β
β β
β π Core Services β
β β’ Notification Service β
β β’ Sync & Queue Manager β
β β’ Diagnostics / Telemetry β
β β’ Cross-tab / Cross-window bridge β
ββββββββββββββββββββββββββββββββββββββββββββββ
β²
β
ββββββββββββββββ΄βββββββββββββββ
β Applications β
βββββββββββββββββββββββββββββββ
β File Manager / Text Editor β
β Media Player / Browser β
β Terminal / Analytics β
β Settings / System Apps β
ββββββββββββββββ²βββββββββββββββ
β
Solid.js Windows (UI)
src/
βββ core/ # Core systems (FSM, EventBus, Window Manager)
βββ apps/ # System applications (File Manager, Terminal, Settings)
βββ plugins/ # Plugin system with modular applications
βββ ports/ # External integrations (DB, Payments, Printers)
βββ composables/ # Reusable SolidJS utilities
WebOS applications follow Feature-Sliced Design (FSD) principles. Create a new app by:
- Create manifest.json with app metadata and window configuration
- Implement app.tsx as the main component
- Add init.ts for bootstrap logic and event registration
- Register in src/plugins/index.ts
See existing plugins (Calculator, File Manager, Terminal, Settings) for examples.
WebOS uses a scoped EventBus for inter-application communication with automatic cleanup:
import { eventBus } from '@core/event-bus';
// Emit events
await eventBus.emit('file:created', fileData);
// Listen with scope (auto-cleanup)
const scope = '@webos/my-app';
eventBus.on('file:opened', handler, { scope });
eventBus.offAll(scope); // CleanupEvent naming: domain:action (e.g., window:opened, file:created, app:loaded)
WebOS supports customizable themes and dynamic configuration. See core/themes/ and core/config-engine/ for implementation details.
- Frontend: SolidJS + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS v4
- Package Manager: Bun (recommended)
- Architecture: Microkernel + Feature-Sliced Design (FSD)
bun run dev # Start development server
bun run build # Build for production
bun run serve # Preview production buildWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
bun test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- SolidJS - Reactive UI library
- Vite - Build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- π§ Email: support@webos.com
- π¬ Discord: Join our community
- π Documentation: docs.webos.com
Built with β€οΈ for the web platform
β Star this repo | π Report Issues | π‘ Request Features
