Sanity Development Agency in Oslo
· 15 min read
Skai Digital is a Norwegian Sanity agency (Sanity byrå) based in Oslo. We design Sanity content models and build custom Sanity Studios, with headless Shopify commerce as our specialty. We build high-performance e-commerce sites with Sanity as a content operating system — combining PIM, DAM, and visual page building for brands that need more than Shopify’s default CMS can offer.
E-commerce is increasingly about content. Sanity helps e-commerce brands manage product information, digital assets, and marketing content in one structured system that scales with your business.
Most of our Shopify builds use Sanity for structured content management. One Studio edit updates across the stores that need it. Shared FAQs, opening hours, and product information are maintained once and appear everywhere they belong. Our guide to managing content across multiple Shopify stores explains how to share content without losing each store’s identity.
Learn more about our Shopify Plus development services
- Type: CMS / Content operating system
- Primary benefit: Effortless content management
How Sanity connects to Shopify
Sanity Connect for Shopify, Sanity’s Shopify app, syncs products, product variants and collections from Shopify into Sanity as documents. Shopify stays the source of truth for price, inventory and checkout, while Sanity holds editorial content and enriched product information.
Sync can run automatically through Shopify webhooks when products or collections are created, updated or deleted, or manually from the app settings. Collections only sync when Sync collections is switched on. Shopify-owned data lands under the store field, which should be read-only in Sanity Studio so editors don’t accidentally overwrite commerce data.
Direct sync creates one Sanity document per product, variant and collection, and each counts toward your Sanity plan’s document limit. A custom sync handler — an HTTPS endpoint or serverless function that must respond within 10 seconds — can reshape the data instead. For example, keeping variants as objects on their product document saves documents.
Content can also flow the other way. Sanity custom fields and document types can sync back into Shopify as metafields and metaobjects, so a Liquid theme can display Sanity content. You don’t need a headless storefront to use this connection.
On our headless Shopify builds, the storefront reads commerce data from the Shopify Storefront API and structured content from Sanity. Read our full Sanity to Shopify product sync guide for the implementation details, or compare Shopify CMS options and when headless makes sense before deciding on the storefront architecture.
For market-driven product prices, see our live commodity pricing guide, covering Sanity pricing rules and the safeguards around Shopify metal-price updates.
Sources: Sanity Connect for Shopify guide and Sanity Connect reference.
What is Sanity?
Have you ever had to edit 49 different product pages because you needed to change one sentence in the FAQs for some products? That’s not very fun. This is where Sanity comes in.
At the core of Sanity sits the idea of structured content. Ooo, fancy! Let me tell you what that means. When you use Sanity, you stop thinking about a page as something static. Instead, you start thinking of pages as a collection of modules – Like legos! Let me give you an example:
Video: Structured content in Sanity
A narrated walkthrough explains how reusable authors, calls to action, opening hours, and other structured content can be edited once and updated everywhere they appear.
An example
A lego block can be something small, like a single FAQ to entire sections of a page. You build your pages by adding all these legos together. The best part? You can reuse that supper cool FW25 image section that you made on the home page – In any landing page you’d like.
We make the content modules (legos) and structure it in a way that makes sense for your business. Sanity is built to be customized to your workflow and your needs. It’s not a cookie-cutter solution.
So, back to the example of editing 49 product FAQs. We’ve made a custom Parent Property Passing module that allows you to set FAQs in one centralized place. Now you just have to edit FAQs in one place – And it updates in all the places that it shows up in the site. Wonderful!
Video: Shared and product-specific FAQs in Sanity
A narrated Sanity Studio demo shows how default product FAQs are managed centrally while individual products can add their own reusable FAQs.
But, Mrk. Skai-guy writing this article, I have some products that need specific FAQs. I don’t want them to be shown on all PDPs. No problem, friend. All products get the default FAQs shown above. But in addition, you can add custom FAQs on specific products as well. This is content management on easy mode. Use shared FAQs where you need them. Make one-offs where you want to as well.
FAQs is just one example. We do this with all of your content. Less time spent hunting down all the places something is written and needs to be updated – More time spent making meaningful content.
Make great experiences – fast, and without a developer
We’re a development agency. But we want you to be able to create the content you want to without having to use us. You just want to get on with your day and create content that will drive your brand forward.
PIM, DAM and CMS – All in one
If your brand has gotten to a certain size you’ve probably considered adding a PIM (product information management system), DAM (digital asset management system) and a CMS. PIM just means managing product information, DAM just means managing your videos, photos and files – In case you were wondering.
Wouldn’t it be nice to be able to just have all these systems in one place. Well, you can. If you’ve not guessed it, Sanity can do all this. If you’re an enterprise company with thousands of products, then you might reach for a dedicated PIM or DAM. But in most cases, Sanity can handle all of this for you.
The product-sync guide above covers using Sanity as a Shopify PIM, with explicit field ownership, product mappings, and a publishing workflow for each store.
Compare Sanity vs Contentful specifically for Shopify stores
Let’s take a look at how you can handle your images, files and videos within Sanity:
Video: Managing digital assets in Sanity
A narrated demo tours Sanity’s media library, alt text, usage references, tags, filters, and Mux-backed video workflow.
Manage product attributes in Sanity (PIM)
Video: Product information management in Sanity
A narrated demo shows centralized colors, reusable product models, shared descriptions, and product-specific information in a tailored Sanity Studio.
All of this is possible because Sanity is built to be customized. Whatever you need to have, you can probably get done in Sanity.
Plan Black Friday 3 Months in Advance
Your e-commerce manager has probably not had more than 3 hours of sleep combined in the last 2 days before and after BFCM. Making sure that blog posts, announcement banners, landing pages, Klaviyo emails and product discounts all go live at the same time.
They deserve better. You know they do. That’s why we built our custom Promotion Planner module. You can schedule product discounts, landing pages, hero sections, navigations, announcement banners and blog posts to go live when you want them to – in advance – all in one place inside of Sanity.
You can also schedule any other content type to go live with the built-in Content Scheduling feature in Sanity.
Reach new audiences and increase conversions with localization
72.4% of customers said they would be more likely to buy a product with information in their own language
If you’re looking to expand into new markets you need to speak the language of your visitors.
In Sanity you can easily translate and manage the translations of your content. And with Sanity’s AI Assist feature you can now AI-translate content in the blink in a matter of seconds. Not only can you translate content with AI, you can generate entire landing pages.
Paste in the content outline from your Google Doc and AI Assist will generate an entire landing page. It knows the different content modules (lego pieces) that you have available in your Sanity studio and makes a landing page with them.
Not in hours – Not in minutes – In seconds.
Why e-commerce brands choose Sanity with Skai
Shopify’s built-in CMS works for simple blogs. When you need flexible content models, reusable product information, visual campaign editing, or content that flows to multiple channels, Sanity becomes the better choice.
We’ve built Sanity solutions for Verandah Brands (five storefronts from one platform, including TileCloud) and Goldsource (live pricing and customer inquiry workflows). These aren’t demos — they’re production systems handling real orders and content workflows.
What makes Skai different as a Sanity agency
- Shopify + Sanity specialists: We’re a headless Shopify agency, not a generic website builder
- Oslo-based with international reach: Norwegian agency serving e-commerce brands across markets
- Commerce experience: TileCloud’s conversion rate rose 18% in 90 days. Goldsource sales rose 102% in year one.
- Production-tested tools: Campaign preview, multi-brand management, and content scheduling already working in live stores
If you’re comparing partners, our guide to choosing a headless Shopify agency sets out the CMS, integration and maintenance questions worth asking.
Sanity as a Digital Asset Management system (DAM)
Sanity’s media library handles images, videos, and files with built-in optimization and global CDN delivery. You can tag assets, track where they’re used across your site, add alt text for accessibility and SEO, and manage video through the integrated Mux workflow.
For brands managing hundreds of product images and campaign assets, Sanity replaces standalone DAM systems. The demo video above shows the full workflow: upload, organize, tag, and see exactly which pages or products use each asset.
We tested it: does compressing images before uploading to Sanity help?
No, not in our test of TinyPNG (default settings) when images were served through Sanity’s image pipeline with a width (w=) and auto=format. Sanity decodes the upload and re-encodes it for each requested size and format, so the work TinyPNG (default settings) does on the stored source file is mostly thrown away.
We tested 13 images from a client storefront’s image library. All TinyPNG results in this section use TinyPNG (default settings), not other tools or settings.
- Stored file size: -69% with TinyPNG (default settings), from 180.8 MB to 56.5 MB for all 13 files.
- Bytes visitors actually downloaded: within about 1-2% at 640-1920 px (AVIF) with TinyPNG (default settings).
- Page speed: median Lighthouse LCP difference with TinyPNG (default settings) was 0-2 ms: desktop 0 ms, mobile +2 ms. Every test page scored 100.
- Gradient banners got larger: +18% and +27% at 1920 px after TinyPNG (default settings). TinyPNG (default settings) reduces PNGs to a 256-colour palette and dithers to hide banding. That fine-grained noise is expensive for AVIF/WebP to encode.
| Width | Original | TinyPNG (default settings) | Change |
|---|---|---|---|
| 640 px | 0.31 MB | 0.31 MB | +1.1% |
| 1080 px | 0.70 MB | 0.72 MB | +1.6% |
| 1920 px | 2.05 MB | 2.06 MB | +0.5% |
| 3840 px | 7.56 MB | 6.64 MB | -12.1% |
At 3840 px (retina hero size), the TinyPNG (default settings) JPEGs were smaller because fine detail was discarded, and measured quality was lower for every one. Sanity’s q parameter makes the same trade-off without an extra step.
Where TinyPNG still matters
- Raw asset URLs: anything that bypasses resizing, such as download links, feeds or integrations taking the original URL, delivered 180.8 MB vs 56.5 MB in total with TinyPNG (default settings).
- Missing
auto=format, or a browser without AVIF/WebP: Sanity serves the original format. At 1920 px, PNG delivery for all 13 images was 31.1 MB vs 29.6 MB with TinyPNG (default settings), -5%. Both are far too heavy. The fix isauto=format, not TinyPNG (default settings). - Sanity storage: 69% less with TinyPNG (default settings).
How we tested, and the limits of the study
- 13 images from a client storefront’s image library: 7 PNG (17-33 MB each) and 6 JPEG (2.5-8.8 MB).
- Each image was uploaded to Sanity twice: as-is, and after the TinyPNG API with default settings.
- 650 delivery requests: 4 widths (640/1080/1920/3840) × 2 quality settings × 3 browser Accept headers, plus the raw file, all on a warm CDN cache.
- 156 Lighthouse runs (3 runs × mobile/desktop × both versions of every image) on a minimal hero-image page. Run 24 October 2026.
- Limitations: one storefront’s library, no AVIF/WebP/GIF sources, TinyPNG default settings only, simulated throttling on a minimal page. Real LCP also depends on the rest of the page.
Want us to check how your Sanity images are served?
Visual page building and campaign preview in Sanity
Sanity Studio can be configured with visual editing through Sanity Presentation. Marketing teams see changes as they edit, preview scheduled campaigns on future dates, and test content combinations before they go live.
TileCloud uses campaign preview tools to schedule and preview content changes. The team can see banners, pages and content as customers will see them before the scheduled changes go live.
SEO with Sanity CMS
Sanity stores structured content that search engines can understand. Product schema, FAQ schema, and breadcrumb markup come from the same content model your editors already manage.
Our Shopify + Sanity builds include:
- Structured data for products, collections, and content pages
- Editable meta titles and descriptions
- Alt text fields for all images
- Clean URL structures and redirect support
Technical SEO is part of the frontend implementation. Sanity provides the structured content foundation that makes good SEO possible without manual field duplication.
Real Sanity projects
Verandah Brands — Five Shopify storefronts, one Sanity platform
Verandah Brands, a $45 million ecommerce company, runs five storefronts: TileCloud, Yabby, Trade, Dawn and Verandah Store. Each store has its own design and product catalog, but the team manages shared content in one Sanity Studio.
Product information edited once flows to the selected stores. Campaign content can be scheduled and previewed before launch.
Yabby’s conversion rate rose 41% in its first year. TileCloud’s conversion rate rose 18% in 90 days.
Read the full TileCloud case study
Goldsource — Structured content for precious metals commerce
Goldsource sells precious metals and coins. Product prices follow the metals market and customers get interactive price charts. Staff handle the sell-your-coin process in Sanity Studio, from inquiry to offer and fulfillment.
Sales rose 102% in year one.
Read the full Goldsource case study
Contact Skai Digital — Norwegian Sanity Agency
Ready to improve how your brand manages content and product information? We’ll help you understand whether Sanity fits your business and what it takes to implement it with Shopify.
Frequently asked questions about Sanity
What is Sanity used for in e-commerce?
Sanity manages structured content for product information, marketing pages, campaign content, and digital assets. It works as a PIM (product information management), DAM (digital asset management), and CMS in one system. For Shopify brands, it replaces the default blog editor and Metafields when content requirements grow beyond simple pages.
When should we use Sanity instead of Shopify’s built-in CMS?
Use Sanity when you need reusable content blocks, shared product information across multiple storefronts, visual campaign editing, content scheduling, or structured data that flows to multiple channels. Shopify’s CMS works for basic blogs. Sanity handles complex content operations.
Can marketing teams edit content without developers?
Yes, once the content model is built. Editors create pages, update product information, schedule campaigns, and manage assets in Sanity Studio. New page types or content structures require development. That’s why we model content comprehensively during implementation.
Does Sanity work with Shopify Plus?
Yes. We build headless Shopify storefronts that use Shopify Plus for checkout, inventory, and order management while Sanity handles content and product information. This architecture gives brands the flexibility of custom content management with Shopify’s proven commerce infrastructure.
How long does it take to implement Sanity for a Shopify store?
Implementation time depends on content complexity, the number of page types, migration requirements, and integration needs. We can provide a specific timeline after a discovery call to understand your requirements.
Is Skai Digital a Sanity partner?
Skai Digital is listed in Sanity’s agency partner directory. We specialize in Sanity implementations for Shopify commerce and have delivered production systems for e-commerce brands. Our case studies show working implementations with measured results.
What does Sanity cost for an e-commerce brand?
Sanity offers a free tier for small teams and paid plans with features like AI Assist, Content Releases, and collaboration tools. Enterprise plans with advanced security and support are priced based on usage. See Sanity’s pricing page for current plan details. Implementation costs depend on project scope.
How does Shopify product data get into Sanity?
Sanity Connect for Shopify syncs products, variants and collections into Sanity automatically via Shopify webhooks or on demand from the app settings. Collections require Sync collections to be enabled. Shopify stays the source of truth for price and stock. See the product sync guide for the full workflow.
Do I need a headless storefront to use Sanity with Shopify?
No. Sanity Connect can sync Sanity content to Shopify metafields and metaobjects for a Liquid theme. Headless makes sense when you need custom layouts, multiple storefronts or heavier content. Our Shopify CMS guide explains the difference between a headless CMS and a headless storefront.
Do you need to compress images before uploading to Sanity?
No, if you serve images through Sanity’s image pipeline with a width and auto=format. In our test of 13 images, TinyPNG (default settings) cut stored size by 69%, but the bytes visitors downloaded stayed within about 1-2% at 640-1920 px and median Lighthouse LCP changed by 0-2 ms. Read the image delivery test for the method and limitations.
Does Sanity optimize images automatically?
Yes, when you request images with parameters: Sanity’s image CDN resizes and re-encodes each upload for the requested width, and with auto=format serves AVIF or WebP to browsers that support them. Without parameters (the raw asset URL), you get a much larger file. Our test covered a client storefront’s image library, not every possible image format or delivery setup.
Why did TinyPNG make my gradient images bigger on Sanity?
TinyPNG (default settings) reduces PNGs to a 256-colour palette and adds dither to hide banding. Dither is fine-grained noise, which is expensive for AVIF and WebP to encode, so after Sanity re-encoded them our two gradient banners came out 18% and 27% larger at 1920 px.
When does compressing images before upload still matter?
TinyPNG (default settings) still matters when something bypasses Sanity’s resizing: raw asset URLs used in downloads, feeds or integrations (180.8 MB vs 56.5 MB in our test), and storage (69% less). If images are served without auto=format, fix that first. That’s the real problem, not compression.
Contact
Let’s talk about what you’re trying to solve
Book a quick call to sense-check the problem and see whether we’re the right team to help.
