Reduce CMS bandwidth costs, eliminate overages, and serve assets through your own global edge proxy.
How It Works
CMS Assets places your edge proxy between your site and CMS provider. Without changing your content workflow, asset URLs are served through your own domain to reduce costs, improve control, and keep performance stable.
1. Connect Your CMS
Add a tenant, choose Prismic or Contentful, and provide repository/space settings.
2. Enable the Proxy
Every tenant gets a dedicated `*.cmsassets.com` domain for serving asset files.
3. Track Savings
Bandwidth is routed through your edge and reduces CMS overage costs.
Savings Calculator
Compare the cost of serving assets directly through your CMS versus routing them through CMS Assets. Adjust the sliders to match your usage.
For Developers
@synchronized-studio/response-transformer automatically replaces Prismic, Contentful, Sanity, Shopify, Cloudinary, or Imgix asset URLs with your CMS Assets domain, keeping integrations clean and consistent.
What You Get
Install
Add the package once and use the same helper for every supported CMS.
Copy command
npm install @synchronized-studio/response-transformerUsage
import { transformCmsAssetUrls } from '@synchronized-studio/response-transformer'
const spaceId = 'exampleSpaceId'
const contentfulToken = process.env.CONTENTFUL_DELIVERY_TOKEN
const contentfulResponse = await fetch(
`https://cdn.contentful.com/spaces/${spaceId}/environments/master/entries`,
{
headers: {
Authorization: `Bearer ${contentfulToken}`,
},
}
)
const cmsData = await contentfulResponse.json()
const transformed = transformCmsAssetUrls(cmsData, {
cms: 'contentful',
spaceId,
cmsAssetsUrl: 'https://example.cmsassets.com',
})FAQ
Who is CMS Assets for?
+What problem does CMS Assets solve?
+How do we integrate it into an existing site?
+Does it work with multiple sites or brands?
+Will this break image transformations or query params?
+What about video and large files?
+