Prox OS Docs
Deployment

esmadrider.me (`@prox-os/esmadrider-me`)

Standalone Vite app for the personal founder / build-log landing. First production-oriented **external iframe** app registered under /app in the OS Shell.

Standalone Vite app for the personal founder / build-log landing. First production-oriented external iframe app registered under /app in the OS Shell.

The Home UI is currently a pure-front-end cinematic personal OS portfolio template: fixed launcher rail, vertical system ribbon, layered Madrid / Toledo hero placeholders, and mock Projects / Timeline / Dashboard / Manifesto sections. The app still has no backend dependency and remains iframe-safe for the OS Shell.

Local development

  • Port: 3120 (strict; avoids 3000 / 3100 / 6006 / 8787).
  • Commands: pnpm dev:esmadrider-me (root) or pnpm --filter @prox-os/esmadrider-me dev
  • With the shell: pnpm dev:os-with-esmadrider-me starts OS Shell and this app via Turborepo filters.

Build and preview

pnpm build:esmadrider-me
pnpm preview:esmadrider-me

Output: apps/esmadrider-me/dist/.

Deploy (Cloudflare Pages)

  • Create a Cloudflare Pages project (e.g. esmadrider-me) if it does not exist. The root script uses --project-name=esmadrider-me; rename the flag if your dashboard project differs.
  • From monorepo root (authenticated Wrangler):
pnpm deploy:esmadrider-me

This runs pnpm build in the app package, then wrangler pages deploy dist with project esmadrider-me.

  • Alternative: pnpm --filter @prox-os/esmadrider-me run deploy from the repo root.

Console-only setup (reference)

FieldValue
Root directoryapps/esmadrider-me (monorepo) or repo root with adjusted paths
Build commandpnpm install && pnpm --filter @prox-os/esmadrider-me build
Build output directoryapps/esmadrider-me/dist

When the root directory is the monorepo root, use the build command above so workspace packages resolve.

OS Shell registration

  • Manifest (platform template): packages/app-registry/src/manifests/esmadrider-me.ts — composed in apps/os-shell/src/apps/registry.ts
  • Route: /app-iframe/esmadrider-me
  • Dev iframe URL: http://localhost:3120/?mode=os-app
  • Prod iframe URL: https://esmadrider.me/?mode=os-app (when DNS + Pages are live)
  • Public copy: apps/esmadrider-me/public/os-app.manifest.json (documentation / tooling only)

Embed modes

  • Query: ?mode=os-app or ?embed=1
  • Iframe: window.self !== window.top is treated as embedded when detectable.
  • postMessage: parent may send { type: 'prox-os:ping' }; the app replies with { type: 'prox-os:pong', appId: 'esmadrider-me', v: 1 } to the sender origin. Typed host protocols belong in @prox-os/app-contract when they grow beyond this stub.

Environment

VITE_PROX_OS_URL (Vite / build-time)

BuildBehavior
Dev (pnpm dev)If unset: CTA uses http://localhost:3000 (local pnpm dev:os). If set: normalized URL is used (staging shell from local site dev).
Production (pnpm build)If set: Enter Próx OS uses this URL (scheme optional in env; normalized to https:// when missing). If unset: defaults to https://prox-os.com.

Configure in Cloudflare Pages (or CI) for the esmadrider-me project:

  • Variable name: VITE_PROX_OS_URL
  • Example value: https://prox-os.com

Local template: apps/esmadrider-me/.env.example → copy to .env.local.

Embed mode: the CTA uses target="_top" so the shell opens in the top browsing context instead of navigating inside the guest iframe.

Other packages: apps/os-shell, @prox-os/app-registry, and @prox-os/app-contract do not read this variable; only the static site apps/esmadrider-me does.

On this page