Skip to content

yakubka/retro_aesthetics

Repository files navigation

Retro OS — Full-Stack Polyglot Portfolio

Production TypeScript React Python Rust Go Elixir Docker

A Windows 95/98 desktop OS running in the browser, built as a full-stack polyglot monorepo. The retro shell is the front. The engineering depth is the point.

Live: retro-aesthetics.vercel.app


What's Running Right Now

Everything in this table is live in production or runs locally today. Planned phases are in the Roadmap.

Technology What it does in this project Where
React 18 + TypeScript Windowed desktop OS: drag, resize, z-index, taskbar, start menu, 40+ apps apps/os/src/
Vite Dev server, production build, WASM asset handling apps/os/vite.config.ts
Tailwind CSS Win95 bevel, inset, outset utility classes; responsive desktop layout apps/os/
TanStack Router File-based routing for OS routes and deep-linked app state apps/os/src/
@yakubka/retro-ui Shared Win95 component kit: Window, Button, Icon, Taskbar, Dialog packages/retro-ui/
tsup Bundles retro-ui to ESM + CJS + .d.ts type declarations packages/retro-ui/tsup.config.ts
Storybook Interactive docs and visual testing for retro-ui components packages/retro-ui/
pnpm workspaces + Turborepo Monorepo task graph: build order, caching, parallel runs pnpm-workspace.yaml, turbo.json
Husky + lint-staged Pre-commit: ESLint auto-fix, Prettier, ruff, TypeScript check on staged files .husky/, lint-staged.config.mjs
Python serverless (Vercel) /api/ endpoints: SQL sandbox execution, Pastebin CRUD, Guestbook, ETL mock api/index.py
SQLite-WASM (wa-sqlite) In-browser SQL Playground runs real queries with zero backend apps/os/src/os/apps/SqlPlayground.tsx
Pyodide Full CPython in the browser powering the Python Terminal app apps/os/src/os/apps/PythonTerminal.tsx
WebAudio API ControlPanel startup jingle synthesized from oscillators; audio visualization apps/os/src/os/apps/ControlPanel.tsx
Web Speech API Voice Recorder app captures and plays back audio sessions apps/os/src/os/apps/VoiceRecorder.tsx
Canvas 2D Paint app (brushes, shapes, fill, eraser); Photo Booth filters and stickers apps/os/src/os/apps/Paint.tsx
requestAnimationFrame Stopwatch centisecond precision; Raycaster render loop; Snake game loop ClockApp.tsx, Raycaster.tsx
Geolocation + Open-Meteo API Weather app fetches real conditions for your GPS location apps/os/src/os/apps/Weather.tsx
localStorage Persistent state for Notes, Calendar reminders, SQL history, theme, wallpaper across all apps
GitHub GraphQL API Guestbook entries stored and fetched via GitHub Discussions apps/os/src/os/apps/GuestbookApp.tsx

Stack

Layer Tech
Frontend React 18, TypeScript, Vite, Tailwind CSS, TanStack Router
UI Kit @yakubka/retro-ui (npm, Storybook, tsup)
WASM Rust (raycaster, photo filters, formula engine)
Emulator C/C++ CHIP-8 compiled to WASM
API Python FastAPI, REST + GraphQL (Strawberry) + gRPC-web
Gateway Go, high-throughput API gateway
Realtime Elixir/Phoenix, WebSocket, CRDT sync (Yjs)
Queue Celery + RabbitMQ / Redis Streams
Orchestration Dagster, ETL DAG with live status
Data Postgres, DuckDB-WASM, SQLite-WASM (wa-sqlite), dbt
Cache Redis
Observability Prometheus, Grafana, Loki, Tempo, OpenTelemetry, Sentry
Infra Docker Compose, Kubernetes, Helm, Terraform, Nix flake

Monorepo Layout

pnpm workspaces + Turborepo:

