Liveloop

An interactive timeline for social media. Every post is a tiny app you can play, save, and remix.

Product

  • Feed
  • Games
  • Create
  • Claude Code plugin
  • Blog

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DMCA

Project

  • Templates
© 2026 Liveloop. All rights reserved.
HomeLiveloop

Loop Container v1.0

Last updated August 11, 2026

This is the public contract for hosted Loops. It gives creators, developers, and AI assistants one stable set of layout, safety, and capability rules before they publish.

Layout and responsiveness

A Loop is designed in a 360 × 640 portrait viewport (9:16). The platform scales that same experience for phone and desktop.

  • Feed mode keeps the Loop inside the social card.
  • Desktop preserves a bounded portrait container instead of letting Loop code take over the page.
  • Embeddable Link Loops declare Responsive, Desktop 16:9, or Mobile 9:16. The portrait feed letterboxes fixed-aspect projects instead of cropping them.
  • The top-right 140 × 56 px area belongs to Liveloop controls: pause, sound, and fullscreen. Put a Loop's own HUD elsewhere.

Source and supported formats

Hosted source is capped at 1024 KB before it can mount. Keep code self-contained and put larger public datasets in Liveloop data assets.

Supported hosted formats are HTML, React, Markdown, interactive Story video, and bounded chatbots. External projects are Link Loops and stay outside the Liveloop execution environment.

Security boundary

Hosted code runs in an opaque-origin iframe with scripts enabled and no same-origin permission. The platform shell and every visitor account remain outside the container.

  • No access to Liveloop cookies, persistent browser storage, the parent DOM, navigation, or platform styling.
  • No arbitrary outbound network or form submission. Only platform-controlled public assets and a short, version-pinned creative-library allowlist are available.
  • Camera, microphone, location, payments, USB, Bluetooth, clipboard, and native fullscreen are unavailable to arbitrary Loop code.
  • A compatible Link Loop can run in a nested isolated frame after ownership attestation and framing checks. It keeps its own domain, receives no Liveloop session, and cannot alter the platform shell.

Optional SDK and permissions

The injected window.liveloop SDK is additive: ordinary HTML still works. It can expose layout, visibility, media coordination, per-viewer state, artifact-scoped data, realtime rooms, bounded chatbot turns, and consent-aware lead capture.

window.liveloop

Every bridge request is tied to the current Loop, validated by the parent, and rate-limited. A Loop never receives a general database credential or account session.

Lifecycle and scale

Loop code executes in the viewer's browser. Public frames are CDN-cacheable; off-screen frames are paused or removed, and small preview tiles use a lower rendering budget. A busy Loop should still pause work when visibility changes.

Machine-readable contract

SDKs and AI publishing clients can fetch the versioned JSON manifest below instead of scraping this page. New contract versions will receive a new endpoint; v1 remains stable.

https://www.liveloop.space/api/loop-container/v1

{
  "version": "1.0",
  "viewport": {
    "width": 360,
    "height": 640,
    "aspectRatio": "9:16"
  },
  "presentation": {
    "modes": [
      "feed",
      "fullscreen"
    ],
    "desktop": "bounded-portrait",
    "linkEmbeds": {
      "displayModes": [
        "responsive",
        "desktop",
        "mobile"
      ],
      "feed": "portrait-letterboxed",
      "desktop": "creator-declared"
    },
    "reservedChrome": {
      "corner": "top-right",
      "width": 140,
      "height": 56,
      "owner": "Liveloop"
    }
  },
  "source": {
    "maxBytes": 1048576,
    "supportedKinds": [
      "html",
      "react",
      "markdown",
      "video",
      "chatbot"
    ]
  },
  "execution": {
    "runtime": "viewer-browser",
    "iframeSandbox": "allow-scripts",
    "opaqueOrigin": true,
    "iframeLifecycle": "viewport-scoped",
    "thumbnailFrameRateCap": 30
  },
  "publishing": {
    "accountRequired": true,
    "externalLinkLoopsExecuteInsideLiveloop": true,
    "externalLinkLoopRequirements": [
      "public-https",
      "creator-attestation",
      "framing-permitted"
    ]
  }
}

AI clients that publish on a creator's behalf must also use the scoped Liveloop MCP connection.