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:
- How did the visitor land on the site? (Search, ad, social, referral.)
- What do they need to see in the first five seconds to stay?
- What objections will they have before adding to cart?
- 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
ProductJSON-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.