πŸͺŸ Microspaces

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.

Overview Features Flow Tech Roadmap Test results πŸ§ͺ Pair test plan

Overview

LiveCore tests 42/42

ProductNested desktop environment β€” spaces contain apps and other spaces; zoom in to enter, peek to preview, drag to rearrange
Repomicrospaces/microspaces-app
LocalC:/Users/AI/Repos/microspaces-app
Livemicrospaces-app.vercel.app (Vercel, prod on push to main)
Owner agentmicrospacesdev (Discord #dev; implements via Grok CLI, verifies + ships)
Core modelpackages/microspaces-core (@microspaces/core) β€” zoom, peek, encapsulation, inheritance, bubbling

Features

Flow

Build

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)

Runtime request

  1. Browser loads the static SPA from Vercel.
  2. Sample desktop data (7 spaces + deep-nest fixtures, with per-space description) hydrates the desktop; the data layer design allows swapping in JSON / IndexedDB / REST / DB resolvers without touching the UI.
  3. All interaction (zoom, peek, drag, hover reveals) is client-side; no server dependencies today.

Deploy

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.

Verification pipeline (2026-08-30): every UI change lands as a Grok CLI branch β†’ Playwright verify script against a local build (title heights, glass alpha, preview tiles, hover behavior, before/after screenshots in test-screenshots/) β†’ merge β†’ push β†’ live prod probe (same assertions against production).

Tech

Monoreponpm workspaces + Turbo 2.x. Root package name microspaces-monorepo, packageManager: npm@10.0.0.
Appapps/mobile (@microspaces/mobile) β€” Expo SDK 50, expo-router 3.4, React Native 0.73 + react-native-web
Shared corepackages/microspaces-core (@microspaces/core) β€” zero-dependency model + sample data; rollup build; node:test suites (42 tests)
Vercelframework: 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 scriptsapps/mobile/scripts/verify-compact-preview.py (Playwright, serves dist/, asserts layout + glass + hover states)
Localnpm 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

πŸ—‚οΈ Roadmap

Live roadmap, managed as GitHub issues (roadmap:microspaces). Add or close items on GitHub β€” β˜‘ = done, close as β€œnot planned” to remove.

Test results

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)

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.