journal#ecommerce

Shopify or a custom build? How we chose for three real clients

For most stores, Shopify is the right start: checkout, payments and hosting are solved on day one. We build custom when one of three things is true: the catalog doesn't fit a normal product list, the business sells something a cart can't hold, or search speed is the product. Here is how that played out for three clients we shipped in 2025.

The short answer

Stay on Shopify, and spend your budget on the front of the store, unless:

  1. Your catalog breaks the product list. Hundreds of thousands of items, or stock that changes every hour from a supplier.
  2. The sale doesn't end at checkout. You sell a service or a subscription, and the real work happens after the payment.
  3. Search is the product. Buyers shop by filtering a huge catalog, and every second of waiting costs a sale.

None of our three clients was a close call. One stayed on Shopify. Two needed custom builds, for different reasons.

Party Depot: we stayed on Shopify

Party Depot sells everything for a celebration: balloons, decorations, tableware, candles, costumes and toys. Thousands of products, but they're normal products: a photo, a price, a few variants, a cart. That's exactly what Shopify does well, so we kept its checkout, admin and payments as they are.

The work went into everything around the cart:

  • A custom Liquid theme. The brand wanted the store to feel as playful as a party, and to let people shop by type, color, occasion, theme and age, with Quick Add on every product card. Shopify's ready-made themes couldn't do either.
  • Personalized products. Customily lets shoppers put a photo, name or initials on a balloon, and see it on the product page before they buy.
  • PlanTogethr AI. Shoppers enter the event type, guest count, date and budget, and get a party plan in seconds. It runs as an n8n workflow that calls a GPT model, and shoppers can open it from the collection pages too.
Party Depot's balloon personalizer on desktop, with a custom photo balloon being designed on the product page.
personalizing a balloon on Shopify, with Customily.

The lesson: customize the front of the store and keep the standard checkout. Design, the theme, the AI planner and the personalizer went live in one month.

Diavaia: we built custom

Diavaia sells natural and lab-grown diamonds online, mainly to buyers in the US and Canada, and delivers to 29+ countries. The catalog has more than 1.3 million certified stones. They come from a supplier's API, each one has a dozen attributes (shape, carat, cut, color, clarity, certificate and more), and they're also for sale elsewhere, so stock changes every hour.

A hosted platform stores every product as a listing that you create and update through its API. Pushing 1.3 million stones through that API every 45 minutes, and then filtering them by a dozen attributes while the buyer waits, wasn't practical. Showing a stone that had already sold elsewhere would lose the sale and the buyer's trust.

So we built the store around the catalog:

  • A sync job pulls the supplier's data every 45 minutes into two databases: DuckDB for search and PostgreSQL for orders.
  • DuckDB is built to scan very large tables fast. A filtered search across all 1.3M+ stones returns in 300ms.
  • The storefront runs on Astro, so pages are fast and easy for search engines to read.
  • Payload CMS lets Diavaia's team manage pages, the Vault and guides without a developer, and Authorize.net handles checkout.
904,361 stones to 114,201 in one click.
how Diavaia's catalog stays current The supplier API syncs every 45 minutes into DuckDB for search and PostgreSQL for orders. Both feed the Astro storefront, which also reads Payload CMS and checks out through Authorize.net. diavaia · catalog sync 1.3M+ stones, never out of date. source data store buyer supplier API 1.3M+ certified stones stock changes hourly ↻ 45 min DuckDB search: scans big tables fast shape, carat, cut, color… PostgreSQL orders Astro storefront fast pages, easy to rank 300ms Payload CMS pages, Vault, guides buyer US, Canada, 29+ countries Authorize.net checkout Every 45 minutes the supplier's stock is copied into both databases, so a stone that sold elsewhere disappears before a buyer can pick it.
how Diavaia's catalog stays current.

Built in two months, from kickoff to launch.

Dzyns: we built custom

Dzyns is a design subscription. Clients pay a flat monthly fee and send unlimited requests for logos, websites, UI, branding, social posts and more, with an average turnaround of two business days.

Shopify can sell a subscription with an app. What a store can't do is run the work after the payment. Dzyns clients need a place to submit requests, chat with the designers, receive files and keep a design board, and the team needs to manage all of it without email threads.

So we built two products that share one login:

  • A marketing site in Next.js that explains the service, shows the work and pricing, and books intro calls.
  • A client app in Laravel, at app.dzyns.com, where clients register, pay, submit requests, chat and receive designs.
  • Stripe runs the billing: monthly plans, trials, upgrades, pauses and cancellations, with no manual invoices.
The Dzyns admin dashboard with active projects, priorities, tasks and deadlines.
the Dzyns workspace, where the work happens after the payment.

Designed and built in three months, site and app together.

The decision checklist

shopify or custom: three questions Flowchart with three yes or no questions. If the catalog breaks a normal product list, or the sale doesn't end at checkout, build custom. Otherwise, if the brand needs its own look or shopping paths, use Shopify with a custom theme. If not, use Shopify with a ready theme. you sell online. 01 · the catalog Hundreds of thousands of items, or stock synced from a supplier every hour? yes no 02 · the sale Does real work happen after the payment: requests, files, chat, a client workspace? yes no 03 · the brand Do you need your own look, shopping paths, personalized products or an AI feature? yes no shopify, ready theme. launch fast, spend on products and ads outcome custom build. diavaia (yes on 01), dzyns (yes on 02) you own the code outcome shopify, custom theme. like party depot One "yes" on 01 or 02 is enough to talk about a custom build.
three questions, three answers.
QuestionPoints to ShopifyPoints to custom
How many products, and where do they come from?Up to tens of thousands, managed by your teamHundreds of thousands or more, synced from a supplier
How often does stock change?Daily or lessEvery hour
Does the sale end at checkout?Yes, then you ship itNo, there's a service or workspace after the payment
Do customers need an account area beyond orders?Order history is enoughRequests, files, chat, dashboards
Is filtering the main way people shop?Browsing collections worksBuyers filter a huge catalog by many attributes
Do you need to own the code?Renting the platform is fineYou want the code, with a full handover at launch

If every answer is in the left column, choose Shopify. If one or two are on the right, talk to someone before you decide. If most are on the right, build custom.

What it costs and how long it takes

Shopify: USD 29–299 a month for the Basic to Advanced plans, billed yearly (USD 39–399 if you pay monthly). Add paid apps and any custom theme work, and check the transaction fees for the payment provider you'll use.

Custom: a custom store at HEZ is usually USD 12,000–25,000 (about IDR 215–450 million) to build, plus hosting and a care plan from USD 150 a month. You own the code. We hand over the repository and every account it runs on at launch, if you ask. Our article on what a fixed-scope MVP costs explains how we price it.

Time: our three projects took one month (Shopify with a custom theme, an AI planner and a personalizer), two months (a custom store) and three months (a site plus a client app).

What about WooCommerce?

WooCommerce sits in between. It's free, runs on WordPress, and you host it yourself, so you own the data and can change anything. It's a good fit when a brand already runs on WordPress and has someone to keep it updated. We build on it too. For the three clients above, it wouldn't have changed the decision: Party Depot was better served by Shopify's hosted checkout, and Diavaia and Dzyns needed things a store plugin doesn't do.

#faq

Frequently asked

Yes. Shopify lets you export products, customers and orders. The main risk is losing search traffic, so map every old URL to its new one with a redirect before you switch.

#lets-talk

pick the platform once.

Tell us what you sell and how. We'll recommend Shopify or custom, with a timeline. Free 30-minute call, reply within 24 hours.