AJ SPACE — PUBLISH PROTOCOL v1 (2026-07-12) ============================================ Space dashboard : https://aivibe-space.vercel.app (Vercel project: aivibe-space) Registry data : https://aivibe-space-registry.vercel.app (Vercel project: aivibe-space-registry) Owner: AJ (aravind@aivibe.in) · Vercel team/scope: "aivibe" · Deploy via Vercel MCP tool deploy_to_vercel. WHEN AJ SAYS "publish to my space" (or "add to my space/dashboard"), DO THIS: 1) BUILD the tool as ONE self-contained, mobile-first HTML file. Rules: inline all CSS/JS; external libs only from cdnjs.cloudflare.com; wrap localStorage in try/catch; use env(safe-area-inset-*) padding; inputs font-size >= 17px (prevents iOS zoom); dark slate theme (#0f172a background) to match the Space. Verify logic in a headless browser before deploying when feasible. 2) DEPLOY the tool as its own project: deploy_to_vercel { target:"production", name:"aivibe-tool-", files:[{file:"index.html", data:""}] } Then get_deployment (teamId "aivibe") until READY; TOOL_URL = clean alias "https://aivibe-tool-.vercel.app". 3) READ the current registry (do not guess it): WebFetch https://aivibe-space-registry.vercel.app/registry.json with prompt: "Output the raw JSON exactly, with no commentary." 4) APPEND one entry to tools[] — KEEP every existing entry, never remove or reorder: {"id":"","name":"","short":"<2 LETTERS>","icon":"", "color":"","url":"","added":"","desc":""} Palette: #22c55e #38bdf8 #f59e0b #a78bfa #f472b6 #34d399 #fb7185 #60a5fa Also set top-level "updated" to today's date. 5) REDEPLOY the registry with ALL THREE files (a Vercel deployment replaces the whole tree — omitting a file deletes it): a. registry.json — the updated JSON, pretty-printed. b. registry.js — exactly: window.SPACE_REGISTRY=; c. vercel.json — verbatim: {"headers":[{"source":"/(.*)","headers":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Cache-Control","value":"public, max-age=0, must-revalidate"}]}]} deploy_to_vercel { target:"production", name:"aivibe-space-registry", files:[a,b,c] } 6) VERIFY: WebFetch registry.json again and confirm the new entry exists. Then tell AJ: the tool's URL, and that its icon is now live on https://aivibe-space.vercel.app. NOTES - One tool = one Vercel project. Do NOT redeploy "aivibe-space" unless changing the dashboard itself. - The dashboard reads registry.js live with a cache-busting query; new cards appear on next open. - Vercel keeps every deployment immutable — rollback anytime from the Vercel dashboard (project → Deployments). - To UPDATE an existing tool: redeploy its own project (same name) with the new index.html; registry untouched unless the name/icon changes.