SectionsBundlesPricingFAQBlogAboutContactContactInstall on Shopify

Everything we've shipped.

A running log of what's new in Modulo — sections, blocks, bundle improvements, and the occasional fix. For what's next, see the public roadmap.

fix

Cart updates now show without a refresh

Adding from a Modulo product section now updates your theme's cart drawer, badge and cart page immediately, on Horizon and Dawn-family themes alike.

Read
Total shipped
116
New
64
Improved
30
Fixes
22
September / 2026

September

4 shipped
fix

Cart updates now show without a refresh

Adding from a Modulo product section now updates your theme's cart drawer, badge and cart page immediately, on Horizon and Dawn-family themes alike.

Adding a product from a Modulo section put the item in the cart, but on some themes nothing on the page changed until the shopper reloaded — the drawer could even open showing an empty cart while the header badge was already counting the item.

The cause was that our cart code only spoke Dawn's language. It looked for Dawn's cart elements, asked Shopify to re-render sections by Dawn's names, and announced the change with events Dawn listens for. On a Horizon storefront none of those exist, so every one of them did nothing — silently, because Shopify answers a request for a section that isn't there with an empty result rather than an error.

What changed:

  • Section names now come from your theme, never from us. We ask your own cart components which sections they need, or read the section id straight off the page, so a theme that renames or moves its cart still refreshes correctly.
  • Horizon and other current themes are now spoken to directly, using the event their cart components actually listen for. That drives the cart badge, the "items in cart" announcement, the drawer opening, and — the part that was most visible — the cart contents themselves.
  • The cart count is read from the cart, not guessed from the item just added. A shopper holding three items who added one could previously see the badge drop to one.
  • Product Buy Box adds in place. It used to hand the click to the theme and hope; it now adds without a page load and refreshes the cart itself, while still working with JavaScript switched off.
  • Opening the cart never navigates you away. On stores whose cart is a page rather than a drawer, a quick add updates the count and leaves the shopper where they were.
  • On Horizon, your theme's "auto-open cart drawer" setting now decides whether the drawer slides open after a Modulo add, exactly as it does for your theme's own Add to cart button. Previously nothing opened at all on Horizon; now the choice is yours, in one place.

This affects Product Buy Box, Product Quick Buy, Product Shelf, Product Picks, Shop Tabs, Featured Products, Product Grid, Product Stage, Product Showcase, Shoppable Video and the Bundle block. Open the Sections catalog and choose Update to latest on any of these you have installed; your settings are kept. The Bundle block updates on its own with the app, nothing to do there.

Verified against two live Horizon 4.1.4 storefronts before release, with the theme's own cart components doing the measuring.

fix

Header Pill: pages could stop scrolling until you reloaded

With the cart drawer open, anything that re-rendered the header left the page locked and unscrollable with nothing on screen to explain it. The lock now releases itself, and the sticky repair no longer interferes with your theme.

A merchant told us that with our header enabled, their store would stop scrolling as they moved between pages, and the only way to get it back was to reload. Turning the header off fixed it.

They were right, it was our bug, and there were two of them.

The page could be left locked with nothing to explain it

When you open the cart drawer, the header locks the page behind it so the drawer scrolls instead of the page underneath. That is correct, and every store does it.

The problem was who owned the lock. It was applied and removed by one piece of code tied to that one copy of the header. If anything replaced the header markup while the drawer was open, that code disappeared and the lock stayed behind.

Plenty of ordinary things replace the header. A theme with page transitions does it on every navigation. A theme or app that refreshes the cart count does it too, and our own quantity buttons trigger exactly the kind of cart event that such code listens for.

The result was a page that could not be scrolled, with no drawer visible to close and nothing on screen to explain it. Only a reload cleared it.

The lock is no longer owned by anything. It is now worked out from the page itself: is there a cart drawer open right now, with working controls behind it? Nothing is remembered, so nothing can be left behind. If a re-render leaves a drawer that only looks open, it is closed rather than trusted, so you can never be stranded behind a drawer that will not respond.

