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 24 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.
graph TB
subgraph Presentation["Presentation Layer"]
Apps[24 App Modules]
UI[UI Components]
Themes[4 Themes]
end
subgraph State["State Management"]
Zustand[Zustand Stores]
end
subgraph Data["Data Layer"]
IndexedDB[(IndexedDB)]
LocalStorage[(LocalStorage)]
API[Vercel + Bun API]
end
subgraph External["External Services"]
AI[AI Providers]
Pusher[Real-time
Pusher / Local WS]
Redis[(Redis
Upstash / Standard)]
ObjectStorage[(Object Storage
Vercel Blob / S3)]
end
Apps --> Zustand
UI --> Zustand
Zustand --> IndexedDB
Zustand --> LocalStorage
Zustand --> API
API --> AI
API --> Redis
API --> ObjectStorage
Apps --> Pusher
Quick Start
| I want to... | Go to |
|---|---|
| Learn about the apps | Apps Overview |
| Understand the architecture | Architecture |
| Understand the API layer | API Architecture |
| Build with the framework | Application Framework |
| Work with AI features | AI System |
| Use the APIs | API Reference |
Key Features
- Multi-Theme Support: System 7, Mac OS X (Aqua), Windows XP, Windows 98
- 24 Built-in Apps: Finder, TextEdit, Paint, iPod, Infinite Mac, Winamp, Calendar, Dashboard, Contacts, CandyBar, 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: Multi-domain auto-sync with individual file sync, realtime notifications, and switchable storage (Vercel Blob / S3-compatible)
- 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
| Category | Technologies |
|---|---|
| Frontend | React 19, TypeScript, Tailwind CSS v4, shadcn/ui, Framer Motion |
| State | Zustand with localStorage/IndexedDB persistence |
| Audio | Tone.js, WaveSurfer.js, Web Audio API |
| 3D | Three.js (shaders) |
| Text Editor | TipTap |
| Storage | IndexedDB, LocalStorage, Redis (Upstash REST / standard), Vercel Blob / S3-compatible |
| API Runtime | Vercel Node.js handlers + standalone Bun server |
| AI | OpenAI, Anthropic, Google via Vercel AI SDK |
| Real-time | Pusher or local WebSocket (with Redis pub/sub fanout) |
| Package Manager | Bun ([email protected]) |
| Build | Vite, Bun |
| Desktop | Tauri (macOS, Windows, Linux) |
| Deployment | Vercel (web), standalone Bun API (self-hosted), Docker / Coolify |
Project Structure
├── api/ # Node-style API endpoints (Vercel + standalone Bun server)
│ └── _utils/ # Shared API utilities (api-handler, middleware, auth, redis, storage, realtime, analytics, etc.)
├── public/ # Static assets
├── src/
│ ├── api/ # Frontend API clients (auth, rooms, admin, songs, listen, core, telegram)
│ ├── apps/ # 24 app modules
│ ├── components/ # Shared React components
│ ├── config/ # App registry
│ ├── hooks/ # 44 custom hooks
│ ├── lib/ # Libraries
│ ├── stores/ # 31 Zustand stores
│ ├── styles/ # CSS
│ ├── themes/ # 4 theme definitions
│ ├── types/ # TypeScript types
│ └── utils/ # Utility functions
├── src-tauri/ # Desktop app config
└── scripts/ # Build scripts