Last updated July 21, 2026
Social-ready images from Sanity: strip C2PA and XMP before Instagram or TikTok
Sanity is excellent at storing structured content and serving responsive images through the CDN. Many teams stop at Studio upload → urlFor() → Next.js Image. That covers the website.
It does not automatically cover social. The same hero JPEG often gets downloaded, re-exported from Photoshop, CapCut, or a phone AI editor, then uploaded to Instagram or TikTok. Platforms may show AI Info when the file still carries C2PA, XMP AI namespaces, or PNG workflow chunks — even when your Sanity site looks fine.
This guide is a content-ops checklist: keep the Content Lake clean, serve web images as usual, and treat social uploads as a separate delivery path.
Why web delivery is not social delivery?
Sanity’s image pipeline transforms pixels: width, format, quality, focal point. Social networks often read file-level provenance instead: C2PA manifests, XMP AI fields, sometimes EXIF software strings.
CDN delivery for the site does not rewrite every provenance manifest an upstream AI tool embedded. If editors upload AI-assisted exports into Studio, those tags can still be present when someone later downloads a large derivative for Instagram or TikTok.
A practical asset model in Studio
Keep two intents, even if you start with a single image field:
Master / archive — high-quality source in the Content Lake for redesigns and retention.
Social export — the exact file you will upload to a network this week.
You do not need two CDN pipelines on day one. You need a process:
- Editors finish creative work in Sanity or on a local master.
- Marketing picks the same bytes they will upload to social — not a WhatsApp recompress or screenshot.
- Someone checks whether those bytes still carry C2PA or XMP AI markers.
- Only then schedule the post.
Document this in Studio desk instructions or a simple Publishing document type so freelancers do not invent ad-hoc paths.
Where AI metadata usually enters a Sanity workflow?
- Adobe Firefly or Photoshop Generative Fill on a hero before Studio upload
- Midjourney or ChatGPT Image used as moodboard art, cleaned visually but not at the file level
- CapCut or Reel covers exported as JPG and reused as social crops
- Lightroom AI Denoise on camera RAW, then JPEG into Studio
Pixels can look like photography while platforms still disclose based on file-level credentials.
Keep the Sanity website path unchanged
Continue using the CDN for the website, for example urlFor(image).width(1200).format('webp').url() in Next.js.
For social, do not assume “download from CDN equals ready for Instagram.” Prefer this path:
- Export or download the final JPG, PNG, or WebP you will attach.
- Inspect for C2PA and XMP in read-only mode.
- If markers are present and the label is metadata-driven, strip them before upload.
- Upload the cleaned file to the network — keep the Studio master if you still need provenance in archive.
Cleaning without uploading client assets to a random server
Agencies often block uploading campaign JPEGs to an unknown SaaS. Prefer tools that run in the browser so bytes stay on the machine.
For a free, browser-local strip of C2PA, XMP, and related fields before Instagram or TikTok, teams can use a browser-based metadata remover as the last step after Sanity export, then post the cleaned raster. Pair with your own checker process; policies vary by platform and region.
- Metadata cleaning addresses file-level triggers. Pixel watermarks or visual classifiers are out of scope.
- Disclosure laws and platform rules still apply — cleaning is prep, not legal advice.
- For carousels, clean every slide. One dirty frame can shape the whole post.
Checklist you can paste into Studio
- Master asset lives in Sanity or a DAM with a clear filename
- Social export is the exact file for this post
- C2PA / XMP AI markers checked, or intentionally kept for disclosure
- Cleaned copy named like Social_Ready_2026-07.jpg
- Website continues to use CDN transforms; social uses the Social_Ready file
- Brand policy reviewed for AI disclosure markets
Summary
Sanity should remain your source of truth for content and web images. Social networks remain a second delivery channel with different readers: they often look at provenance metadata, not only your GROQ query. Separate CDN for the site from raster for the upload, and you avoid last-minute AI Info surprises without changing your Studio schema overnight.
Sanity – The Content Operating System that ends your CMS nightmares
Sanity replaces rigid content systems with a developer-first operating system. Define schemas in TypeScript, customize the editor with React, and deliver content anywhere with GROQ. Your team ships in minutes while you focus on building features, not maintaining infrastructure.
Sanity scales from weekend projects to enterprise needs and is used by companies like Puma, AT&T, Burger King, Tata, and Figma.