The sticky fix was interfering with themes

The repair we shipped last week to keep the header sticky was too heavy handed with the rest of the page.

If a theme was in the middle of an animation, our repair cancelled it outright and never put it back. On themes that unlock scrolling when their page animation finishes, that animation now never finished, so the page stayed locked. A short animation like that ends on its own in half a second, so the header now simply waits it out instead of interfering.

It could also switch off scrolling on themes that scroll an inner container rather than the page, because it was looking for one specific Shopify theme's naming and walked straight past everything else. It now recognises the general pattern, never touches the part of the page that does the scrolling, and undoes anything that did not actually help.

What to do

Open Header Pill in the app and choose Update to latest. Your settings are kept. The same update applies to Header Commerce, which shares the sticky code.

fix

Transformations: Image shape and Card size now work on phones

The section's two top settings did nothing below tablet width, and picking Landscape stopped the two photos overlapping on mobile entirely. Both now follow your settings at every screen size.

A merchant told us the Transformations section was not mobile optimized. They were right, and the cause turned out to be more specific than a layout that needed tidying.

What was going on

The two settings at the very top of the section — Image shape and Card size — were being ignored on every phone and tablet. Not partially: at 320px wide, Card size 50%, 60% and 72% all rendered exactly the same 215px card. You could drag that slider all day and nothing would move.

The reason is that the section's mobile rules were written with fixed numbers baked in, which quietly painted over whatever you had chosen. Above tablet width your settings applied normally, so the section looked correct in the theme editor on a desktop and then didn't match on a phone.

The second half is the part that actually breaks the design. The two photos are pinned to the top and bottom of a frame, so the shape of that frame is what decides how much they overlap. The fixed numbers replaced the frame's shape but left the photos' shape alone, and those two are meant to move together. With Landscape selected, the result on every phone was that the two photos stopped overlapping at all — two separate rectangles with a gap between them, and the hand-drawn "from this / to this" arrows pointing at nothing. On a before-and-after section, that is the whole point of the section gone.

What we changed

The mobile rules now derive the frame from your settings instead of overriding them. We worked out the relationship between the frame shape, the photo shape and the card size that produces the overlap, and let the section solve it for whatever you have picked — so the composition now holds at every shape, every card size and every screen width.

Two things worth saying plainly:

  • If you have this section installed and haven't changed those settings, nothing about it will look different. We pinned the new calculation to the exact values the default already produced, so a default install renders identically. What changes is that the other options now do something.
  • The gap beneath the photos now grows with Card tilt. At the highest tilt setting the lower photo used to land about 6px on top of the heading.

How to get it

Open Modulo → Sections in your Shopify admin. The Transformations section will show Update available — click Update to latest. Your settings are kept.

Our test for this measures the real section in a real browser across nine shape-and-size combinations and twelve screen widths, 1,386 checks in total. We also run it against the old code deliberately: 93 of those checks fail there, which is how we know the test is measuring the actual problem and not just agreeing with itself.

fix

Preview windows that opened off to the side

On some machines every preview and confirmation window in the app opened half a screen to the right, with its right-hand column off the edge. The app now measures each one and corrects it.

A merchant sent us a screenshot: they clicked a section to read more about it, and the preview opened jammed against the right edge of the app, with the whole right-hand column (the description, the install button) off the screen entirely. It happened every time, in two different browsers.

What was going on

Every window of this kind in the app is Shopify's own modal component, and it centres itself using a value that Shopify's code fills in. On this merchant's machine that value never arrived.

The way CSS handles a missing value here is unforgiving: it does not fall back to something sensible, it throws the whole instruction away. So the modal kept the first half of its positioning and lost the second, which parks it with its left edge on the middle of the screen. That is exactly what the screenshot showed, and nothing else produces it.

We cannot see why the value failed to arrive on their machine, and we may never be able to. So we stopped trying to.

What we changed

The app now measures each of these windows just after it opens, and again if you resize. If it is centred, nothing happens at all. If it is not, the app works out the exact correction needed from the window in front of it and applies that.

