Les iframes comme primitive de composition universelle.
Chaque service de conteneur — terminal, display, files, éditeur de code, navigateur, UI SQLite — est une URL HTTPS embeddable en iframe. Les dashboards ne sont pas construits par-dessus l'infra ; ils sont assemblés à partir d'elle.
Un fichier HTML + iframes = UI d'infra custom · pas de SDK · pas de postMessage
Ne construisez pas un dashboard par-dessus votre infra. Assemblez-le à partir de votre infra.
Les dashboards traditionnels lisent la base, pollent des APIs, rendent des chiffres et des courbes. Un dashboard Hoody embed des iframes des services eux-mêmes — terminaux live, displays en cours, arbres de fichiers que vous pouvez éditer. Pas de lag de sync parce qu'il n'y a rien à synchroniser.
Pas de couche de polling
Le dashboard ne polle pas un endpoint de monitoring. Il embed la chose qui est monitorée.
Lire et agir
vous voyez un pic de métrique ? Clique dans le terminal embedded à côté et tape `top`. Pas de changement de contexte.
Par client, par projet, par env
Compose des dashboards à partir d'URLs — n'importe quelle combinaison est un dashboard.
AI-composable
Un LLM peut émettre du HTML avec des URLs d'iframe. UI d'observabilité custom, générée à la demande.
Changez le container. L'iframe reflète.
Pas de postMessage. Pas de protocole parent-enfant. Un iframe affiche une URL de service ; le service est mis à jour via l'API HTTP ; la prochaine requête de l'iframe récupère le nouvel état. L'iframe et l'API sont le même container.
L'app embed une URL de service
La page parent dépose un iframe pointant vers une URL de service de conteneur dans son layout.
L'app envoie une requête HTTP de contrôle
POST /api/v1/files/upload (ou n'importe quel autre appel API) — authentifié contre le même container.
L'iframe pull l'état frais
Auto-refresh, SSE, ou interaction utilisateur déclenche une nouvelle requête. Le nouveau fichier est visible dans l'iframe.
Pas de protocole wrapper
votre app n'envoie jamais de postMessage à l'iframe. Elle met juste le conteneur à jour ; l'iframe voit le changement à son prochain rendu.
Les iframes rendent sur chaque navigateur. Chaque navigateur est sur chaque appareil.
Un dashboard Hoody embedded fonctionne sur un téléphone. Sur une tablette. Sur un navigateur TV. Sur une smartwatch. Sur le navigateur d'un casque VR. La propriété d'embeddability traverse tout le paysage des appareils parce que le navigateur le fait.
La primitive de composition est iframe + HTTPS. Les deux sont universels. C'est la seule raison pour laquelle la parité d'appareils est automatique.
Un LLM peut composer un dashboard à partir d'URLs de container.
Demande à un agent "code-moi un dashboard de health-check pour ces trois conteneurs". Il émet du HTML avec des balises iframe pointant vers les URLs terminal, display et exec que vous avez nommées. Le résultat est un dashboard réel et live en un seul tour de prompt.
L'agent reçoit la spec
"J'ai besoin de monitorer trois conteneurs : frontend, backend, db. Montre le log terminal de chacun."
L'agent émet du HTML
Template avec trois balises iframe pointant vers les bonnes URLs terminal-1 de chaque container.
Sers depuis n'importe où
Collez dans un fichier statique, une page Notion qui autorise les embeds iframe, ou un conteneur Hoody dédié faisant tourner http-3000.
Ouvrez l'URL
Dashboard live. Composé à partir de l'infra, pas d'un produit dashboard.
Là où l'embeddability touche les limites du navigateur.
Les iframes sont une primitive du navigateur. Le navigateur impose des règles sur ce qui peut et ne peut pas être embed. Ce sont des contraintes universelles, pas spécifiques à Hoody — mais elles comptent quand vous composez des UIs.
X-Frame-Options / CSP
Les URLs externes qui posent `X-Frame-Options: DENY` ou `frame-ancestors 'none'` ne peuvent pas être embed. Les services Hoody ne le font pas ; les URLs tierces que vous embed peuvent le faire.
Contenu mixte
Embed une URL HTTP dans une page HTTPS est bloqué. Les URLs Hoody sont toujours HTTPS — fonctionnent partout.
Cookies tiers
Les navigateurs bloquent de plus en plus les cookies tiers. L'auth dans les iframes embedded peut nécessiter des tokens par requête plutôt que des cookies de session.
Storage tiers
localStorage dans un iframe est scopé à l'origine de l'iframe. L'état inter-iframe doit venir du conteneur, pas du navigateur.
Code le dashboard à partir de l'infra, pas par-dessus.
Un fichier HTML. Une poignée de balises iframe. Conteneurs live en cours d'exécution. C'est toute la stack.
Voir aussi — /platform/proxy pour la composition dans Hoody, /kit/environments pour le runtime Environment, /methods/multiplayer pour les sessions iframe partagées.