The LocalStorage Wishlist Philosophy: Can Browser First Really Replace Bloated Apps?

I was on a mission to slim down client stores after Horizon nuked half the app stack. So i started with wishlist apps - many of which broke or started charging more when theme APIs changed. I went hunting for tutorials, but most tutorials, videos were sexy UI, zero substance, and a punch line that quietly links back to their paid app. So let’s talk honestly about what browser only wishlists can and can’t do.

Why I Even Considered LocalStorage App bloat fatigue:

  • Clients were paying $$/month for an iframe that wrote to localStorage anyway.
  • Performance focus: Every extra script was wrecking their CLS and TTFB scores.
  • Horizon reality check: Native metaobjects + Functions already ate half the app
    market; wishlists felt like low-hanging fruit.

What the Tutorial / How to video Ignores

  • No engine under the hood: LocalStorage doesn’t sync across devices. Great demo; terrible CRM.

  • Zero marketing hooks: No automated “your wishlist item is back in stock” emails.

  • No admin dashboard visibility: Support team can’t see or edit customer wishlists.

  • Storage limits & cleanup: Browsers cap at ~5-10 MB; you need purging logic or things break.

Some store owners gloss over these because a one-line “heart-icon” demo looks good on a store , until a real customer asks why wishlists vanish when customers switch from phone to laptop.

Some real world Questions

  1. Have you noticed whether your customers stick to one device for shopping or bounce between phone/desktop?

  2. Does anyone track conversion rates on wishlist items? Are we over-engineering a “nice to have” feature?

  3. What’s your take on privacy vs. convenience trade offs in 2025?

The localStorage approach challenges the assumption that every customer interaction needs to be tracked and synced. Sometimes simpler is actually better, but context is everything.

Here is the demo of what i have build so far - pw : zerobloat

Hi @lixonic ,

This is a refreshingly grounded take on the wishlist debate—thank you for cutting through the noise. Let’s break this down and respond to your core points.

The Case for LocalStorage Wishlists

You nailed the core motivations:

  • Performance: Cutting bloated scripts does improve CLS/TTFB.

  • Cost: Many apps do little more than decorate localStorage anyway.

  • Simplification: With Shopify’s new stack (metaobjects, Functions, theme extensibility), much of what apps did is now native.

If your wishlist:

  • Doesn’t need to persist across devices

  • Doesn’t require marketing automation

  • Is just a UI/UX “booster”

…then localStorage is totally valid. Lightweight, performant, and no vendor lock-in. A solid MVP for small stores or specific audiences.

But What Browser-Based Wishlists Can’t Do

Your list is spot-on, especially:

  • No cross-device sync: This alone kills it for higher-AOV brands.

  • Zero email triggers: You lose major remarketing potential.

  • No admin visibility: Support teams fly blind.

  • No analytics: You can’t track conversion from wishlist to checkout.

For any store doing serious volume, these missing pieces start to hurt.

Wishlist Use Cases in Real Stores

“Do customers bounce between devices?”

Yes—especially on mobile-first stores with older shoppers. They’ll browse on phone, but buy on desktop.

If wishlists vanish between devices, conversion dies.

“Are we over-engineering a nice-to-have?”

Maybe. Wishlists are rarely a primary conversion tool—they’re more about:

  • UX polish

  • Nudging return visits

  • Reminding users of liked-but-not-purchased items

But if you don’t have email automation or analytics, then yeah—why overbuild it?

“Privacy vs. convenience in 2025?”

Good question. We’re in a post-cookie, post-GDPR world. Some brands are now leaning into zero-tracking as a trust signal.

A localStorage wishlist aligns with that: no tracking, no data-sharing, full control.

A Pragmatic Recommendation

Go LocalStorage if:

  • You’re focused on speed + simplicity

  • You serve lower-commitment products (e.g. apparel, fast fashion)

  • You want a wishlist as a UI layer, not a growth engine

Go App/API-based if:

  • Your product requires research (tech, furniture, B2B, etc.)

  • You’re doing email automation or remarketing

  • You want internal tools to manage customer intent

A Hybrid Wishlist Model?

Some devs are experimenting with:

  • LocalStorage as default

  • Account-based sync opt-in (if user logs in, wishlist syncs via custom metafields or metaobjects)

  • Soft CRM hooks: Save list via email (with explicit opt-in)

This way you:

  • Get performance for casual users

  • Unlock sync + analytics for engaged users

It’s not trivial, but it’s also not hard if you’re already working with customer accounts.

Final Take