Two details worth stating, because both were mistakes we made first and caught by measuring rather than by reading the code:

  • The correction is derived, never assumed. Our first attempt used the obvious value, half the window's width. The real one carries an extra offset, so that version would have moved the modal from badly wrong to slightly wrong, which is arguably worse. It now works the number out each time, which also means it stays correct if Shopify changes theirs.
  • If neither repair reaches it, the app puts everything back rather than leaving a second wrong position stacked on the first.

This is in the shared shell behind every modal in the app, so it covers section and block previews, the theme picker, update confirmations and the billing screens, not just the one that was reported.

Nothing to do

The fix is in the app itself, so there is nothing to install or update. If you saw this, it should simply be gone.

Our own test for it runs 17 checks built on real measurements taken from a live store. Five of them fail if we go back to assuming the value instead of measuring it, which is the part that stops this quietly coming back.

August / 2026

August

12 shipped
fix

Sticky headers: the five ways it was still breaking

Our first sticky fix covered six theme behaviours. It needed to cover thirteen. Both headers now survive all of them, and the overlay header can no longer be clipped away or buried.

We shipped a sticky-header fix three days ago. It was real, and it was not enough: a merchant came back with the header still scrolling away. They were right, and the reason is worth writing down.

Sticky is two things in a row. Our JavaScript adds a class when you scroll, and CSS pins the bar with position: fixed. The second half only works while no ancestor element has quietly become what the spec calls a containing block, and your theme owns two of the three wrappers our header sits inside. The first fix detected that and repaired it. What it missed was when and how many.

What was still broken

  • content-visibility on a theme wrapper breaks the pin, and it is invisible to the obvious check: it applies containment without ever changing the contain property we were reading.
  • translate, rotate and scale are separate properties from transform. Each one breaks the pin on its own, and we were only reading transform. Same for transform-style and offset-path.
  • A running transform animation keeps the containing block alive even after our repair has won the cascade. The animation itself has to stop.
  • Timing. The repair ran once, on the first scroll. A theme that adds a transform later, when a mobile menu opens or its own sticky-header script runs, broke the pin permanently and was never re-checked.
  • Themes that do not scroll the page. Some themes and smooth-scroll scripts scroll an inner container instead of the document. We read the page's scroll position, which stays at zero forever, so the header never became sticky at all and there was nothing for the repair to fix.

All five are fixed on Header Pill and Commerce Head.

The overlay header could be there and invisible

If you use "Sit over the first section", the header is positioned inside a wrapper with no height. An ordinary overflow: hidden in your theme clipped it away completely, and a hero section with a high enough stacking order painted right over it. In both cases the header was in exactly the right place and showed nothing, then appeared as soon as you scrolled. Both are now detected and repaired.

We also reworded that setting. It removes the space this header takes up, not your theme's. If your theme's own header or announcement bar is still switched on, hide those first or the pill sits underneath them instead of on your hero.

Getting it

Open Header Pill or Commerce Head in the app and choose Update to latest. Your settings are kept.

Our own test for this now runs 112 checks across both headers, and 52 of them fail if we remove the repair, which is the part that stops it quietly rotting again.

fix

Colour settings now beat your theme

Colour settings were being overridden by the theme in 200 of our sections. All of them now hold. Plus: Coverflow's title shadow is a switch.

Two merchant reports this week turned out to be the same bug, and once we measured for it properly we found it in 200 of our 229 sections. All of them are fixed.

Promo Mosaic: the colour pickers now actually work

Every colour setting in Promo Mosaic could be dead depending on your theme. You would pick a colour for Text on photos, save, and the tile headline stayed whatever colour your theme paints headings.

It was not a Promo Mosaic setting problem, it was a cascade problem: the section handed the headline its colour by inheritance, and an inherited colour loses to any colour a theme sets directly on h2 / h3, which nearly every theme does. The same thing was happening to the section heading, the eyebrow, the subheading, the header link, the tile pill and its label.

