Back to Projects

ZenithOS

ReactNextjsTailwindTypescriptTanstack QuerySupabaseMotionShadcnWorkOS
ZenithOS

Description

Development on this project has slowed down/halted for now as I focus on higher priority tasks, though I plan to return to it in the future.

ZenithOS is a browser-based desktop experience built with Next.js and TypeScript. Instead of feeling like a normal website with pages, it feels like a small operating system: you land on a desktop, open apps from a start menu, and manage your work in separate windows.

I designed ZenithOS to feel interactive and alive. Windows can be moved around, resized, focused, and closed with smooth animations. The taskbar helps you jump between apps, and the start menu is the main place to launch them. So the UI feels familiar if you’ve used Windows or macOS.

What it’s like to use

When you sign in, ZenithOS becomes “your” desktop. You can open built in apps like Settings, Weather, and Calculator, and you also get a real notification system (with quick actions like marking notifications as read). The Settings app is not just a fake screen: it connects to real backend features like profile updates and avatar uploads.

The layout is also desktop first on purpose. If you try to open it on a small screen, it shows a mobile overlay instead of breaking the experience. That decision helped me keep the UI focused and consistent.

How it works

Under the hood, ZenithOS is built as a modular system:

  • Desktop Shell: Controls the main layout including the desktop, taskbar, and start menu.
  • App Manager: Handles the “window life cycle” (open, close, move, resize, focus).
  • Persistence: Window state can persist between sessions so your workspace feels stable.
  • Server Actions: Handle user synchronization and updates while keeping the UI fast.

For the full stack infrastructure, I integrated WorkOS for authentication, Supabase for storing user and notification data, and UploadThing for avatar storage. The Weather app fetches live data from an external API to demonstrate real world data integration.

Why I built it

ZenithOS is a personal project to improve my skills in building a complete application. I wanted to practice:

  • Building a complex UI that remains simple to use.
  • Writing clean, type safe code with TypeScript.
  • Connecting frontend features to real backend data and services.
  • Creating an architecture where adding new apps later is easy.

What’s next

I plan to add more apps and more “OS like” features over time, while keeping the system lightweight, modular, and fun to use. It is far from done, but it's kind of on the backburner as I have more important things right now.

ZenithOS | Dylano Olislaegers