Browser-only wishlists aren’t just a technical decision—they reflect your brand’s stance on data, performance, and user expectations. If you’re building lean, fast, and privacy-first, it’s a win.

But don’t pretend it’s more than it is: it’s a good first step, not a scalable foundation.

1 Like

I have already implemented the hybrid approach @mageplaza-cs
https://zerobloat.myshopify.com/ pw : zerobloat

Every other premium/free app you install makes your store slower and costs you money every month. A native wishlist does the exact same job without either problem.

It works perfectly with Shopify’s new customer account system. Features localStorage for instant performance + manual sync to customer metafields for cross-device access.

  • Faster browsing = more products viewed = more sales
  • Instant wishlist saves = less frustration = happier customers

How It Works:

  1. Primary Storage: Items stored in localStorage for instant access

  2. Manual Sync: User clicks “Save to Account” > Syncs to customer metafields via Serverless Function (Vercel)

  3. Cross-Device: Load saved wishlist from metafields on any device

  4. Data Persistence: Permanent storage in customer account (GDPR-compliant)



What my clients said earlier.

“I had 14 apps installed but only really use 3. My site loads like molasses.”

“Every time I add an app, my speed score drops. Every time I remove one, it leaves broken code behind.”

“I’m paying $200/month for apps that do basic things Shopify should just include.”

“Half my apps do the same thing slightly differently. It’s chaos.”

Future plans using Shopify Flow

Customer Behavior Automation

Marketing Automation

  • Segmentation: Tag customers based on wishlist categories
    (high-value items, sale items, specific collections)
  • Cross-selling: Suggest complementary products based on wishlist
    contents
  • Seasonal Campaigns: Trigger campaigns when wishlisted items align
    with holidays/seasons
  • VIP Treatment: Auto-apply discounts for customers with high-value
    wishlists

Inventory Management

  • Low Stock Alerts: Internal notifications when wishlisted items are
    running low
  • Demand Forecasting: Track wishlist additions to predict product
    demand
  • Restock Priorities: Prioritize restocking based on wishlist
    popularity

Advanced Personalization

  • Dynamic Collections: Auto-create collections based on
    most-wishlisted items
  • Personalized Homepage: Show wishlisted items or similar products on
    return visits
  • Product Recommendations: Suggest Product based on wishlist
    patterns

Analytics & Insights

  • Wishlist Performance: Track conversion rates from wishlist to
    purchase
  • Product Insights: Identify which products get wishlisted but never
    purchased
  • Customer Journey: Map the path from wishlist addition to sale
1 Like

I’m also Building a Native Loyalty point system with Flow + Metafields

Nice approach! I’m very interested in this kind of implementation. Will this be available as a app?

Just to clarify , @RCosmin are you referring to the wishlist functionality/ loyalty point system , or both? Each of these interacts with products and customer data in unique ways, so one app for all often leads to bloated or generic feature sets.

In my opinion building a private app instead of a public one is often the smarter route, especially since each store’s requirements differ dramatically for example -what triggers loyalty, how wishlist stores, or how product types are handled

I am referring to the wishlist functionality. A private app sounds good but I think that right now it would be a bit over my knowledge level to do it from zero.

@RCosmin happy to share specific examples or architecture based on your needs. check https://zerobloat.myshopify.com/ for contact , pw: zerobloat

Wishlist Abandonment at Scale: Segment, Then Email for Smarter Shopify Automation

Wishlist reminder emails work, when they’re smart. But many Shopify stores waste effort (and annoy customers) by reaching out even after customers already bought what was on their Wishlist. The best brands tag only true Wishlist abandoners, and then deliver a single, high converting campaign weekly or bi-weekly.

Step 1: Tag Unconverted Wishlist Customers with Shopify Flow

Only tag customers who have wishlist products they haven’t yet ordered.

Here’s a Run Code Logic that you can use in Flow:

export default function main(input) {
  const customer = input.order && input.order.customer;
  if (!customer) {
    return { message: "no_customer" };
  }

  // Wishlist as product references
  const wishlist = customer.wishlistProducts?.value || [];
  if (!Array.isArray(wishlist) || wishlist.length === 0) {
    return { message: "no_wishlist" };
  }

  // Gather all product IDs from previous orders
  let purchasedIds = new Set();
  (customer.orders || []).forEach(order => {
    (order.lineItems || []).forEach(item => {
      if (item.product && item.product.id) {
        purchasedIds.add(item.product.id);
      }
    });
  });

  // Find unpurchased wishlist products
  const unpurchased = wishlist.filter(p => p && !purchasedIds.has(p.id));

  if (unpurchased.length > 0) {
    return { message: "has_wishlist" }; // Tag these customers!
  } else {
    return { message: "wishlist_fulfilled" }; // Skip tagging
  }
}

