components/product-card/server.liquid
{% props %}  title: "{{ title | default: 'Aurora Tee' | escape }}"  price: {{ price | default: 39 }}{% endprops %} <article class="product-card">  <h3>{{ title }}</h3>  <p class="price">${{ price }}</p>  <add-to-cart>Add to cart</add-to-cart></article>

Write a Liquid component.

osmose · dev · i5kn71-aw.myshopify.com · theme 149498429510 · osmose dev :5177
Dev Server RUNNING
Localhttp://localhost:5177
Storehttps://i5kn71-aw.myshopify.com
Files 103 Last 1.122s Errors 0 Warnings 0 Reloads 1 Run 632ccbf4
AllBuildBrowserCompiler
21:50:28 VITE http://localhost:517721:50:28 VITE integration: Loaded integration "preact"21:50:28 VITE integration: Loaded integration "solid"21:50:28 BACKEND theme sync backend: graphql21:50:29 UPLOADED layout/theme.liquid21:50:30 COMPILED sections/product-card.liquid21:50:33 COMPILED sections/home.liquid21:50:34 INFO Dev server started — WS:35079 Vite:localhost:5177
Watching for changes …
Pushing 47 files → i5kn71-aw.myshopify.com
0 / 47 files · 0.0 files/sec
assets├─  product-card.js├─  add-to-cart.js╰─  reel.csssections├─  home.liquid╰─  product-card.liquidtemplates╰─  index.json
 Built 47 production files in 0.91s Pushed 47 files in 1.74s Theme updated @ i5kn71-aw.myshopify.com
Pulling from i5kn71-aw.myshopify.com · Live
0 / 38 files · downloading …
config╰─  settings_data.jsontemplates├─  index.json╰─  product.jsonlocales├─  en.default.json╰─  fr.json
 Downloaded 38 files in 1.20s Wrote to ./ · in sync with Live
:push
tab filter stream! problemse expand detailsc clearo open browser
space togglea alld diffenter push
tab switch panej/k navigatespace togglep pull selected

Run osmose dev.

product-card/server.liquid
  title: "{{ title | default: 'Aurora Tee' | escape }}"  price: {{ price | default: 39 }} <h3>{{ title }}</h3><p class="price">${{ price }}</p>
i5kn71-aw.myshopify.com
New

Aurora Tee

$39

Add to cart
saveserver.liquid compile11ms uploadGraphQL · 52ms wssection update render84ms · no reload

Save. The section updates live.

dist/sections/product-card.liquid · compiled
<section class="product-card">  <h3>{{ section.settings.title }}</h3>  <p class="price">${{ section.settings.price }}</p></section><island-element load="idle" asset="add-to-cart.js">{% schema %} { "name": "Product card" } {% endschema %}

Compiles to a plain Shopify theme. No runtime lock-in.

Osmose

The world’s first framework for Shopify Liquid.

$ curl -fsSL https://get.osmose.sh/install.sh | bash osmose.sh · private beta