Joy Professional Nails System runs a genuine 68-SKU catalog — hard gels, liquid gels, primers, tools and an online course — on Wix. The storefront is well-branded, but it is actively losing sales at three distinct points in the funnel. Most urgent: the same shared "terms agreement" checkbox component visually overlaps the primary call-to-action on both the product page and the cart page. This was not treated as a visual opinion — we drove the button with Playwright's own click-actionability engine, and it independently failed repeated attempts to click "Add to Cart" and "Checkout" because the checkbox label physically intercepts the click. That is a live, reproducible defect sitting on top of the two highest-value buttons on the entire site.
Layered on top of that: there is zero customer-review infrastructure anywhere on the site (no star rating, no review count, no review app) for a beauty brand where social proof is typically one of the top three conversion levers; product pages carry a single photo each — for a color-driven category where shade accuracy is the #1 pre-purchase question, that is a meaningful trust gap; there is no sticky Add-to-Cart on desktop or mobile; and no marketing or analytics pixels are installed at all — no Meta Pixel, no TikTok Pixel, no GA4, no GTM — meaning every dollar spent on paid acquisition today cannot be retargeted or conversion-tracked. None of the findings below are subjective design opinions: each was verified either with a live interaction test, a direct DOM/network check, or a zoomed-in visual pass — including re-testing the mobile experience with a real mobile user-agent to rule out false positives from our own tooling.
Key finding: the highest-confidence, highest-impact issue is a confirmed click-interception bug on the Add to Cart / Checkout buttons (product + cart pages) caused by an overlapping terms checkbox — this alone should be the first fix shipped, ahead of everything else in this report.

There is nothing above the header communicating shipping cost/timeline or the return policy. This is one of the cheapest trust-building placements on the whole site and it's currently empty.
⏱ Estimated: 1 dev hour
The header stays pinned while scrolling, so navigation, search, cart and account are always one tap away.
Opening search shows "Trending products" immediately; typing returns live product thumbnails with prices plus matching pages — a genuinely well-built implementation.
Just four top-level items (Home / Shop / Company / Courses) with high contrast against the black header — no mega-menu overload.

The hero shows the JOY wordmark and "Professional Nails System" — a tagline, not a value proposition. A first-time visitor can't tell in 3 seconds what makes this gel system worth choosing over a competitor.
⏱ Estimated: 1 dev hour
No autoplay slideshow fighting for attention — one clear focal point that loads fast. This is the right call, not a gap.
"Shop Now" is immediately visible without scrolling.

Every product card shows one static bottle photo. Competitors that swap to a second lifestyle/swatch photo on hover give shoppers more information before they click — this site shows the same image at rest and on hover across all 68 SKUs.
⏱ Estimated: 3 dev hours
There is no block anywhere on the homepage showing real customer photos or an Instagram feed — the single highest-converting form of social proof for a beauty brand is entirely absent.
⏱ Estimated: 3 dev hours
A "Best Seller" ribbon appears on the online-course card, but none of the actual best-selling gels carry a Sale/Bestseller/New badge anywhere in the carousels.
⏱ Estimated: 2 dev hours
Every product card — on the homepage carousels and the collection grid — has its own Add to Cart button. Shoppers never have to open a product page just to buy.
The product carousel sits directly under the hero, before the brand story — visitors see real products within the first scroll.

Checked the footer, the header, and the full mobile menu — there is no FAQ link on the entire site. Common pre-purchase questions (application, curing time, shipping, returns) have no dedicated home.
⏱ Estimated: 4 dev hours
No Instagram, TikTok or Facebook link anywhere on the site — header, footer, or menu. For a nail brand, social proof and product education live on Instagram/TikTok; there's currently no bridge from the store to those channels at all.
⏱ Estimated: 1 dev hour
Zoomed into the full-width footer specifically to check — there is no Visa/Mastercard/PayPal icon row anywhere near the footer or checkout area.
⏱ Estimated: 1 dev hour
The cart's checkout legal text references a "Privacy Policy," confirming the page exists — but it isn't linked anywhere in the footer alongside Terms, Shipping and Refunds.
⏱ Estimated: 0.5 dev hours
Shipping Policy, Terms and Conditions, Refunds/Returns and About Us are all linked and easy to find.
Address, email, opening hours, a Google Map and a newsletter signup are all built directly into the homepage — no need to hunt for a separate contact page.

