SYCGeeks

Vancouver, Canada · Prices in CAD

SYCGeeksSYCGeeks

Support · Ecommerce · 14 min read

Shopify versus a custom store

Use Shopify when the catalog is the business. Build custom when checkout is the product.

AI-generated packaged goods on a designed shelf

Start with the shape of the business, not the stack.

Shopify is the right default for a catalog of products, Canadian shipping, and a team that should not wait on a developer to change a price. We build and theme Shopify stores when that is the honest shape of the business. A custom store — Next.js, your API, Square or Stripe at the edge — is for memberships, complex quotes, unusual tax, or a checkout that is the product. Headless Shopify sits in the middle: you keep the admin, we build the storefront. The job of this guide is to pick one of those three before anyone opens Figma. SYCGeeks quotes that choice in CAD from Vancouver, in English and French, and we will not upsell custom because it is interesting.

Ask what has to be true on a Monday morning without us. If a floor manager in Gastown needs to mark a size 8 sold out before lunch, Shopify’s admin is the product. If a membership desk needs to price a family plan that changes by province, age, and a Square appointment attached to the same cart, the checkout is the product and a theme will fight you. If brand experience cannot live inside Online Store 2.0 but operations still need Shopify’s orders, refunds, and apps, headless is the compromise — a real one, with two surfaces to care for.

We will also ask which processor you already pay for. Square at a counter is a vote for keeping hardware, appointments, and inventory in one family, which can sit beside Shopify or replace it depending on catalogue size. Stripe is a vote for subscriptions and custom apps. PayPal is a familiar extra, rarely the only rail. Optional ETH is a studio invoice option, never the shopping path for a stranger buying socks. The store architecture should serve the rail, not the other way around.

Write the conversion in one sentence: “A person in Canada pays CAD for a SKU, with GST/HST on the receipt, and the warehouse in this city can pack it.” If that sentence is true and the catalogue is ordinary, Shopify. If the sentence needs three asterisks, custom. If the sentence is true but the homepage cannot look like every other theme, headless. We would rather decline a fantasy than miss a real launch date.

When Shopify is the honest default.

Shopify wins on apps, staff training, and speed to first sale. A new hire can change a price, a photo, and a collection without opening a pull request. Canadian shipping, GST/HST apps, and a phone checkout are solved problems if you configure them instead of decorating around them. If you already run Shopify and the pain is theme quality, bilingual copy, or a checkout that still speaks USD, we will fix the store you have. We will not throw it out because a custom stack photographs better in a case study.

Staff training is underrated. The person who opens on Saturday needs to refund a $64 CAD order, print a packing slip, and mark a SKU received from a shipment that arrived late. Shopify’s admin is built for that person. A custom admin we invent is built for the week we launch it, then it waits on us. If your operations team is two people and a part-time student, do not give them a dashboard only we can extend. Care is $450 CAD a month or $4,500 a year. It is not a second product team.

Apps are a blessing until they are four overlapping tax plugins. We will audit what you already installed. If two apps both think they own GST, we will turn one off. If an app injects a tracker you did not describe on the privacy page, that is a PIPEDA problem, not a growth hack. Shopify’s app store is not a substitute for a written tax rule and a written privacy purpose. We configure the few apps that earn their fee, then we stop.

Speed to first sale matters when the catalogue is ready and the delay is engineering. A focused Shopify storefront, tax-ready, with a real CAD test order, can ship inside the eight-to-fourteen-week ecommerce window we quote at $14,500 CAD — often toward the front of that window if photos and French copy arrive on time. Custom and headless sit toward the back, or beyond it, because you are buying a second product: the storefront itself.

When a custom store is worth the money.

Custom wins when pricing, membership, or hardware is unusual. Examples we actually build: a configurator that prices powder-coated parts by province; a membership that includes Square appointments and a gated digital library; a wholesale portal with CAD price lists that retailers should not see on the public site; a checkout that has to sit inside a Next.js or mobile app because the store is not the website. Those are products. A prettier product grid is not.

You own the care. A custom storefront does not get Shopify’s status page, Shopify’s app developers, or Shopify’s refund button that every temp already knows. We document the contract, the errors, and who to call when a webhook fails. After launch, silent failure is the danger. Care means we watch the jobs that move money and write down what we changed in your dashboard. If you are not willing to buy monthly or yearly care for a custom checkout, we will push you back to Shopify. A store without someone watching the processor is a weekend problem waiting for Monday.