There was a worse one hiding behind it. The whole tile is a link, and on a theme that gives links a background and a border, that link painted a grey box over the photograph.

All of it is fixed, and pinned by a test that renders the section under a deliberately hostile theme stylesheet and checks the pixel a shopper actually sees against the colour you picked. 772 checks, in every text position, at every breakpoint, with the header on and off.

Coverflow: the title shadow is now optional

The soft black shadow behind slide titles was hardcoded, so there was no way to turn it off. Image overlay → Soft shadow behind the title now switches it.

It ships on, so nothing changes on your storefront until you turn it off. The same switch was added to Coverflow Hang, and the colour setting confusingly labelled "Title text" is now labelled "Title color". It was always a colour picker, never a place to type the title. (Slide titles are typed on the slide itself, under Title.)

Every other section, too

Once we understood the mechanism we tested the whole library for it, with a deliberately hostile theme stylesheet loaded alongside each section. 200 sections had it somewhere: a heading, a price, a button label, a caption. 204 of 222 now hold, against 22 before we started.

Nothing about how your sections look has changed. Every stylesheet was rendered before and after at five screen widths, comparing 45 style properties and the exact position and size of every element, and only kept where that came out identical. What changed is which stylesheet wins the argument with your theme.

One thing to know if you write your own CSS: our section styles now win against your theme by being more specific, and an override of yours written as .modulo-xx .modulo-xx__thing is now only as specific as ours, so it may no longer win. Add one more class to the front of it, or !important, and it does. If we ever sent you a snippet and it stops working, reply to this and we will rewrite it for you.

Sections you already installed show Update available in the app. Updating keeps your settings.

fix

Headers now stay put in every theme

Header Pill and Commerce Head could quietly stop sticking on some themes. They now pin to the top wherever they are installed.

If you turned on Stay visible and your header still scrolled away with the page, this was the reason, and it was not something you could have fixed in the settings.

A header that stays on screen is pinned to the top of the browser window. That pin only works if nothing wrapping the header claims the top of the window first. Themes wrap every section in their own containers, and some of them apply effects to those containers, usually for a scroll animation or a rendering speed-up. When a theme does that, the pin quietly re-points at the container instead of the window, and the header rides up out of view exactly as if sticky had never been switched on.

Nothing looked wrong from inside the theme editor. The setting was on, the header was correct, and it simply did not stick.

Both headers now check, the moment they first stick, whether the pin is actually holding. If something above them has taken it over, they release just that one thing on the nearest container responsible and stop there, so the rest of your theme is left alone. On a theme that was never affected, nothing changes at all.

Open Header Pill or Commerce Head in the app and click Update to latest. Your settings are kept.

fix

Category Cards arrows no longer depend on the header

Turning off the section header used to silently switch off the arrows and the counter as well, even with 'Show arrows' left on.

On Category Cards, the arrows and the slide counter were rendered inside the section's header row. Turning the header off removed that row and took both of them with it, so a store running the cards with no heading had "Show arrows" switched on and no arrows anywhere, with nothing in the theme editor to explain why.

