An online store is not a product grid with a checkout button. It is a sales tool. Every decision, from image sizing to cart behaviour, directly affects whether a visitor buys or closes the tab. I build e-commerce sites with that single goal in mind: remove friction, earn trust, and get out of the customer's way.

Here is how I approach it.

Start with the customer, not the product

The first question on any e-commerce project is not "what are we selling" but "who is buying, and in what state of mind". Someone comparing three pairs of sneakers at 11 pm on a phone needs a different experience than someone buying a professional drone in the middle of a workday.

I map the journey on paper before writing any code:

  1. How did the visitor land on the site? (Search, ad, social, referral.)
  2. What do they need to see in the first five seconds to stay?
  3. What objections will they have before adding to cart?
  4. What makes them abandon at checkout?

Every page is then designed to answer one of those questions.

Product pages that convert

A product page is the single most important page on any store — it is where the decision is made. The essentials, above the fold, on mobile, every time:

  • High-quality imagery with fast loading. I use AVIF + WebP with progressive loading and swipeable galleries.
  • Clear price and availability. No hidden shipping costs at the last step. Stock status visible.
  • One primary call to action. "Add to cart" in the brand color. No competing buttons.
  • Scannable details. Short description first, full specs in an expandable section below.
  • Social proof. Reviews, ratings, or testimonials visible without scrolling on desktop.

On the FEIT project I built a product viewer using Three.js for 360° spins. On White Sail Split I focused on instant availability checks tied to a Supabase backend. Different stores, same principle: the product page has to feel alive and confident.

The technical stack I use

For most small-to-mid e-commerce builds I reach for Next.js and Supabase. The combination gives me:

  • Server-rendered product pages (fast, SEO-friendly, share-friendly).
  • Incremental static regeneration so the catalog updates without a full rebuild.
  • A real PostgreSQL database with row-level security.
  • Built-in auth for customer accounts.
  • Edge-deployed API routes for cart and checkout logic.

For larger catalogs I integrate with Shopify's Storefront API — Shopify handles inventory, payments, and tax, while the front end stays fully custom. This is the best-of-both: Shopify's back office, your brand's experience.

SEO for e-commerce

An e-commerce site with weak SEO is a showroom with no road leading to it. I cover the basics on every build:

  • Schema markup. Every product page emits Product JSON-LD with price, availability, ratings, and SKU. This is what makes Google show the rich result with stars and price in the search listing.
  • Clean URLs. /shop/category/slug/ not /?p=1234.
  • Category page hierarchy. Collections are real pages with their own meta tags, not query-string filters.
  • Sitemap automation. The build regenerates the sitemap every time the catalog changes.
  • Image alt text. Written for humans, not stuffed with keywords.

I wrote a fuller version of this in Why Every Business Website Needs Proper SEO From Day One.

Checkout — where most stores lose the sale

Cart abandonment rates average around 70% industry-wide. Some of that is unavoidable (window shopping), but a lot of it is self-inflicted. Common killers:

  • Forcing account creation before checkout.
  • Surprise shipping costs in the final step.
  • Too many form fields.
  • Small, unclear confirmation buttons.
  • No visible progress indicator.

A good checkout is three steps, clearly numbered, mobile-first, with every piece of information the customer needs before they have to ask. I test checkout flows on a real phone, not in a desktop simulator.

After launch

A store is not "done" at launch — that is when the real work starts. I wire every project to analytics (GA4 or privacy-friendly alternatives like Plausible) so you can see:

  • Where customers drop off in the funnel.
  • Which products get the most attention vs. the most sales.
  • Which marketing channels actually convert.
  • Which pages bounce heavily and need work.

This data is what turns a static store into a growing one. Every month there is something to fix or improve.

Work with me

If you are planning an e-commerce build, whether a new store or a replatform from Shopify/WordPress, I would be glad to discuss the specifics. See some recent builds in the portfolio or email info@tonibarisic.com.