retro_aesthetics/
  apps/
    os/                   React/TS retro desktop (Vite, TanStack Router)
  packages/
    retro-ui/             Win95 UI kit: Window, Button, Icon, Taskbar, Dialog
                          Storybook, tsup build, published as @yakubka/retro-ui
  crates/
    retro-wasm/           Rust crate compiled to WASM
  emulators/
    chip8/                C/C++ CHIP-8 emulator compiled to WASM
  api/                    Python serverless functions (Vercel, production)
  services/
    api/                  Python FastAPI (docker-compose, REST + GraphQL + gRPC)
    worker/               Celery worker
    orchestrator/         Dagster ETL orchestration
    gateway/              Go API gateway
    realtime/             Elixir/Phoenix (chat, presence, CRDT)
  data/                   dbt models, ETL scripts, Great Expectations checks
  infra/                  docker-compose, k8s manifests, Helm chart, Terraform

Apps Running Inside the OS

40+ retro apps:

Category Apps
Productivity Word, Notes, Calendar, Calculator, Pastebin, Clipboard
Media Music Player, Media Player, Voice Recorder, Photo Booth, Gallery
Dev Tools SQL Playground, Python Terminal (Pyodide), Terminal, Redis Demo, ETL Viewer
Creative Paint, Color Picker, Raycaster (3D)
System Control Panel, System Monitor, My Computer, Task Manager
Games Snake, Solitaire, Minesweeper, DOOM (WASM), CHIP-8 Emulator
Social Guestbook, Contact, Readme, About
Network Weather, I.E. Browser, Error Cascade

Packages

Package Registry Status
@yakubka/retro-ui npm + GitHub Packages in progress

Local Development

Requires Node 20+ and pnpm (via Corepack):

corepack enable
pnpm install
pnpm dev                              # apps/os on localhost:5173
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm --filter @yakubka/retro-ui storybook

Full stack (Phase 2+):

docker compose up     # Postgres, Redis, FastAPI, Go, Elixir, Kafka, Grafana

Build and CI

GitHub Actions are disabled (billing-locked account). Build gates run in Vercel:

  • Vercel build command runs pnpm turbo run build --filter=@yakubka/os.... Deploy fails if build fails. The badge at the top reflects production status.
  • Husky + lint-staged run ESLint, Prettier, ruff, and TypeScript checks on staged files before each commit.
  • .github/workflows/*.yml are workflow_dispatch-only (manual, optional).

Deployment

What Where
apps/os (frontend) Vercel
api/ (Python serverless) Vercel
Postgres, Redis, FastAPI, Go, Elixir, Kafka, Dagster, Grafana docker-compose locally, VPS/Railway/Fly in production

Vercel does not host long-running services or stateful infrastructure. Everything else runs via docker-compose.


Roadmap

Built phase by phase:

Phase Status What
F1 done pnpm/turborepo monorepo, retro-ui + Storybook, Husky, Vercel build gate
F2 in progress FastAPI (REST + GraphQL) + Postgres + Redis + docker-compose, SQL Playground (Postgres + DuckDB/SQLite-WASM)
F3 planned Rust raycaster + formula engine (WASM), CHIP-8 emulator (C to WASM)
F4 planned RabbitMQ/Celery queue + Dagster ETL/DAG + data quality, Task Manager on real metrics
F5 planned Observability: Prometheus, Grafana, Loki, Tempo, OpenTelemetry, Sentry
F6 planned Elixir realtime: chat, presence, CRDT multiplayer, whiteboard
F7 planned Auth (OAuth + JWT + RBAC), Go gateway, gRPC-web, feature flags, Kafka streaming
F8 planned E2E/property/mutation tests, package publishing, SBOM/signing, Terraform/k8s/Helm/Nix, LLM Clippy (RAG), PWA/a11y/Lighthouse

Contributors

yakubka Yokubjon Nurullaev
IbrokhimN Ibragim Nurullayev

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors