Asset Proxy
Serve media assets through one cached domain
Route images, videos, and files through Cachely. Assets stay cached close to users, existing transformations keep working, and bandwidth is tracked from one dashboard.
Fast cached delivery
Assets return from the edge after the first request, close to the user.
Bandwidth tracking and controls
Monitor usage per project, set limits, and stay ahead of overage costs.
Traffic controls
Screen suspicious requests before they consume origin bandwidth.
Video streaming and large files
Range requests are supported for video playback and large downloads.
Image transformations preserved
Width, format, and quality parameters are forwarded to the origin unchanged.
Works with any media origin
Use Cloudinary, Imgix, CMS asset hosts, or any HTTPS origin.
How it works
How an asset request flows through Cachely
- 1The browser requests
your-project.cachely.io/path/to/image.png - 2Cachely validates the file type, checks traffic controls, and confirms the project quota.
- 3On a cache hit, the asset returns from the edge. On a miss, Cachely fetches the origin and stores the response.
- 4The asset is served to the browser, and usage is recorded without slowing the response.
For developers
Generate your asset helper in one command
The Cachely SDK (@cachely-io/sdk) detects your framework, CMS provider, and package manager, then generates a typed helper for routing asset URLs through your edge domain.
What You Get
- - Detects your framework — Next.js, Nuxt, Vite, or generic — from your project config
- - Detects your provider — Prismic, Contentful, Sanity, Storyblok, Shopify, or generic
- - Generates a typed helper for routing asset URLs through Cachely
- - Updates .env.example with CACHELY_PROXY_URL
Install
Add the package once and use the same helper for every supported CMS.
Copy command
npx @cachely-io/sdk setupPass details up front to skip prompts
Use --yes for non-interactive mode, --tenant to bake your slug into the generated helper, and --dry-run to preview every action without touching disk.
npx @cachely-io/sdk setup --yes --tenant my-project --dry-run