68 products are split across 4 numbered pages (1‑2‑3‑4) requiring a full click-and-reload cycle to browse the catalog, instead of a seamless infinite scroll or "Load more" button.
⏱ Estimated: 4 dev hours
Filtering is limited to 4 category checkboxes (Book/Hard Gel/Liquid Gel/Prep & Finish) with no counts next to each option, and no way to filter the 15+ liquid-gel shades by color family or filter by price.
⏱ Estimated: 4 dev hours
The page correctly has an H1 ("All Products") but nothing else — no short descriptive copy underneath it for on-page SEO.
⏱ Estimated: 1 dev hour
"Sort by: Recommended" dropdown is present and functional.
Same zero-click-to-buy pattern as the homepage carousels, carried through consistently to the full catalog grid.

Checked multiple products — every one has exactly one image: no second angle, no swatch-on-skin/nail application shot, no video, no 3D. For a color-driven category like gel polish, shade accuracy is the top pre-purchase concern, and a single studio shot of the closed jar/bottle can't answer it.
⏱ Estimated: 8 dev hours
Clicking the product photo opens a clean, high-resolution full-screen lightbox.
Home › All Products › [Product Name] appears on every product page — good for navigation and SEO.
Product name and price are both large, high-contrast and immediately visible.

The "I agree to the terms and shipping policy" checkbox label visually renders on top of the Add to Cart button (see screenshot). This is not just cosmetic — we drove the button with Playwright's click engine and it independently failed repeated attempts, logging that the checkbox label "intercepts pointer events" meant for the button. Real shoppers clicking in that overlapped zone can fail to add the product to cart on the first try.
⏱ Estimated: 4 dev hours (fixes this + the matching cart-page bug in Block 10)
The buy box scrolls away with the rest of the page. Once a shopper scrolls into the description to read ingredients/directions, the purchase button is gone until they scroll back up.
⏱ Estimated: 5 dev hours (covers desktop + mobile, see Block 12)
Apple Pay, PayPal Checkout and Afterpay (4 interest-free payments) are all integrated directly in the buy box.
A proper +/− stepper is used instead of a raw number field.

Description, Features, Directions, Ingredients and Cautions are all dumped as continuous plain text with no accordions or tabs — a long, unscannable block instead of organized, skimmable sections.
⏱ Estimated: 4 dev hours (paired with the cross-sell fix below)
The page goes directly from the ingredients list to the footer — no "You may also like" or complementary-product block on the product page itself (the cart page does have one — see Block 10 — but the product page, where the shopper spends the most time, has none).
⏱ Estimated: 2 dev hours
Nothing on the product page sends shoppers off-site.

Checked multiple products — there is no star rating, no review count, and no review app installed anywhere. The screenshot above shows the page going straight from the ingredients list into the footer, with no reviews section at all. For a beauty/nail brand, this is one of the highest-leverage gaps in the entire audit.
⏱ Estimated: 6 dev hours
No items found in this block.


The identical "terms and shipping policy" checkbox overlaps the "Total" line right next to Checkout on the full cart page (second screenshot above). This confirms the bug lives in a shared, sitewide component — not a one-off on a single product template — which raises its priority further. Fix is included in the Block 7 estimate.
⏱ Included in Block 7's estimate
No "add $X more for free shipping" messaging anywhere in the cart — a proven small-AOV lift that's currently left on the table.
⏱ Estimated: 2 dev hours
"Enter a promo code" is visible immediately in the cart rather than hidden/collapsed until checkout, inviting bargain-hunting/cart abandonment while shoppers search for a code.
⏱ Estimated: 1 dev hour
The browser tab title on the cart page reads "Страница корзины" while the entire rest of the storefront is in English — a leftover localization default that's inconsistent and visible to every visitor who opens the cart in its own tab.
⏱ Estimated: 0.5 dev hours
Product thumbnail, quantity stepper, one-click remove, a clearly visible total, and a "Secure Checkout" trust line are all present in the slide-out drawer.
The full cart page (unlike the product page) does show related products, each with its own Add to Cart button — a genuinely good upsell surface.
Checkout, Apple Pay and PayPal Checkout are all one click away from the cart.

