My very own WebOS
- 3 Devlogs
- 13 Total hours
This is my very own OS that can be run in the web!
This is my very own OS that can be run in the web!
RetroWebOS
Just pushed a major retro-theming update that dials the nostalgia to 11. This isn't just a skin
change—it's a full immersion retrofit.
What's new in the Retro Edition:
• Authentic CRT curvature simulation (using CSS transforms + filters, not canvas)
• Scanline intensity now dynamically responds to brightness (like real phosphor decay)
• Added 4 vintage wallpapers: IBM green terminal, Apple II monitor, VT100 amber, and RGB composite
artifact
• Terminal now supports true CGA/EGA/VGA color palettes with customizable intensity
• Boot sequence rewritten to mimic POST beeps + memory count + BIOS splash
• Shutdown animation includes realistic power-down surge and fading glow
• System sounds regenerated using Web Audio API to emulate SN76489 and AY-3-8910 chips
• Added "degauss" command to Terminal that temporarily warps the display (with recovery animation)
Favorite feature: The new "Retro Inspector" DevTool
It lets you toggle individual CRT effects (scanlines, curvature, bloom, phosphor bloom, chromatic
shift) in real-time while seeing the performance impact overlay. Pure CSS solutions mean these
effects stay under 2ms frame cost even on integrated graphics.
The architecture tweaks:
• ThemeEngine now accepts spectral power distributions for accurate phosphor emulation
• Audio.js added noise generators for tape hiss and RF interference
• WindowManager gained "persistence" option that leaves ghost images when dragging (like
long-persistence phosphor)
• FS.js now stores theme preferences per-user in IndexedDB with encrypted backup
What I fixed:
• Purple theme had incorrect green channel bleed (was mixing blue+red instead of proper magenta)
• Wallpaper slideshow paused when opening settings menu (z-index conflict)
• Terminal bell sound was too sharp—now filtered through CRT speaker simulation
• Cursor blink rate wasn't respecting system accessibility settings
• Fixed a race condition where desktop icons would momentarily snap to grid on theme change
v0.9 roadmap (Retro polish):
• Add "TV mode" with overscan, color bleed, and RF noise
My very own WebOS
A week ago I released v2.0. Now here’s v3.0 “Synthwave Edition.”
A complete desktop OS simulation that runs in a single HTML file, built with vanilla JavaScript. No build step, no npm, no Webpack — just open it in your browser and it works.
What’s changed since v2.0?
The numbers speak for themselves:
13 apps → 30+ apps (Calendar, Weather, Music Player, Mail, Chat, Notes, System Monitor, Password Vault, Tetris, Pong, Breakout, + Doom-Like FPS)
3 themes → 6 phosphor themes (Pink, Purple, White, and more)
4 wallpapers → 10 animated wallpapers (Rain, Snow, Fire, VHS, Galaxy, 3D Grid…)
Added AES-GCM encryption (Web Crypto API) for the Password Vault
IndexedDB instead of localStorage’s 5MB limit (50MB+)
PWA — installable as a standalone app, works offline
Voice commands — “open terminal,” “shutdown,” “lock”…
Window snap zones (Windows-style drag to edge)
Favorite feature: Game Launcher
I also built in an Unreal Engine integration system. If you have a WebGL build of your game, drop in the .wasm + .js + .data files, and the launcher automatically handles highscores, system requirements, and the gallery.
The architecture
14 logical modules, all in one file:
Bus — Pub/sub event system
IDB — IndexedDB wrapper
Crypto — Web Crypto API
Kernel — Luna Service Bus IPC emulation
FS — Virtual filesystem (recycle bin, drag & drop)
OS — Orchestrator (boot, login, windows)
…and 8 more
~3,500 lines of code. ~85KB. 0 dependencies.
What I fixed
Six significant bugs found during the v2.0 review:
Settings Green option was always “selected” (typo in the code)
Browser app’s inline onclick=“navigator()” — this was calling the navigator Web API, not a function (classic mistake)
Music Player beat interval cleanup memory leak
Tetris piece null reference on game over
Voice listener leak through the Bus
60fps mousemove → throttled to 50ms (60% less CPU usage)
v3.1 roadmap
Multiplayer over WebRTC (Snake, Pong, Doom)
Real audio file playback in the Music Player
Drag-from-desktop to taskbar (pin apps)
Undo/redo in the text editor
Gamepad API support for all games
Plugin system for community apps
Try it out
mateszko090214.github.io/WebOS
Full code, docs, and roadmap are up on GitHub. If you like it, drop a star!
“Bringing the 80s back to your browser, one pixel at a time.”
i am working on a Retro theme WebOS