ryOS ryOS / Docs
GitHub Launch

Overview

ryOS is a web-based desktop environment that brings the nostalgia of classic operating systems to modern browsers. Experience the charm of Mac OS X Aqua, System 7, Windows XP, and Windows 98—all running in your browser with 27 fully-functional apps, an AI assistant, and a complete virtual file system.

Whether you're exploring the retro aesthetics, building HTML applets, or chatting with Ryo (the AI assistant), ryOS offers a unique blend of nostalgia and modern web technology.

Quick Start

I want to...Go to
Learn about the appsApps Overview
Understand the architectureArchitecture
Understand the API layerAPI Architecture
Build with the frameworkApplication Framework
Work with AI featuresAI System
Use the APIsAPI Reference

Key Features

  • Built-in Apps: Finder, TextEdit, Paint, iPod, Infinite Mac, Winamp, Calendar, Dashboard, Contacts, Maps, Books (EPUB reader), and more
  • AI Assistant (Ryo): Chat, tool calling, app control, code generation
  • Virtual File System: IndexedDB-backed with lazy loading and cloud sync
  • Real-time Chat: RESTful rooms with AI integration
  • Audio System: Synthesizer, soundboard, TTS, and UI sounds
  • Component Library: shadcn/ui + custom components with i18n
  • Cloud Sync: Journal-based Cloud Sync v2 with per-key documents, realtime sync ops, lazy legacy import, and S3-compatible blob storage
  • Unified API Layer: Shared apiHandler + middleware utilities for consistent CORS, method routing, auth, and error handling
  • Usage Analytics: Lightweight per-day API analytics with admin dashboard
  • Runtime Reliability & Performance: App/desktop error boundaries, typed app event bus primitives, lazy-loaded non-default locales, and worker-offloaded Spotlight indexing

Tech Stack

CategoryTechnologies
FrontendReact 19, TypeScript, Tailwind CSS v4, shadcn/ui, Motion
StateZustand with localStorage/IndexedDB persistence
AudioTone.js, WaveSurfer.js, Web Audio API
3DThree.js (shaders)
Text EditorTipTap
StorageIndexedDB, LocalStorage, Redis (Upstash REST / standard), S3 compatible object storage
API RuntimeStandalone Bun server (Node-style handlers)
AIOpenAI, Anthropic, Google via Vercel AI SDK
Real-timePusher or local WebSocket (with Redis pub/sub fanout)
Package ManagerBun ([email protected] in package.json; CI/Docker currently use Bun 1.3.9)
BuildVite, Bun
DesktopElectron + electron-builder (macOS and Windows release builds; Linux AppImage target configured)
DeploymentDocker / Coolify (standalone Bun server), Electron releases

Project Structure

├── api/              # Node-style API endpoints (standalone Bun server)
│   └── _utils/       # Shared API utilities (api-handler, request-auth, redis, storage, realtime, analytics, etc.)
├── index.html        # Vite entry / app shell
├── electron/         # Electron main/preload/menu/updater
├── public/           # Static assets
├── tests/            # bun:test suites
├── src/
│   ├── api/          # Frontend API clients (auth, rooms, admin, songs, listen, core, telegram, irc)
│   ├── apps/         # 27 app modules
│   ├── components/   # Shared React components
│   ├── config/       # App registry
│   ├── hooks/        # ~75 custom hooks
│   ├── lib/          # Libraries (including locales/)
│   ├── lib/locales/  # i18n translation files (11 languages)
│   ├── services/     # VFS and realtime service facades
│   ├── shared/       # Contracts, sync helpers, domain types
│   ├── stores/       # 40 Zustand store modules
│   ├── styles/       # CSS
│   ├── sync/         # Cloud Sync v2 client engine
│   ├── themes/       # 4 theme definitions
│   ├── types/        # TypeScript types
│   ├── utils/        # Utility functions
│   └── workers/      # Web workers
├── Dockerfile        # Coolify / GHCR image
└── scripts/          # Build scripts