Skip to main content
Back to selected work
Framer × Shopify commerce infrastructure

Shop Canvas

Founder-built Framer × Shopify infrastructure — the Bouguessa-class commerce job, on the surface where brands actually design in Framer.

Loading live site preview…
Outcome

I founded Shop Canvas after client work kept surfacing the same split: Framer for design speed, Shopify for catalog and checkout — and every bridge asked the team to give up ownership of one side.

I’m the founder of Shop Canvas. The problem I kept hitting on client work: teams design storefronts in Framer, run commerce in Shopify, and the glue between them either rents you a sync layer or pulls you out of the design model you chose Framer for.

Problem

Framer buyers want layout, motion, and CMS structure they control. Shopify holds variants, prices, inventory, and checkout. When those two worlds meet through a third-party bridge, someone else often owns the collection, the sync schedule, or the component model — and migration becomes the real product.

On Bouguessa — Shopify Plus, luxury fashion — I saw the same job from the theme side: editorial cadence and campaign layout matter as much as cart logic. Shop Canvas is that bet for Framer-led teams: design and CMS ownership stay in Framer; catalog and checkout stay in Shopify.

Context

Buyers I have in mind: Shopify Plus and Framer-led brands (and agencies shipping many storefronts) with Bouguessa-shaped pain — publishing speed cannot wait on an engineering queue, but ops still live in Shopify.

Goal: connect once, sync into a Framer CMS collection the buyer owns, style code components on canvas, checkout on Shopify. Constraints: public Storefront API only (no Admin secrets in the plugin), producers not engineers as the primary installer, and trust that a bad sync must not silently overwrite live campaign rows.

Who it’s for: Shopify Plus and Framer-led brands (and agencies shipping many storefronts) — editorial and merchandising producers, not an engineering queue. Goal in one line: owned Framer CMS sync, design on canvas, checkout on Shopify. Hard constraint: Storefront API only in the plugin; every catalog apply goes through preview-before-apply so live campaign rows are never overwritten blindly.

What buyers were stuck with

Status quo

Managed sync SaaS puts the collection on vendor infrastructure — switching tools means migrating content you never owned. Leaving Framer for a headless theme or custom stack trades away the visual model the team already chose.

Shop Canvas

Sync into a Framer CMS collection the buyer owns, with explicit field mapping. Design, motion, and CMS structure stay in Framer; catalog, variants, inventory, and checkout stay on Shopify.

Before locking architecture I ran Framer × Shopify competitive fieldwork (Notion: “Shop Canvas — Framer×Shopify competitive research,” ~Sep 2026). Method honesty: only a minority of claims were hands-on verified in that pass — on the order of five of forty — the rest stayed vendor-stated and labelled as such. I used the sheet to rank build priorities, not to quote market share.

Technical decisions

Owned CMS, not a managed mirror. Preview-before-apply for every deliberate sync. Security boundary by design: Storefront token in the plugin; card data only on Shopify checkout — repeated in the setup skill so agents do not improvise broader scopes.

Plugin UX for producers: connection status, demo vs live store, prepare/insert that lands components with bindings visible — not a JSON console dressed up as “simple.”

Systems and edges

Demo store must never touch a merchant catalog; live connect must fail loudly on bad tokens. Empty catalog after connect, preview conflicts when rows drifted, and half-connected states are first-class — not silent success.

How it works

  1. 01

    Connect

    Try the demo store or connect Shopify with a Storefront token. Connection status stays explicit — demo path and live store are separate entry paths, not one ambiguous “connected” badge.

  2. 02

    Preview

    Re-sync from Shopify, review what would change in your Framer CMS collection, then apply. Editorial gets a gate before live rows move.

  3. 03

    Publish

    Style code components on canvas with bindings visible; checkout and card data stay on Shopify. Export, duplicate, and handoff look like normal Framer CMS work.

Integrations hub

Connect → Preview → Publish — Framer CMS sync, Storefront API, and preview gate on one surface.

01 · Connect

Framer project + Shopify Storefront