In your Flow, add a condition:

If runCode.message equals "has_wishlist", add tag has_wishlist to customer.

Step 2: Batch Email Your Wishlist Segments for Max ROI

No one likes a series of one-off, “robotic” emails.
Instead, use your new segment for batch, branded outreach

How to execute:

  • In Shopify Admin > Customers > Segments, use:
    customer_tags CONTAINS 'has_wishlist'
  • Create your wishlist email in Shopify Email
  • Send it to this segment.

Run targeting that respects your customers, and your bottom line.
Build your segment, batch with confidence, and watch those recoveries climb.

1 Like

Redesigning the free Horizon Shopify theme with an Instagram-inspired layout. The idea: if wishlists are the wedge, the store should feel like a feed of interests, not just a catalog.

Centering the wishlist makes shopping feel like social browsing, less “add to cart, checkout” and more “follow your tastes/interests, return later.” The screens below show how the UI changes when wishlists are the core interaction.

Key improvements made:

  1. Removed hero section - eliminated the large banner to focus on product content
  2. Instagram-style feed - product posts now look like social media posts with profile headers, engagement buttons, and social interactions
  3. Interactive PDP - comprehensive product detail page with image gallery, size/color selection, quantity controls, and add-to-cart functionality
  4. Stories Section with New Arrivals Indicators with respective collections
  • Kept Heart icon for wishlist/likes functionality
  • Kept Message Icon icon for reviews/comments
  • Kept Send icon for sharing
  • Add to cart as 4th Icon

curious how this feels? - if wishlist sits at the center of the store, does it change how you’d shop?

1 Like

An idea to sync wishlist – have you considered using Shopify Forms to submit this data?

Form is in Shadow root, but it’s open, meaning you can get into it with JS and push your wishlist data json.

  • It can auto-sync submitted data into metafields.
  • It can tag customers upon submission, which may trigger a Flow.
  • It saves each submission into metaobject, so your data is accessible this way as well.

Removes complexity of setting up a custom app.

1 Like

@tim_1 wow, never really thought of it. will give it a try soon. :+1:

@tim_1 it works! Now the customer tagging via Flow automation and custom app/API handling are redundant. The only issue I faced is how to hide the form inputs from the
view effectively :laughing:

zerobloat ( bugs expected)

1 Like

You can push your CSS into form. When shadow DOM is created, app code pulls styles from the window.formStyles and you can add styles there like this from your liquid code.

<script>
  window.formStyles || (window.formStyles = new Map);
  formStyles.set('custom-font-rules', `
      h2 {
        font-family: "Mouse Memoirs", serif !important;
      }
      input#email {
        display: none;
      }
  `);
</script>

This is the form loader code:
https://cdn.shopify.com/extensions/5c56cf0f-6ddd-4b68-8de1-1e0d54a43a20/forms-2249/assets/loader.js

1 Like

Is it ready for production? :slight_smile:

@RCosmin yes. but not planning to do a public app ( not for everyone) , since each store’s requirements differ dramatically and it might not play well with stock themes.

Tinkering around a custom theme based on this philosophy alone - The LocalStorage Wishlist Philosophy: Can Browser First Really Replace Bloated Apps? - #10 by lixonic

Also working on a Content Strategy Framework around if wishlist sits at the center of the store, does it change how you’d shop?

Another idea found in the forum: Birthday/Special Occasion Reminders for Gifting
Should be doable with some Flow, wishlists and Forms to allow people to input dates and link wishlists…
Would need email app so send email reminders though.

1 Like

this idea was disaster afterall :grin:

  1. Infinite Scroll Kills Ecommerce Conversions as in Shopify theme with an Instagram-inspired layout
  2. high engagement ≠ conversions
1 Like

Why do you say that Infinite Scroll hurts ecommerce conversions? After avoiding it for years, I tested it over the past few months (Horizon theme) and I actually feel that users respond better to it. Very few people used to click on page 2, 3 or 4, and most are already used to continuous scrolling from social media.

@RCosmin let me clarify. Infinite Scroll as in Shopify theme with an Instagram/Tiktok-inspired layout.

This theme might work for fast-moving consumer goods (FMCG), cosmetics, or fashion brands that rely on impulse buys; not good for considered purchases (e.g., furniture, electronics), plus it also causes a confusion to traditional/loyal online shoppers who expect a standard grid layout and navigation.

And in SEO context a video-first, infinite-scroll homepage present indexing challenges as far i know.