Competitive Analysis: Marqo Storefront Search vs Rebuy Smart Search
Snapshot date: 2026-04-10
Overview
Rebuy Smart Search is the primary competitive benchmark for our Shopify storefront search widget. Both products provide AI-powered search with customizable product cards, filters, sorting, and pagination on Shopify storefronts. This document compares the two across no-code settings, developer customization, and architecture.
No-Code Settings Comparison
Where Rebuy leads: Search intelligence
| Feature | Rebuy | Marqo | Gap |
|---|---|---|---|
| Keyword synonyms (e.g., "cold brew" = "iced coffee") | Dashboard editor | Not in admin UI | New feature needed |
| Featured/boosted products in results | Dashboard config | Not in admin UI | Merchandising rules needed |
| Search influence weights (per attribute) | Slider per attribute | Not in admin UI | Marqo engine may support natively |
| Excluded terms from search | Dashboard list | Not implemented | New feature |
| Excluded products from search | Dashboard list | Not implemented | New feature |
| Excluded collections from search | Dashboard list | Not implemented | New feature |
| Content Search (pages/blogs in results) | Full feature with tabs, layout, styling | Not implemented | New feature |
| Load More button (continuous scroll + button) | Pagination style option | Not implemented | Pagination mode addition |
| Out-of-stock display preference | Global setting | Not in admin UI | New setting |
| Sort by Best Sellers (with lookback period) | Sort option + config | Not implemented | New sort option |
| Sort by Rating (high/low) | Sort options | Not implemented | New sort options |
Where Marqo leads: Visual customization depth
| Feature | Marqo | Rebuy | Notes |
|---|---|---|---|
| Text styles: 5 groups (vendor, title, price, variant, collections) × 4 properties each | 20 controls | ~4 color pickers only (title, price, sale, compare-at) | Much deeper typography control |
| Card border: radius, width, color, background | 4 controls | Not in no-code | Requires custom CSS in Rebuy |
| Card shadow presets (none/subtle/medium/strong) | Dropdown | Not in no-code | Requires custom CSS |
| Card hover effects (none/shadow/lift/zoom) | Dropdown | Not in no-code | Requires custom CSS |
| Sale badge: position, text format, colors, radius | 6 controls | Not in no-code | Rebuy has sale badges but not configurable from dashboard |
| CTA behavior toggle (navigate vs add-to-cart) | Toggle | Not in no-code (always add-to-cart) | Different approach |
| CTA state texts (adding, added, sold out) | 4 text fields | Not in no-code | Requires custom template |
| Image carousel: arrow style, show mode | 3 controls | Not in no-code | Rebuy has carousel but not configurable |
| Filter styling: 11 controls (bg, radius, text color/font/size/weight, separator, indicator, button bg/text/border) | 11 controls | Icon style + 4 toggles only | Much deeper filter visual control |
| Active filter pill styling: bg, text, size, radius | 4 controls | Not in no-code | Requires custom CSS |
| Sort/pagination dropdown styling: bg, border, text per dropdown | 6 controls | Dropdown style (box/no box) only | More granular |
| Results count text styling: font, size, weight, color | 4 controls | Not in no-code | Requires custom CSS |
| Grid injections (promo tiles at configurable positions) | Admin UI editor | Custom template only | No-code in Marqo, code-required in Rebuy |
| Per-page dropdown options (custom values) | Comma-separated input | Dropdown selection | Similar |
Feature parity
| Feature | Rebuy | Marqo | Status |
|---|---|---|---|
| Image ratio (1:1, 3:4, 9:16) | Yes | Yes | Parity |
| Column count per device (mobile/tablet/desktop) | Yes | Yes | Parity |
| Column spacing | Yes (6 presets) | Yes (pixel slider) | Marqo more granular |
| Text alignment (left/center/right) | Yes | Yes | Parity |
| Pagination styles | 5 options | 2 options (paging, continuous scroll) | Rebuy has more |
| Review integration | Dropdown (multiple providers) | 3 providers (Okendo, Trustpilot, Custom) | Comparable |
| Review star styling | Star color, bg color, text color, 4 sizes | Star color, size (slider), text color | Comparable |
| Filter toggles (show count, show selected, collapsed, first expanded) | Yes | Yes | Parity |
| Filter icon style | Plus/Minus or Chevron | Plus/Minus or Chevron | Parity |
| Metafields as filters | Up to 25 product + 25 variant | Configurable filter items | Comparable |
| Search bar toggle + placeholder | Yes | Yes | Parity |
| Page title template with variables | Yes ({term}, {count}) | Yes ({term}, {count}) | Parity |
| Custom CSS editor | Yes | Yes | Parity |
| Embedded element selector | Yes | Yes | Parity |
Quantitative summary
| Metric | Rebuy | Marqo |
|---|---|---|
| Total no-code settings | ~120+ | ~121 |
| Search behavior controls | ~15 | ~2 (path exclusions) |
| Visual/styling controls | ~40 | ~90+ |
| Filter controls | ~30+ (incl. metafield toggles) | ~24 |
| Template/code editor | Custom CSS only | Custom CSS + Advanced HTML/CSS editor |
Developer Customization Comparison
Customization tiers
| Tier | Rebuy | Marqo |
|---|---|---|
| 1. Dashboard knobs | ~120 settings | ~121 settings |
| 2. Custom CSS | CSS editor in dashboard | CSS editor in admin UI |
| 3. Custom markup | Vue template in Shopify theme snippet (unsupported) | Handlebars HTML/CSS in admin UI (per-component, stored in DDB) |
| 4. Theme override | N/A (Tier 3 IS the theme override) | Planned — Handlebars or Vue template in theme snippet |
Template engine
| Rebuy | Marqo | |
|---|---|---|
| Engine | Vue.js | Handlebars |
| Syntax | v-if, v-for, @click, {{ expr }} | {{#if}}, {{#each}}, {{var}} |
| Reactivity | Yes — live updates on state change | No — static HTML after render |
| Event binding in templates | Yes — @click="addToCart(product)" | No — manual JS handlers after render |
| Two-way binding | Yes — v-model="selectedVariant" | No |
| Expressions | Any JS — v-if="price > 50" | Truthy/falsy only — {{#if field}} |
| Custom template support | "We do not offer support for custom templates" | Same boundary expected |
Event system
| Rebuy | Marqo | |
|---|---|---|
| Lifecycle events | 20+ (rebuy.init, rebuy.ready, rebuy.add, rebuy.view, rebuy.show, etc.) | 13 (marqo:ready, marqo:search.results, marqo:cta.click, marqo:filter.change, etc.) |
| Event pattern | document.addEventListener('rebuy.add', handler) | document.addEventListener('marqo:cta.click', handler) |
| Cancelable events | Not documented | marqo:cta.click (preventDefault stops navigation) |
| Before/after pairs | Yes (rebuy.beforeAdd / rebuy.add) | No |
| Cart events | Yes (rebuy:cart.add, rebuy:cart.change) | No (merchants use Shopify's /cart/add.js directly) |
Programmatic API
| Rebuy | Marqo | |
|---|---|---|
| Global object | window.Rebuy.widgets[n] | window.MarqoSearch |
| Add to cart | widget.addToCart(product, callback) | Not exposed (merchants call Shopify API directly) |
| Show/hide | widget.show(), widget.hide() | Not applicable |
| Cart observation | widget.watchCart(callback) | Not available |
| Search | Via widget methods | MarqoSearch.performSearch(query) |
| Variant helpers | variantAvailable(), variantPrice(), variantOnSale() | Not exposed |
| Destroy | Not documented | MarqoSearch.destroy() |
Architecture Comparison
| Rebuy | Marqo | |
|---|---|---|
| Template engine | Vue.js (reactive) | Handlebars (static) |
| Rendering | Vue app mount → reactive DOM | Template compile → HTML string → innerHTML → manual event handlers |
| Bundle size | ~80-100KB (includes Vue) | ~50KB (Handlebars + widget) |
| Post-render interactivity | Built into Vue components | Manual DOM manipulation (~200 lines of handler code) |
| Template storage | Theme snippet files (merchant-managed) | DDB settings record (admin UI-managed) |
| Custom template detection | Scans DOM for <script id="rebuy-*-template"> | Not implemented (planned) |
| Template override scope | Full component replacement | Per-component HTML/CSS fields |
Rebuy's Custom Template Support Policy
Rebuy provides custom template functionality but explicitly does not support it:
"Our support services cover all aspects directly linked to Rebuy, providing assistance and guidance for standard features and functionalities. Please note that we do not offer support for third-party plugins or customizations like custom templates as outlined in this document."
"Support for custom template work falls outside the scope of the Rebuy Support Team. Using custom templates is at your own discretion."
Source: How To Use a Custom Template for Smart Search Quick View and Results page
Key Gaps to Close (Prioritized)
P0 — Blocking competitive deals
- Vue template support — Rebuy's core advantage is reactive templates with
@click,v-model, variant selectors. Our Handlebars templates can't match this for interactive use cases.
P1 — Expected by enterprise merchants
- Keyword synonyms — merchants expect to map related search terms
- Product/term exclusions — merchants need to hide specific products or block terms
- Content Search — pages/blogs in search results (Rebuy has full feature)
- Load More button — common pagination pattern we don't support
P2 — Nice-to-have for parity
- Featured/boosted products — merchandising control in search results
- Search influence weights — tune relevance per attribute
- Before/after event pairs — Rebuy's pattern allows intercepting actions before they happen
- Cart event observation — track cart changes from any source
- Variant helper methods in global API —
variantAvailable(),variantPrice()
P3 — Low priority
- Best Sellers sort (with lookback period)
- Rating-based sort options
- Out-of-stock display preference
Sources
- Rebuy Smart Search Results Page — complete no-code settings list
- Rebuy Smart Search Overview — search behavior and global settings
- Rebuy Smart Search Global Settings — exclusions, influence, synonyms
- Rebuy Custom Templates — Vue template system
- Rebuy Widget Custom Templates — variant selector, add-to-cart code examples
- Rebuy Widget Event Listeners — 20+ lifecycle events
- Rebuy Widget Methods — programmatic API
- Rebuy Custom Template Support Policy — "we do not offer support for custom templates"
- Rebuy CSS Styling Tricks — CSS customization approach
- Rebuy JS Callbacks — event listener patterns