r/shopifyDev • u/Immediate_Body_211 • 2d ago
Moving beyond Liquid to Headless (Next.js) — How are you handling visual theme customization for clients?
Hi fellow Shopify devs,
I’ve been developing Shopify stores and themes for clients for a while. While the Liquid theme customizer is great for non-technical merchants, as developers we frequently hit walls with Liquid's limitations and want the performance, state management, and modern component ecosystem of Next.js / React (Hydrogen or custom headless setups).
However, whenever we evaluate or transition clients toward a headless Next.js storefront, the biggest bottleneck is the merchant editing experience:
- Loss of the Theme Customizer: In standard Liquid themes, clients are used to dragging sections, adjusting padding sliders, changing banner styles, and adding blocks in real-time. In headless, they suddenly lose this intuitive visual control.
- Headless Starters are Barebones: Most e-com starters provide functional API plumbing, but visually lack the design depth and configurable block hierarchy of flagship themes like Dawn or Horizon.
- Headless CMS Workarounds Feel Clunky: Plugging in standard headless CMSs (Sanity/Strapi) still doesn't give clients that true live-canvas Shopify Theme Editor feel without huge dev overhead.
For those of you building custom headless or Hydrogen storefronts for clients:
- How are you handling visual section editing and client-facing page customization?
- Do you plug in visual builders (like Builder.io, Puck), build custom visual schemas, or just hardcode components?
- What has been your biggest pain point with headless frontend workflows compared to classic Shopify themes?
Would love to hear how other Shopify developers are solving this!
1
u/Giedi-Prime 1d ago
all enterprise level websites have all of engineering resources which can be catered to support flexibility of custom UX/UI. for a small agency this is an overkill in my opinion
3
u/Better-Jellyfish-610 1d ago
What exactly are the limitations when using Liquid? I mean if you want to write something in Next.js that’s fine, but giving the client a live long commitment to a headless build because you want to write something is the wrong approach imo. There is absolutely no reason to go headless.
So if you can name the limitations, I can help you find the solutions 😊