Square at the edge is a good custom fit when the counter is real. Hardware, appointments, and online checkout can share one account. Stripe at the edge is a good fit when subscriptions, usage billing, or a marketplace live inside the app. PayPal can still sit beside either as a familiar extra. Interac e-Transfer, if you offer it to customers, needs match keys and a waiting status — the same discipline we use on our own checkout, not a PDF of our email address. Optional ETH, if you insist, is a signed quote, never the only path.

Custom costs more in weeks and in attention. Our ecommerce system is $14,500 CAD for Shopify or custom, quoted before we start, with Canadian tax, shipping, a phone-first checkout, Square or Stripe wired to the catalogue, and a real CAD test order. Unusual checkout logic can push the calendar past fourteen weeks. We will say so in the quote. Silent overages are how trust dies. If the brief is still moving, we wait.

Headless Shopify sits in the middle — on purpose.

Headless means you keep Shopify’s admin, orders, inventory, and apps, and we build the storefront in the same stack we use for marketing sites and custom apps. Use it when the brand experience cannot live inside a theme, but you still want Shopify’s operations. The homepage can be a real designed system. The cart can still be a Shopify cart. Staff still refund in the admin they already know. That split is the point. It is also the cost: two surfaces, two caches, two places a French string can be wrong.

Headless is a poor fit when the team expected to “just change the theme” after we leave. You cannot. You can change products, collections, and many menus in Shopify. You cannot rearrange a custom storefront without us or another developer. If that sentence bothers you, you do not want headless. You want a well-built Online Store theme with a tight design system and bilingual routes. That is a respectable product. We ship those on purpose.

Performance is a reason people ask for headless. Sometimes it is real: a theme drowning in apps, a mobile page that takes four seconds to show a price in CAD. Sometimes it is fashion. We will measure the current store on a Canadian phone connection before we sell you a new architecture. A fast theme and fewer apps often beat a headless rewrite you cannot staff. Care’s reserved hour can keep a theme honest. It cannot become a standing frontend team.

If we recommend headless, the quote will name both surfaces, the CMS or Shopify fields your staff will edit, and the launch test: a real CAD order through the custom storefront, refunded, with English and French receipts. Apple Pay must work in Safari through the processor, not as a painted button. GST/HST must appear before the pay action. Inventory must still be Shopify’s truth if POS or a 3PL writes there. We will not split inventory across a second database “just for the frontend.”

Tax, shipping, and a staff member on Monday.

The platform choice does not excuse a vague tax story. Decide GST/HST handling before you pick a theme or a custom layout. Name the provinces you ship. If you sell in person, Square POS and the store — Shopify, headless, or custom — must share inventory truth. A jacket sold twice on a Saturday is a platform-independent failure. We start there, then we talk about Liquid versus React.

Shopify makes Canadian shipping rates easy to switch on and easy to get wrong. Enabling every province because the checkbox was there is how you promise Nunavut delivery from a Gastown stockroom. Custom makes shipping easy to under-build: a hardcoded $10 CAD everywhere, including a snowshoe order to Labrador. Either way we want the warehouse city on the shipping page, the method list in both languages, and a test order that uses a real address in a province you actually pack.

Monday morning is the test we care about after launch. Can someone who is not us change a price, refund a CAD order, and mark a SKU out of stock? On Shopify, yes, with training. On headless, yes for catalogue, no for layout. On custom, only if we built them a screen and wrote it down. Tell us who that person is. If the answer is “we will hire someone,” we will recommend Shopify until they exist.

Bilingual work is not a plugin that swaps strings. French sentences change length and tone. Checkout buttons, error messages, and refund emails have to be rewritten. Shopify themes fail this when they were designed around English verbs. Custom storefronts fail this when French is left as a JSON file nobody reads. We test both languages before launch, including forms. A checkout that fails in French is a Canadian product bug on every platform.

What you actually pay, in Canadian dollars.