Show arrows and Show counter are now their own settings, exactly as they read. With the header off, they get a row of their own above the cards, keeping the same right-hand placement (centred if the section's alignment is set to centre). With the header on, nothing changes.

Two smaller consequences of the same fix:

  • The thin progress track that appears under the cards existed only to give desktop some way to tell the rail scrolls when there was no nav at all. It now stands down when arrows are showing, instead of being drawn beside them.
  • Below 860px the behaviour is unchanged: phones swipe the rail and show the progress track, and no empty band is left where the arrows would have been.

Open the app, go to Sections, and choose Update to latest on Category Cards. Your existing settings are kept.

fix

Coverflow: the text colour settings now actually apply

Title colour, button colour and arrow colour were being overridden by the theme's own styling. They now hold, on every theme.

If you changed Title text on Coverflow and nothing happened on your storefront, that was a real bug, not something you were doing wrong.

The section handed the title colour down from its wrapper instead of setting it on the title itself. In CSS, a colour that is inherited loses to any colour a theme sets directly, no matter how specific ours is, and practically every Shopify theme sets a colour on headings. So the theme won and your setting did nothing. The one thing that did work was the highlight colour on bolded words, because that one was set directly, which is exactly why the section looked like it was half listening to you.

The same thing was happening to two more controls you would have had no reason to connect to it:

  • Button outline & label lost to the theme's link styling, so the button rendered in the theme's link colour, often inside the theme's own grey box.
  • Arrow background and Arrow icon lost to the theme's button styling, so the arrows kept the theme's colours whatever you picked.

What changed

Every colour is now set on the element that paints it, at a strength that clears the theme. Nothing about the settings changed, so your existing picks are still there and simply start showing up.

Two notes on what you will see after updating:

  • The title will switch from your theme's heading colour to whatever Title text is set to. On a fresh install that is white, which is what the section was designed for, since the title sits on a photo. If you had been relying on the theme's colour, set Title text to match.
  • Use theme font is untouched. With it on, the title still uses your theme's heading font. Only a font you pick yourself now overrides the theme.

The label on the title colour setting also said "Title & button text", which was never true, the button has always had its own control. It now just says "Title text".

Coverflow Hang too

The same fix went into Modulo: Coverflow Hang, which shared the same code.

Getting the update

Open Sections in the app, find Coverflow on your installed list, and choose Update to latest. Your slides, images, links and colours are kept, only the section code is replaced.

Thanks to the merchant who reported this. If a setting on any section does not seem to do anything, tell us, the chat at the bottom right reaches us directly.

fix

Product Feature — fixed a €0 price on multi-variant products

Products whose variants have different prices showed 0 instead of the 'From' price. Now fixed.

In the Product Feature section, a product whose variants are priced differently showed its price as zero rather than a "From" price. Products with a single price, or with a variant picker on the card, were never affected.

The fix is live in the section itself, so it arrives with Update to latest on the Product Feature card in your Modulo catalogue. Your existing settings are kept.

fix

The card photo now follows the variant picker

On Product Picks, Product Shelf and Shop Tabs, the product photo now matches the variant selected in the dropdown, and changes when the shopper changes it.

If a card on Product Picks, Product Shelf or Shop Tabs showed one variant's photo with a different variant's name in the dropdown beside it, that was a real bug. Changing the dropdown did not update the photo either.

Both halves are fixed.

On first paint, the card now renders the photo belonging to the variant the picker actually opens on. It previously rendered the product's featured image, which Shopify defines as the first photo attached to the product and which never reflects a variant. Those two only lined up by luck.

When a shopper changes the variant, the photo, its responsive sources and its alt text all swap with the price. A variant with no photo of its own falls back to the product photo rather than going blank, which is the normal state for something like a size run.

The card's link follows the picker too, so a shopper who chooses a variant and then opens the product page lands on that variant.

Nothing to configure and no new settings. Open the app, go to Sections, and choose Update to latest on any of the three. Your existing settings are kept.

fix

Quantity on every product card

Product Shelf and Product Picks now show a size box and a quantity box side by side, so a shopper can buy three of something that has options.

Product Shelf and Product Picks put one dropdown on each card, and what it did depended on the product. A product with options got a size picker and no way at all to change the quantity, so buying three meant pressing Add to cart three times. A product with no options got a quantity picker instead, labelled things like "5KG x 1".

Two different jobs in the same slot. Side by side in one row it read as though the picker had broken on half the cards, which is exactly how it was reported.

Two boxes, on every card

The size and the quantity are now separate controls. Every card has both, so nothing about the row changes from one product to the next, and every product can be bought more than one at a time.

Cards that are wide enough put the two boxes side by side. Narrower cards, and phones, stack them so both stay comfortable to tap. Whichever it picks, it picks the same for every card in the row, so the Add to cart buttons still land on one line.

A product with no options keeps showing its size where the size picker would be, so nothing is lost.

The quantity list follows the size

If you track stock, the quantity list only offers what you actually have. Change size and the list changes with it, and a quantity that is now too high comes down on its own. Shoppers cannot pick a number that would be turned away at the cart.

Take the update from the Sections page to get it.

fix

Category Slider — readable buttons, logo-friendly cards

The button label no longer disappears when you hover a card, and cards can now fit a logo instead of cropping it.

On a store with light text on a dark section, hovering a category card made the button label vanish. The button filled with your Text colour and then printed the label in white on top of it, so if your Text colour was white, the label was white on white. Nothing looked broken until you moved the mouse over a card.

That is fixed, and the fix is structural rather than a one-off patch: the hover colours are now decided as a pair instead of one being fixed in advance.

The new hover setting

Under Slide button there is now a Hover effect control:

  • Swap colors (the new default) — the button's own two colours trade places. Because it reuses the pair you already picked, the label stays exactly as readable on hover as it is at rest, whatever two colours those are.
  • Fill with accent or Fill with text color — the label colour is worked out from the fill, so it can't collide with it.
  • Custom colors — pick the hover background and hover text yourself.
  • No color change.

The same problem existed at rest on the header button when its style was set to Solid: a light Text colour gave you a white button with a white label. That is fixed too, and needs no setting.

Cards for logos and packshots

Three more additions, aimed at stores whose category images are logos or product cut-outs rather than lifestyle photos:

  • Image fitFit inside the card keeps the whole image visible instead of cropping its edges away. Fill the card stays the default.
  • Card background — the colour behind the image, which is what a fitted logo rests on.
  • Shade the bottom of the photo — on by default, since it is what keeps the button readable over a light photo. Turn it off and the grey wash at the bottom of the card goes away, which is usually what you want for a logo on a plain card.

Also fixed

  • A long category name is now shortened with an ellipsis instead of running off the edge of its button.
  • The eyebrow and subheading now stay properly muted on dark sections, rather than rendering the same colour as the heading.
  • Cards with no link are now reachable with the keyboard.

Getting the update

Open Sections in the app, find Category Slider on your installed list, and choose Update to latest. Your headings, colours, images and links are kept — only the section code is replaced.

Thanks to the merchant who spotted the hover problem on their own store. If you see something off on your sections, the chat at the bottom right reaches us.

fix

Product Lineup: the name and price are back on mobile

Phones were being served the desktop hover state, so cards showed no product name and no price. Fixed, plus a new option to put the caption under the photo.

On a desktop, a Product Lineup card shows the rating, name, price and tagline over the photo, and swaps them for the buy button when you hover.

Phones have no hover. They were being handed that hovered state permanently, so every card on a phone showed the buy button and nothing else — no product name, no price, no rating. That's now fixed. On a phone the caption and the button are both visible, at rest, at the same time.

New: choose where the caption sits on mobile

Under Mobile in the section settings there's a new Mobile card layout option:

  • On the photo (matches desktop) — the default, and what your section does now that the caption is no longer hidden.
  • Under the photo — the caption moves off the image onto the card below it, the way most beauty and skincare stores lay out their mobile product cards.

If you pick Under the photo, the text colour is worked out automatically from your Card background so it stays readable, whatever colour you choose. The buy button gets a thin outline if its own colour would otherwise disappear into the card.

Also fixed: your product photo no longer vanishes

Hover photo was always optional, but if you left it empty the card still tried to cross-fade to it — and landed on a grey Modulo placeholder instead of your product. That happened on hover on desktop, and permanently on phones.

Now a card with no hover photo simply keeps the photo you uploaded. If you did upload a hover photo, nothing changes.

Getting it

Open Sections in Modulo, find Product Lineup, and choose Update to latest. Your settings are kept exactly as they are.

Thanks to the merchant who reported this and stayed patient while we chased it down. If something looks wrong on your storefront, the chat at the bottom right reaches us.

fix

Heading size and header spacing you can actually change

Two settings in Video Social, Video Minimal and FAQ Pills were being overridden by the stylesheet on smaller screens. Mobile heading size now responds, and there is a new control for the gap between the header and the content below it.

Merchant-reported, and worth explaining because the shape of the bug is a useful one to know about.

The heading that would not change size

In Video Social and Video Minimal, the Heading size slider goes from 26px to 72px. On a phone it did nothing at all. Every value produced the same result, around 35px, because the stylesheet was setting its own fixed size below 480px rather than reading yours.

There is now a separate Heading size (mobile) control, so phones and desktop can each get a size that suits them. The desktop slider keeps working from tablet width up, exactly as before.

If you had been fighting this one, you were right, it was not you.

A gap you could not adjust

The space between the header and the content underneath it was baked in: 40px in the video sections, 44px in FAQ Pills. Some layouts want it tighter, some want room to breathe, and there was no way to ask.

Space below header is a new setting in all three sections. Set it to 0 to pull the content right up under the heading, or open it up to 96px. It scales down on smaller screens on its own, so you set it once and it stays sensible on a phone.

FAQ Pills had the same problem waiting one layer deeper, with a second fixed value for mobile that would have quietly cancelled the setting out. Both are fixed.

Getting it

Open Sections, find any of the three, and choose Update to latest. Your existing settings and content are kept. If you had never touched these sections, everything looks exactly as it did, with two more controls available.

fix

Fixed: popup sections printed stray font code on the page

Four popup sections leaked their font styling onto the storefront as visible text. The styling is now applied properly instead of printed. Also fixed: removing a section no longer deletes a file that another installed section still runs on.

Four popup sections were writing their font styling into the page as ordinary text rather than as styling. The result was a block of code sitting on the storefront, usually near the top, starting with @font-face and naming the two fonts the popup uses.

It looked like a broken page. Nothing was actually broken underneath, and the popup itself still worked, but the stray text was visible to shoppers on every page the popup was enabled on.

The affected sections are Promo Popup, Signup Popup, Popup Studio and Reveal Popup. The styling is now applied the normal way, so the text is gone and the fonts still render exactly as configured.

Picking up the fix

Sections are installed as a copy in your theme, so this does not reach you on its own. Open the section in the Modulo catalog, and where it says Update available, choose Update to latest. Your settings, colours, text and images are kept: only the section's code is replaced.

If you had hand-edited the section file in your theme's code editor, that edit is replaced by the update.

Also fixed: removing a section could fail, or take a sibling down with it

Some sections share one engine file. The five countdown and sale sections all run on the same countdown script, and the stats, news, blog, feature and video pairs each share one too.

Removing one of those sections used to delete that shared file, which left the other sections still on your theme without the script they run on. It could also fail outright with a "file does not exist" error, if a shared file had already been removed that way, leaving a section you could not remove at all.

Removing a section now keeps any file another installed section still needs, and removes only what nothing else is using. If a file is already gone, removal finishes cleanly instead of erroring.

July / 2026

July

1 shipped
fix

Fixed: Product Slider now shows your real products

Product Slider was showing its example products instead of the ones from your collection. It now reads your collection and hand-picked lists correctly. Update the section to get the fix.

Product Slider had a bug that made it show its built-in example products — the placeholder tiles you see before setting anything up — even after you picked a collection. Hand-picked product lists were affected the same way.

This is fixed. The section now reads your collection and your hand-picked lists as intended.

If you already have Product Slider on your store, open the section catalog in the app and choose Update to latest on it. Your settings are kept — only the section's code is replaced.

Apologies for the noise on this one. Product Slider shipped on 7 July, so any store that added it in the last week was affected.

Read more
June / 2026

June

4 shipped
fix

Add to cart now refreshes the cart reliably on more themes

On themes that use a cart 'notification' popup (instead of a slide-out drawer), adding a multi-item bundle, upsell, add-on, or sticky-bar item could leave the popup looking empty. The cart now updates correctly on those themes.

The cart popup no longer comes up blank. Some themes show a small cart notification popup after Add to cart, rather than a slide-out drawer. When a shopper added something that creates more than one cart line at once (a volume bundle with a free gift, a multi-pick add-on, or an upsell), that popup could open empty or stale, even though the items were correctly in the cart. The underlying cart was always right; only the confirmation popup looked wrong.

What changed. Modulo now hands the theme the cart details in exactly the shape it expects for a multi-line add, so the theme can paint the popup with the product that was just added. We also tell the theme which page the add came from, so the cart icon and contents render in the right context.

Where you'll see it. This affects the cart refresh after Add to cart for Bundles, Upsell, Add-ons, and the Sticky Add to Cart bar, on themes that use a cart notification popup. Drawer themes were already working and are unchanged.

Nothing to configure. If you have these blocks installed, re-publish to pick up the update.

fix

Bundles always start on your lowest offer

Volume bundles now always open with the lowest-priced offer pre-selected. Shoppers choose a bigger pack themselves, so the cart never picks up extra units they didn't ask for.

Volume discount bundles now always open with your lowest-priced offer selected first. Shoppers see the smallest pack ticked, and they choose to size up themselves — so adding to cart never charges for more units than they expect.

What changed

  • The pre-selected offer is now always the lowest-priced one. The per-offer "pre-select" control is gone — there's nothing to set, and a pricier pack can't be pre-ticked by mistake.
  • Your "Most Popular" and "Best Value" badges still draw the eye upward. They're visual ribbons, not a pre-selection — the shopper's tap on a bigger pack is what sizes the order up.
  • On the storefront, the quantity a shopper sees always matches what lands in the cart.

This keeps your bundles aligned with Shopify's requirement that any added charge be a clear, deliberate shopper choice. Nothing to do on your end — existing bundles pick up the change automatically.

Read more
fix

Upsell — no longer leaks into quick-view popups

Themes with a quick-view popup could show a stray copy of the Upsell block inside the popup — an unstyled heading with no products under it. The block now stays out of quick views entirely.

Many themes (and quick-view apps) build their popup by copying the product page's HTML into a small window. That copy carried the Upsell block's markup along with it — but not its styles or scripts — so the popup could show a lone, unformatted heading (your custom heading text) with no products underneath.

This is fixed. The Upsell block now only renders where its own assets are loaded, so quick-view popups stay clean. Your product page is unchanged: same look, same behavior, nothing to reconfigure.

If you spotted a stray text line in your quick view, it disappears automatically with this update — no action needed.

fix

Setup checklist now counts sections — and every step is clickable

The Finish setup checklist now recognizes installed sections, not just app blocks — so it stops sending you to install something you've already added. Every step is also a direct link now.

"Continue setup" no longer misroutes. The Finish setup checklist used to mark "Install first block or section" complete only when it spotted an app block — installed page-builder sections didn't count. If you'd added a section, the step stayed open and "Continue setup" kept sending you back to the catalog. It now counts sections too, and reflects them right away.

Each step is clickable. Instead of one "Continue setup" button that only ever points at the next task, every step in the checklist is now its own link — so you can jump straight to any of them, including ones you've already finished (handy for a quick look back). Finished steps stay checked off but remain clickable until you dismiss the checklist.

A more consistent look. The checklist and the "How are we doing?" prompt now share the dashboard's navy button style, so the buttons read as one family.

May / 2026

May

1 shipped
fix

Bundle reliability fixes

Free gifts now land in cart for every gift product; Add to Cart is hardened against accidental double-fires.

Two reliability improvements for Volume Bundles.

Free gifts always land in the cart. Products without an exposed primary variant (archived items, drafts, hidden-variant products) could slip into the gift picker. The picker now refuses them, and existing bundles repair themselves on the next save.

Add to Cart is double-fire safe. The bundle widget latches against re-entry, so one click never triggers more than one cart add — no matter how the theme wires the button.

Both fixes apply automatically on the next version push.

Want to shape what we build next?

Vote on the public roadmap, submit a request, and follow active threads.

Open roadmap