A "Get 10% off now!" floating widget stays fixed on screen at every scroll depth, partially covering content and buttons underneath it. Worse, tapping it is unreliable: our automated click testing confirmed its own tap target is intercepted by whichever product card happens to sit underneath — the same class of pointer-event bug found on the Add to Cart button. The 10% offer is effectively undeliverable to most visitors who try to claim it.
⏱ Estimated: 3 dev hours
4 of the first 30 interactive elements checked measured under the recommended 44×44px minimum tap size.
⏱ Estimated: included above
We initially saw a broken, overflowing desktop layout at mobile viewport width — but that was a testing artifact from an unspoofed desktop user-agent. Re-tested with a real mobile Safari user-agent: Wix correctly serves its dedicated mobile layout, with no horizontal overflow. Real mobile visitors get a properly adapted experience.
Opens a clear full-screen overlay with all nav items, search and account access.
Median body text size across the page samples at 16px — comfortably readable without zooming.

Same gap as desktop — once a shopper scrolls past the buy box to read the description, there is no persistent purchase button following them down the page. This is typically the single highest-leverage mobile fix available.
⏱ Included in Block 7's estimate
On mobile the same checkbox doesn't overlap the button (the stacked layout avoids that collision) — but instead it's relocated far down the page, right before the footer, completely disconnected from the buy box above. It's pre-checked by default so it doesn't block checkout, but its placement is confusing and looks unfinished.
⏱ Estimated: 1 dev hour
Unlike desktop, the stacked mobile layout means the checkbox does not overlap the Add to Cart button — that specific collision is desktop-only.
Since quantity uses +/− buttons rather than a text field, there's no numeric-keypad concern to solve.
Measured directly in the DOM: the homepage has 0 <h1> elements — it jumps straight to H2 ("Explore the Collection", "Best Sellers", "About us"...). Product pages, by contrast, correctly carry exactly one H1 each, so this is a homepage-specific gap and an easy fix.
⏱ Estimated: 1 dev hour (paired with the lazy-load fix below)
Only 1 of 29 images on the homepage carries loading="lazy" — nearly every image is fetched upfront regardless of whether it's ever scrolled into view.
⏱ Estimated: 2 dev hours
Measured directly in-browser (unthrottled lab numbers): 192 network requests on the homepage, including 109 JS files across 41 script tags. This is consistent with Wix's inherently JS-heavy platform architecture plus several third-party app widgets, but it's still a meaningfully heavier payload than a lean storefront needs.
⏱ Estimated: 4 dev hours (audit & defer non-critical app scripts)
Verified via real network response headers (not just the URL's file extension): Wix's CDN automatically serves AVIF to supporting browsers for most content images, even though the URLs end in .jpg/.png.

Directly tested by simulating an exit gesture (mouse moved to the top of the viewport) — nothing fires. There is no last-chance email capture for visitors about to leave.
⏱ Estimated: 3 dev hours
Checked visually across every screenshot's corners and via DOM query — there is no chat bubble anywhere on the site.
⏱ Estimated: 2 dev hours
"Get 10% off now!" is click-to-open, not exit-intent-triggered, and (per Block 11) its own click target is intercepted by underlying content — so the real value it promises rarely reaches the visitor.
⏱ Included in Block 11's estimate
The only email opt-in on the entire site requires scrolling all the way to the bottom of a page to find.
⏱ Estimated: 2 dev hours
No countdown timers or manufactured scarcity anywhere — whatever scarcity messaging gets added in the future, the site currently doesn't cut corners here.

Checked directly for window.fbq, window.ttq, window.gtag and any GTM container script — none are present. The only third-party scripts found were a Google Maps embed and jQuery. Practically, this means: no Meta Pixel, no TikTok Pixel, no GA4. Every dollar spent on paid acquisition today cannot be retargeted or conversion-tracked, and there's no analytics visibility into on-site behavior at all.
⏱ Estimated: 3 dev hours
Abandoned-cart, abandoned-browse and post-purchase review-request automations live in the Wix dashboard (Ascend/Automations) and can't be verified by testing the public storefront. Recommend confirming directly in the admin — flagged here rather than assumed.
⏱ Estimated: 2 dev hours (audit + configure in Wix dashboard)
No items found in this block.
Average dev hours and a fixed price at $40/hour. Suggested order: Critical → Medium → Low.
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 7, 10 | Fix terms-checkbox overlapping Add to Cart (product page) & Total/Checkout (cart page) | 4 | $160 |
| 9 | Install a product reviews app + display ratings on all product pages | 6 | $240 |
| 6 | Build full product image galleries — multi-angle + application/lifestyle shots | 8 | $320 |
| 7, 12 | Add sticky Add-to-Cart bar — desktop + mobile | 5 | $200 |
| 8 | Convert description into accordions + add cross-sell block to product page | 6 | $240 |
| 3 | Add hover image swap on product cards + UGC/Instagram gallery on homepage | 5 | $200 |
| 4 | Build FAQ page + link from footer/nav; add social media links | 4 | $160 |
| 5 | Replace numbered pagination with infinite scroll / "Load more" | 4 | $160 |
| 15 | Install Meta Pixel + TikTok Pixel + GA4/GTM | 3 | $120 |
| 14 | Install live chat widget | 2 | $80 |
| 14 | Build exit-intent email-capture popup | 3 | $120 |
| 13 | Fix homepage H1 + implement lazy-loading sitewide | 3 | $120 |
| Subtotal — Critical | 53 hrs | $2,120 | |
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 1 | Add announcement bar (shipping/returns terms) | 1 | $40 |
| 2 | Sharpen hero copy with a concrete value proposition | 1 | $40 |
| 3 | Apply Best Seller/Sale badges consistently across top products | 2 | $80 |
| 4 | Add payment trust badges + link Privacy Policy from footer | 2 | $80 |
| 5 | Add color/price filters + item counts + SEO description on collection page | 5 | $200 |
| 10 | Add free-shipping progress bar + hide promo code field in cart | 3 | $120 |
| 10 | Fix cart page localization (RU → EN browser title) | 0.5 | $20 |
| 11 | Fix floating discount-widget click target + enlarge undersized mobile tap targets | 3 | $120 |
| 12 | Reposition mobile terms-checkbox next to the buy box | 1 | $40 |
| 13 | Reduce JS payload — audit & defer non-critical third-party app scripts | 4 | $160 |
| 14 | Add a secondary email-capture placement beyond the footer | 2 | $80 |
| 15 | Verify/configure abandoned-cart, abandoned-browse & review-request automations in Wix dashboard | 2 | $80 |
| Subtotal — Medium | 26.5 hrs | $1,060 | |
| Block | Task | Hours (avg) | Fixed Price |
|---|---|---|---|
| 14 | Set up a loyalty/rewards program | 6 | $240 |
| 14 | Add a "Refer a Friend" widget | 4 | $160 |
| 3 | General badge/visual polish pass once new trust elements are in place | 2 | $80 |
| Subtotal — Low | 12 hrs | $480 | |
* Hours are averages and the price is fixed at $40/hour, for development implementation only. Content creation (product photography/video) and third-party subscription costs (review app, chat app, loyalty app) are not included. Suggested order: Critical → Medium → Low.
The fixes in this report aren't theory — they're the same conversion levers we implement for the stores we work with. Here's the Total Sales curve from a store running our approach versus the previous period:
Total Sales over the period: $168,636 — +19% vs the prior period. Solid line = current (our approach), dotted = before.