Nested-interface desktop for the web: zoomable microspaces, translucent glass containers with live content previews, and a zero-dependency core model. Expo + React Native Web app deployed as a static site on Vercel.
LiveCore tests 42/42
| Product | Nested desktop environment β spaces contain apps and other spaces; zoom in to enter, peek to preview, drag to rearrange |
|---|---|
| Repo | microspaces/microspaces-app |
| Local | C:/Users/AI/Repos/microspaces-app |
| Live | microspaces-app.vercel.app (Vercel, prod on push to main) |
| Owner agent | microspacesdev (Discord #dev; implements via Grok CLI, verifies + ships) |
| Core model | packages/microspaces-core (@microspaces/core) β zoom, peek, encapsulation, inheritance, bubbling |
rgba(20,29,40,0.11) + blur(10px)) with the scene image showing through; scene backgrounds inside previews stay fully opaque.{type, location} catalog β JSON / IndexedDB / REST / DB / later GraphQL, IPFS, LLM); see docs/data-layer-design.md in the repo.packages/microspaces-core (rollup β dist ESM/CJS/UMD)
β
βΌ
apps/mobile Β· expo export -p web β apps/mobile/dist/ (static SPA)
β
βΌ
Vercel: installCommand npm ci Β· buildCommand above Β· outputDirectory apps/mobile/dist
rewrites: /((?!api/).*) β /$1 (client-side routing safe)
description) hydrates the desktop; the data layer design allows swapping in JSON / IndexedDB / REST / DB resolvers without touching the UI.Push to main β Vercel builds core then exports the web app. Prod bundle id (entry-β¦) changes on every deploy β the agent's prod-check scripts compare it before asserting live behavior.
test-screenshots/) β merge β push β live prod probe (same assertions against production).| Monorepo | npm workspaces + Turbo 2.x. Root package name microspaces-monorepo, packageManager: npm@10.0.0. |
|---|---|
| App | apps/mobile (@microspaces/mobile) β Expo SDK 50, expo-router 3.4, React Native 0.73 + react-native-web |
| Shared core | packages/microspaces-core (@microspaces/core) β zero-dependency model + sample data; rollup build; node:test suites (42 tests) |
| Vercel | framework: null, installCommand: npm ci, buildCommand: cd packages/microspaces-core && npm run build && cd ../../apps/mobile && npx expo export -p web, outputDirectory: apps/mobile/dist |
| CI | .github/workflows/ci.yml |
| Verify scripts | apps/mobile/scripts/verify-compact-preview.py (Playwright, serves dist/, asserts layout + glass + hover states) |
| Local | npm install Β· npm run build Β· npm start in apps/mobile (Expo dev server) β Git Bash / PowerShell on Windows |
apps/mobile/
components/desktop/ # AppCard, ZoomedWindow, ContainerPreview,
# PeekPreview, TitleHover, EditableTitle, styles
lib/sample-desktop.js # 7-space demo desktop + descriptions
scripts/ # verify-*.py Playwright checks
app/ # expo-router entry
packages/microspaces-core/
src/ # model, samples, demo-spaces fixtures (json + inline)
dist/ # rollup ESM/CJS/UMD output
Live roadmap, managed as GitHub issues (roadmap:microspaces). Add or close items on GitHub β β = done, close as βnot plannedβ to remove.
Canonical checks: packages/microspaces-core node:test suites (42 tests) + Playwright verify scripts in apps/mobile/scripts/ (title-bar heights, container glass alpha/blur, preview tiles, hover lower-third, stack parity root vs zoomed).
2026-08-30 β UI polish marathon (6 rounds, all shipped to prod same day)
description added to every fixture.Known pre-existing notes: fixture/live-factory mismatch on deep_l1 was resolved while adding descriptions (fixture test relaxed to the 7 canonical roots); narrow preview tiles can ellipsize labels at very small scales.