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) orpnpm --filter @prox-os/esmadrider-me dev - With the shell:
pnpm dev:os-with-esmadrider-mestarts OS Shell and this app via Turborepo filters.
Build and preview
pnpm build:esmadrider-me
pnpm preview:esmadrider-meOutput: 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-meThis runs pnpm build in the app package, then wrangler pages deploy dist with project esmadrider-me.
- Alternative:
pnpm --filter @prox-os/esmadrider-me run deployfrom the repo root.
Console-only setup (reference)
| Field | Value |
|---|---|
| Root directory | apps/esmadrider-me (monorepo) or repo root with adjusted paths |
| Build command | pnpm install && pnpm --filter @prox-os/esmadrider-me build |
| Build output directory | apps/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 inapps/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-appor?embed=1 - Iframe:
window.self !== window.topis 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-contractwhen they grow beyond this stub.
Environment
VITE_PROX_OS_URL (Vite / build-time)
| Build | Behavior |
|---|---|
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.