Demo store path or live connect with a Storefront token only — no Admin secrets in the plugin. Status stays split: Framer authorisation and Shopify credentials are separate steps, not one green check.

  • Storefront API
  • Demo vs live
  • Explicit connection states

Owned collection

Framer CMS

Catalog rows land in a collection the buyer owns — field mapping is explicit before apply.

  • Field mapping

02 · Preview

Preview-before-apply

Re-sync from Shopify, review the diff against live CMS rows, then commit. Campaign seasons do not get silently overwritten.

  • Diff review
  • Drift visible

Commerce boundary

Shopify checkout

Variants, inventory, prices, and card data stay on Shopify — the plugin never holds checkout scope.

  • Checkout on Shopify

03 · Publish

Canvas components + handoff

Style code components with bindings visible; export and duplicate like normal Framer CMS work. Producers install; engineers extend the plugin when needed.

  • Code components
  • Prepare / insert
  • Setup skill for agents

Versus the usual workarounds

Status quoShop Canvas
Buyer-owned Framer CMS collectionStatus quo: noShop Canvas: yes
Preview diff before applyStatus quo: noShop Canvas: yes
Storefront API token only in plugin (no Admin secrets)Status quo: noShop Canvas: yes
Producer-facing install path (not engineer-only scripts)Status quo: noShop Canvas: yes
Demo / sample path before live credentialsStatus quo: noShop Canvas: yes
Repeatable harness for agencies refreshing catalogsStatus quo: noShop Canvas: yes
Managed vendor-hosted collection as defaultStatus quo: yesShop Canvas: no
Leave Framer for theme or custom stack to “finish” commerceStatus quo: yesShop Canvas: no

Collaboration

Bouguessa taught me how Shopify ops actually behaves — campaigns, variants, checkout reality — even though Shop Canvas targets Framer, not Liquid themes. I did not invent a pilot customer list for this page; the collaboration beat I can stand behind is the setup skill as a contract with future collaborators and agents.

The skill documents two connections (Framer project authorisation and Shopify inside the plugin) so a coding agent does not “helpfully” skip the human step where credentials attach. Same discipline I use on client stacks: legible boundaries for the next person — or model — who touches the repo.

Connect path

Two surfaces, one contract — Framer project authorisation and Shopify inside the plugin.

Framer

Project + CMS

Shop Canvas

Plugin UI

  • Demo store path
  • Live connect + status
  • Storefront token only

Shopify

Storefront API

Producers install; engineers extend — no Admin secrets in the plugin.

Setup skill

Agent-native handoff contract

Skill · not live chat
Walk me through Shop Canvas setup — what do I connect first?
Two connections, in order: (1) Authorise the Framer project so components can bind to CMS fields. (2) Paste the Shopify Storefront token in the plugin — demo store if you’re exploring, live store when you’re ready. I won’t skip the human credential step.
Where does checkout live?
Always on Shopify. The setup skill repeats that boundary so agents don’t widen scope into Admin API or card data.

Illustrative thread from the setup skill — boundaries for collaborators and coding agents.

Outcome and evidence

Shop Canvas is live — product story, component reference, plugin flow. The implementation is open at View repo. Evidence today is architectural: owned CMS sync, preview gate, component kit, and checkout handoff to Shopify — the same ownership split Bouguessa needed, packaged for Framer buyers.

I am not claiming revenue, App Store or marketplace approval, or conversion lifts. Those gates are still ahead. What a hiring reader can inspect is the system and the judgments above.

Reflection

Founder work forced me to name tradeoffs I could hand-wave on client engagements: who owns the collection, what happens on a bad sync, where PCI scope stops. Shop Canvas is smaller than an enterprise design system, but the design-engineering bar is the same — make the happy path obvious and the failure paths honest.

If I were joining a team tomorrow, this is the story I’d tell: I saw a repeated commerce + design split, killed the usual bridges for good reasons, shipped infrastructure I’d want to buy, and stayed honest about what is not proven yet.

Live: Shop Canvas · Repo: View repo

Want to build something like this?

Let's talk about your project.

Next case study

Avnzor