Motioness

Replace any <img> URL with a Motioness proxy URL and you get a looping mp4 back — same dimensions, same composition, brand-aware motion. No model selection, no prompt engineering, no asset pipeline.

The shortest path is the React component — it ships with hover effects, lazy loading, fallback handling, and signed-URL support out of the box:

tsx
import { MotionessImg } from '@motioness/proxy-client/react';<MotionessImg projectKey="pk_abc" src="https://cdn.acme.com/hero.png" motion="medium"/>

The first request enqueues generation and returns a poster jpg immediately. The mp4 lands in 20–60 seconds, then is permanently cached at the edge.

Quickstart

Ship your first animated asset in under five minutes.

Learn More
How it works

Vision → image-to-video → loop stitching → edge cache.

Learn More
Proxy URL pattern

The single URL shape that powers every embed.

Learn More
API Reference

Auth, projects, assets, webhooks — auto-generated from OpenAPI.

Learn More

What you get

One URL

Proxy URLs work in <img>, <video>, OG tags, RSS, MDX. No JavaScript required for static delivery.

Brand-aware motion

Per-project brand context (colors, fonts, tone) shapes the prompt the vision model sends to image-to-video.

Edge cached

Once generated, mp4s and posters serve from Cloudflare edge in ~5ms. Same URL → same bytes forever.

Webhooks + SSE

Standard Webhooks signed delivery, or live SSE streams of asset.* events.

Three ways to embed

We recommend the React component — it's the most feature-rich surface (effects, lazy loading, callbacks, SSR-safe).

tsx
import { MotionessImg } from '@motioness/proxy-client/react';<MotionessImg projectKey="pk_abc" src="https://cdn.acme.com/hero.png" motion="medium"/>

Includes hover effects, loading="lazy", onReady / onError callbacks, signature + exp props for signed URLs, and progressive enhancement.

Where to go next

Ask a question... ⌘I