Fixed scope
Fixed price
against a written scope
- Written scope and acceptance criteria up front
- Fixed price against that scope
- Staged delivery with review points
- Change requests priced separately, never absorbed silently
We are a Shopify Plus Agency specializing in custom development, B2B, checkout extensibility, ERP/CRM integrations, and retained support for scaling brands.
Book a Free Consultation →Custom Online Store 2.0 themes, and surgical work on the theme you already run. Built in Liquid against your real catalog — sections your merchandisers can actually use, templates that survive an app install, and a front end tuned for Core Web Vitals rather than a demo-store Lighthouse run.
We maintain seven apps in the Shopify App Store. That means we spend our days on the other side of the theme boundary — reading app blocks, script tags, metafields and checkout extensions — and it shows in the themes we build for other people.
Most theme performance problems are not the theme. They are six apps each injecting a render-blocking script into theme.liquid, a section that queries a 400-product collection to render a badge, and an image pipeline that never got told what size to serve. We build with the app layer in mind, because we build the app layer.
Practically: app embeds get deferred where they can be, section settings get sane defaults so a merchandiser cannot accidentally ship a 4MB hero, and anything that must run on first paint is inlined and budgeted.
Talk to a Shopify developer
A theme that looks right with twelve products and one variant per product will fall apart at three thousand SKUs with size, color and length options. We develop against a copy of your real data, so pagination, faceted filtering, variant pickers and out-of-stock states are designed for the catalog you actually have.
The same applies to content. If your product pages carry size charts, ingredient tables, care instructions or regional compliance copy, those become structured metafields and reusable blocks — not hardcoded HTML that somebody has to paste into every new product.
See how a project runs
No page builders, no third-party theme framework, nothing that puts a vendor between you and your own storefront. Shopify's native primitives, used properly.
The modern theme architecture. Sections on every template, app blocks, JSON templates and metafields — so any page can be restructured from the theme editor rather than a deploy.
Shopify's open-source template language. Server-rendered by default, which is why a Liquid storefront is fast and crawlable before a single line of JavaScript runs.
Page-level config files — product.json, collection.json — that define which sections appear on a template and in what order. A landing page, a collection and a product page can diverge without forking the theme.
Modular Liquid components your merchandisers add, remove and reorder per page. App blocks let an installed app drop its content in without anyone editing theme code — which is what keeps an app install from becoming a developer ticket.
Google's published UX thresholds: LCP under 2.5s, INP under 200ms, CLS under 0.1. We treat them as a budget from the first commit and measure them on your templates, not a blank page.
The enterprise plan. Checkout extensibility, Shopify Functions, B2B, Markets and higher API limits — all of which change how a theme is structured, so tell us early if you are on it.
Whether it is a ground-up build or targeted work on a theme you already run, these are the areas most projects touch.
Reusable home, product, collection, content and campaign sections with schema-driven admin controls and sensible limits.
Variant logic, media galleries, bundles, subscriptions, sticky add-to-cart, size guidance and the trust content that decides the sale.
Asset cleanup, image strategy, script control, CSS splitting, lazy loading and layout stability. We design to Google's published thresholds and measure them on your templates, not a blank page.
Semantic markup, one h1 per template, clean heading order, structured-data hooks, crawlable filter states and collection copy areas — so search engines and AI answer engines can read your store rather than guess at it.
Collection templates, faceted navigation, sorting, promotional tiles and merchandising patterns that stay fast at three thousand SKUs.
Documented sections, editor training, QA notes and a walkthrough, so your internal team can run the theme after launch without a ticket for every change.
A premium theme is often the right answer, and we will tell you when it is. This is the honest version of the trade-off.
| Premium theme | Custom TLX theme | |
|---|---|---|
| Time to launch | Days to a few weeks | Longer — it is a build, not a install |
| Up-front cost | Lowest | Higher, paid once rather than per store |
| Unused code shipped | Every feature for every store, whether you use it or not | Only what your store needs |
| Brand fit | Within the theme's settings | No ceiling — the design leads |
| Customization ceiling | Hit it and you are patching a vendor's code | The code is yours to extend |
| Theme updates | Vendor updates can overwrite your changes | You control when anything changes |
| Performance | Depends on the theme and what you bolt onto it | Budgeted and measured on your templates |
| Who to call | Vendor support queue | The developers who wrote it |
| Best when | Validating, early stage, or the theme genuinely fits | The theme is the constraint on revenue or brand |
Seven stages, from the first conversation to the maintenance nobody warns you about. Open any one of them.
Working out what the theme actually has to do.
We go through the current theme, the installed apps, your analytics and a copy of your real catalog, then write the scope down. Most of the surprises on a theme project are found here or paid for later.
Every state, not just the happy path.
Templates designed at the component level — empty, loading, error, out-of-stock and 40-character-product-name states included — and signed off before anyone writes a line of Liquid.
Working software on a preview theme, not a slide deck.
Liquid, sections and schema, built in Git with a preview theme per branch. You get a link from the first week and can watch it come together rather than waiting for a reveal.
The pass that happens with your apps installed.
Cross-browser and device coverage, keyboard and screen-reader checks, and Core Web Vitals measured against the budget — on your templates, with your app stack live, because that is the theme your customers get.
Boring on purpose.
Redirect map verified, analytics and structured data confirmed on the new templates, publish, then watch the real numbers. A rollback plan exists before it is needed, not after.
So your team is not dependent on us.
Documented sections, editor training and QA notes for the people who will run the store day to day. The code is yours, in your repository, with no licence and nothing to keep paying for.
A theme is not finished at launch.
Retained hours for fixes, seasonal work and iteration, with reporting on where the hours went. Or take it in-house — the handoff stage exists so that is a real option, not a bluff.
Three shapes, depending on how well defined the work is. Every one starts with a scoped written proposal — no work begins on a verbal estimate.
Fixed scope
Fixed price
against a written scope
Retainer
Monthly
block of hours
Time & materials
Tracked time
billed as used
Rates are quoted against a written scope rather than published as a tier, because the same service costs very different amounts on a five-template store and a five-hundred-template one.
The template is the same. What changes is the problem the product page has to solve — and that is almost entirely a function of the category.
Custom Online Store 2.0 themes, and targeted work on the theme you already run, built in Liquid against a copy of your real catalogue. Scope usually covers custom sections with schema-driven admin controls, product page UX, collection templates and faceted filtering, theme speed engineered to Core Web Vitals, SEO-safe semantic templates, and handoff with documentation and editor training.
Buy a premium theme if you are still validating the business or the theme genuinely fits your merchandising — a custom Shopify theme will not fix a positioning problem. Build custom when the theme has become the constraint: you are patching vendor code to ship changes, the design cannot express the brand, or performance is stuck because the theme ships features you never use.
Usually, but the theme is only part of it. A custom theme ships less unused code and gives us control over images, fonts and critical CSS — what it cannot do alone is undo six apps injecting render-blocking scripts. That is why discovery audits the app layer as well as the theme; sometimes the biggest Core Web Vitals win is removing an app, not rewriting the front end.
Yes, and it is a large share of the theme work we do — new sections, a rebuilt product page, a performance pass. Targeted customisation is often better value than a rebuild. The caveat is vendor updates: changes made directly to a premium theme can be overwritten when the vendor ships a new version, so we document what was changed and where.
Yes. On Shopify Plus the theme also has to account for checkout extensibility, Shopify Functions, B2B catalogues and multiple Markets, which changes how templates and pricing display logic are structured. Say so early — it affects the design, not just the build.
Both are built in rather than added later: semantic markup, keyboard-reachable navigation and filters, visible focus, contrast checked against real backgrounds, one h1 per template, clean heading order, product and breadcrumb structured data, and canonical handling for filtered collection URLs. We will not claim a compliance certification we have not been audited for — a formal WCAG conformance statement is a separate engagement with a third-party auditor.
You do. The Shopify theme lives in your Git repository and your Shopify store, with no licence, no runtime dependency on TLX Apps and nothing to keep paying for. If you move to another agency, they get a documented codebase rather than a puzzle.
It depends on catalogue size, template count and how much of the design already exists, so a published number would be meaningless. We scope first and quote against a written scope — fixed price, a monthly retainer, or time and materials. Tell us your template count and platform and we will put a rough range in writing before a scoping call.
Launch is a checkpoint, not the end. Most clients move onto a retainer for fixes, seasonal work and iteration through On-Demand Shopify Support. If you would rather run the theme in-house, the handoff stage covers documented sections, editor training and a walkthrough for your team.
Tell us what your current theme is stopping you from doing. We will come back with an honest read on whether it needs a rebuild, a rescue, or nothing at all.
Tell us what you are building and we will come back with a straight read on scope — including when the answer is that you do not need us.