The number you approve is the number you pay. Proposals and checkout at this studio are CAD. The ecommerce system is $14,500 CAD. A custom website launch beside it is $8,500 CAD. Care is $450 CAD monthly or $4,500 CAD yearly — two months included versus monthly. Processors still take their Canadian fee; we do not hide that inside a USD sticker. Optional ETH is quoted from a live Uniswap price converted to CAD, on a signed amount. Interac e-Transfer uses a match key in the message so we can pair it.

Shopify’s own subscription is yours, billed by Shopify, in whatever plan you choose. That is not in our quote. Apps you keep are yours. Square or Stripe fees are theirs. We will read the Canadian fee pages with you before you sign a processor. Rates move. We will tell you which integration we can keep healthy after launch. A cheaper processor that your staff cannot refund on is not cheaper.

After launch, new work stays on the same project. An extra page, an extra language pass, a checkout change, product stills, a new collection, or extra hours are published add-ons. Care members pay about 25 percent less. A checkout change is $3,200 CAD standard and $2,400 CAD on care. A new collection is $2,800 CAD standard and $2,100 CAD on care. We will not silently fold extra weeks into care. If you are unsure which bucket you are in, ask — the answer is a sentence, not a new contract.

International clients still get a CAD quote unless we agree otherwise in writing before work starts. Toronto, Montreal, and Halifax teams are welcome; appointments run on Pacific time from Vancouver. If the thing is on fire, call +1 (672) 200-7924 on a weekday. If you have a brief we can price, write admin@sycgeeks.ca. If you want to talk before you write, book a Square discovery conversation. Bring the catalogue, the provinces, and the system you already pay for.

How we recommend, not how we upsell.

We will tell you which one we would buy for ourselves. That sentence is in the takeaways because it is the job. If Shopify will take Canadian payments and your staff can run it on Monday, that is the recommendation. If checkout is the product, we will say custom and write the reasons. If the brand cannot live in a theme but the warehouse must stay in Shopify, we will say headless and warn you about the second surface. We do not get paid more for the interesting option. We get paid the CAD quote you approved.

A discovery workshop is 45 minutes, complementary, on Pacific time. A project review of an existing store is 60 minutes at $250 CAD. Both land in your dashboard if you have an account. Email-only advice is how recommendations evaporate. Bring screenshots of the checkout that fails, the inventory tool you already pay for, and whether French must be correct on day one. We would rather inherit a real system than invent a second one.

We will not hide a custom rewrite inside a “premium theme” line item. We will not hide a Shopify recommendation inside a speech about innovation. If two conversions fight — a catalogue sale and a membership signup — we pick one for launch. The other is a later add-on on the same project. Launch is the conversion that pays for the work.

Once you approve, we open the project, set the workflow, and you can see the current step. After go-live, status becomes launched. Notes stay. If you later need a checkout change or a new collection, you pay the published add-on — about 25 percent less with care — and we reopen the same record. You should not have to explain the store to a stranger in a new thread. That is the whole point of keeping one project.

After launch, who changes a price.

The first 30 to 90 days are for defects, not new scope. If GST prints wrong on a Quebec receipt, that is care. If Apple Pay vanished after a theme app update, that is care. If you decided you also want a wholesale portal, that is a new quote. We write the distinction in dashboard notes so the next person can pick up the file. “Looks good!!” is not a note. “Waiting on product photos from Jane, French refund email still English” is a note.

On Shopify, your staff changes prices. We will train them once. On custom, we will give them a screen or a CMS field; if we did not, changing a price is a care hour or an add-on. On headless, prices still live in Shopify — that is a reason to choose it. Inventory truth stays with POS or the warehouse. We will not let a frontend cache sell a jacket that the till already sold. If that means a slower page, we will say so.

Test a real CAD order after every checkout change, not only at launch. Refund it. Read the receipt in both languages. If Interac is in the mix, confirm the match key still pairs. If ETH is in the mix, confirm the quoted amount still matches the CAD invoice. Crypto is optional and never the only way to pay. Cards, Apple Pay where the processor supports it, and Interac for people who will not use a card — that is a Canadian store. The platform underneath is a means.

If you are choosing today, send the brief. Who is this for in Canada? What do they buy? What should they do in the first visit? Which system do you already pay for? We quote before production. Book, write, or call. The recommendation will be the store we would run if it were our Saturday till, not the store that is more fun to engineer.

Keep reading