Salla vs Zid vs a custom store: what you can design (2026)
Salla vs Zid vs a custom Next.js store: what you can design on each screen, plan prices in SAR, mada and BNPL, ZATCA, and when going custom pays.

Salla vs Zid gives a designer the same answer twice: you can redesign almost every storefront page through a theme, but the checkout belongs to the platform. Salla themes are Twig templates on its Twilight engine; Zid themes are Jinja templates on its Vitrin engine. On both, the customer pays on a page the platform hosts, which you can brand but not rebuild.
Code-level theme work costs the same on each. Salla allows your own CSS and JavaScript, or a private Twilight theme, from Salla Pro (SAR 299 a month or SAR 2,990 a year). Zid lists CSS customisation on Growth (SAR 299 a month or SAR 2,988 a year) and above. A custom Next.js store gives you every screen, checkout included, but you then own payments, ZATCA e-invoicing and hosting.
This guide is for Riyadh founders and e-commerce leads choosing where a store should live. My team designs store themes and builds custom stores as part of my web app development work for Riyadh, and I mapped each screen from the platforms' own docs and pricing pages on 5 October 2026.
Salla vs Zid vs a custom store at a glance
| Salla | Zid | Custom Next.js store | |
|---|---|---|---|
| Theme engine | Twilight: Twig plus Salla web components | Vitrin: Jinja plus JSON settings schemas | Your own React components |
| Checkout | Salla-hosted, brandable | Zid-hosted, as a page or a popup | Yours to design and build |
| Your own code | From Pro: CSS, JS, private theme | Growth and up: CSS customisation | Always |
| Headless front end | Cart APIs, then redirect to hosted checkout | Storefront APIs; login and checkout stay web pages | Native |
| API rate limit | 120, 360 or 720 requests a minute, by plan | 60 a minute per app per store | Your own stack |
Salla and Zid give you the commerce engine, payments, invoicing and operations, and ask you to design inside their templates. A custom store gives you the whole surface and every obligation the platforms were carrying.
What a designer controls on each screen
Each platform documents a fixed set of page templates; anything outside it is a platform page. This map comes from Salla's Twilight docs and Zid's Vitrin docs.
| Screen | Salla (Twilight) | Zid (Vitrin) | Custom Next.js |
|---|---|---|---|
| Home | index.twig, with components merchants configure | home.jinja, with sections merchants reorder | Anything |
| Category and search | Listing template; <salla-filters> for filters | category.jinja, products.jinja | Your own search |
| Product | single.twig; options and add to cart via Salla web components | product.jinja, with variant and option objects | Everything |
| Cart | cart.twig | cart.jinja, with shared payment widgets | Everything |
| Checkout | Hosted; brand it | Hosted page or popup | Everything |
| Order confirmation | thank-you.twig | Not among documented templates | Everything |
| Account | Profile, orders, wishlist, notifications | System pages you may override | Everything |
| Arabic RTL | dir from the theme's is_rtl flag | dir from the session locale | You set lang and dir |
| Apps and APIs | App Store, Merchant API, webhooks | 400+ apps (Zid's figure), Merchant API, webhooks | Whatever you integrate |

Everything above the checkout is yours to design on all three, with Salla leaning on its own components for options and add to cart. From the checkout down, the platforms take over; only a custom store lets you redesign the payment step and the invoice hand-off.

Salla theme design: the Twilight rules nobody quotes
Salla theme design runs on Twilight: Twig templates, a JavaScript SDK and Salla web components. Salla's docs say the predefined pages' names and paths cannot change, and there is no checkout template; the cart links into Salla's checkout.
To publish in Salla's Theme Store, a theme must pass review:
- Size. At most 1MB for a public theme and 2MB for a private one.
- Uniqueness. A theme built on the starter, Theme Raed, must be "substantively different" in code and art direction.
- Speed and access. Average Lighthouse scores of at least 60 for performance and 90 for accessibility, across product, collection and home pages, on desktop and mobile.
- No hard-coded text or raw HTML. Strings come from localisation files, and settings may not let merchants paste HTML.
The UX review lists what pages must show: full product title, price, a tax-included indicator, variant images, a changed add to cart button for sold-out variants, and sharing such as WhatsApp.
On Salla's plans page, theme copies and scheduled publishing come with Plus; CSS, JavaScript and a private Twilight theme need Pro. Its payments page offers a checkout carrying the store's brand identity, plus a custom payment link and verification messages. That is the extent of checkout design.
One theme developer's README says checkout and thank-you flows are Salla-hosted, yet Twilight lists a thank-you template, so test it on a development store first.
In practice, 1MB means one Arabic and one Latin family in two weights, SVG icons and no heavy slider library. I set that budget before the first screen.
Zid theme design with Vitrin
Zid's theme engine is Vitrin: Jinja templates, JSON schemas that expose settings in the Theme Editor, and assets on Zid's CDN. Zid set 28 December 2025 as the cut-off for older Twig themes.
- One base layout. Every template extends
layout.jinja, which must include thevitrin_headandvitrin_bodytags. - Fixed template names, defaults for gaps. Skip a template and Zid uses its default theme's version, so you can redesign only the home page, header and footer.
- Optional account pages. Profile, orders, wishlist and loyalty are system pages you may override.
- No custom error screens. Zid's SDK renders server errors, never the theme.
Zid gives the theme a little more say near checkout than Salla does. A checkout dialog template opens checkout in a popup, recommended on the product page. An Apple Pay template sells one product from the product page without touching the cart, or the whole cart from the cart page, once per page. Bank discount offers sit above the Tabby and Tamara widgets.
Zid's pricing page puts CSS customisation on Growth and Professional, a custom domain from Rise, and team seats at 1, 1, 5 and 20. I found no published theme size cap.
Going headless on Salla or Zid: the checkout stays hosted
Both platforms document APIs for a separate front end, such as a Next.js site or an app. Neither lets that front end take the payment.
Salla's Checkout APIs create carts, manage items by product ID, variant ID or SKU, apply coupons and attach a guest cart to a signed-in customer. Every cart response carries a checkout_url, the docs exclude payment submission, and the flow ends in a redirect to Salla's hosted checkout.
Zid's Storefront APIs cover the rest of the store, but Zid says there are no endpoints for login or checkout; apps open those pages in a web view with the session cookie.
Mind the limits. Salla's Merchant API allows 120 requests a minute on Plus, 360 on Pro and 720 on Special; Zid allows 60 a minute per app per store and tells developers to use webhooks. Cache the catalogue and rebuild pages on webhooks, rather than calling the API on every view. Then design the jump to the hosted checkout as a deliberate step.
A custom Next.js store: every screen and every obligation
A custom store removes the template list. You design checkout as one page or several, place the instalment message where research says it helps, model any pricing, and build Arabic right to left into every component, with locale routes as Next.js's internationalisation guide describes.
You also take on what the platforms were doing:
- A commerce back end: catalogue, stock, orders, returns and an admin.
- A gateway: Moyasar documents mada, Visa, Mastercard, Apple Pay, STC Pay and Google Pay; HyperPay lists Tabby, Tamara and STC Pay alongside cards.
- Instalments: Tabby documents a checkout session API, on-site snippets and webhooks; Tamara runs its own API hub.
- Sign-in: one-time codes, as both platforms use, or Nafath sign-in where identity matters.
- E-invoicing, hosting and security: your Fatoora connection, PDPL-aware hosting and monitoring.
This is what my team scopes for Next.js development projects in Riyadh: gateway, invoice hand-off and hosting region are written down before any screen is coded.
Plan prices and payment fees in SAR (October 2026)
Neither pricing page says whether plan prices include VAT, so ask before budgeting.
| Plan | Monthly | Billed yearly | What it adds for design and build |
|---|---|---|---|
| Salla Basic | Free | Free | No online payments or own domain |
| Salla Plus | SAR 99 | SAR 990 | Online payments, own domain, theme copies |
| Salla Pro | SAR 299 | SAR 2,990 | CSS and JS, private theme, staff accounts, ZATCA app |
| Salla Special | On request | On request | Flexible payment fees, ERP integration |
| Zid Starter | Free | Free | Bank transfer and cash on delivery only |
| Zid Rise | SAR 99 | SAR 990 | Custom domain, advanced payment methods |
| Zid Growth | SAR 299 | SAR 2,988 | CSS customisation, invoice and tax settings, free domain |
| Zid Professional | On request | Paid yearly | 20 team members |

The ladders match almost riyal for riyal, so the fee should not decide; what each plan unlocks should.
Zid publishes card fees; Salla's payments page lists methods but no rates, so ask Salla in writing.
| Zid Payments, before VAT | Rise | Growth | Professional |
|---|---|---|---|
| mada | 1% + SAR 1 | 1% + SAR 1 | 1% + SAR 0.75 |
| Visa and Mastercard | 2.4% + SAR 1 | 2.3% + SAR 1 | 2.2% + SAR 0.75 |
| Apple Pay | Card's rate | Card's rate | Card's rate |
| American Express | 3.4% + SAR 1 | 3.3% + SAR 1 | 3.2% + SAR 0.75 |
Zid caps the mada fee at SAR 200 before VAT. On Growth, a SAR 349 mada order costs SAR 3.49 + SAR 1 = SAR 4.49, about SAR 5.16 with 15% VAT on the fee. By Visa it costs SAR 9.03, about SAR 10.38.
Payments: mada, Apple Pay, STC Pay, Tabby and Tamara on each
| Method | Salla | Zid | Custom Next.js |
|---|---|---|---|
| mada | Salla Payments | Zid Payments | Your gateway |
| Apple Pay | Yes, with a buy button | Yes, quick checkout template | Your gateway |
| STC Pay | Listed | Not on Zid's payments page; ask | Moyasar, HyperPay |
| Tabby | Listed; instalment component | Listed; payment widget | Tabby's API |
| Tamara | Listed | Listed | Tamara's API |
| Also | PayPal, Spotii, Cashew | MISPay, Emkan, Madfu | Anything you integrate |
Salla's Merchant API returns each store's enabled methods with slugs such as mada, stc_pay and tabby_installment, useful when a headless front end previews methods before the hand-off.
On a platform, your payment design work is the product and cart pages: where the instalment message sits and whether an express button appears. On a custom store you also design method order, Arabic error states and the 3D Secure return.
ZATCA e-invoicing on each option, and what Wave 25 changes
ZATCA announced Wave 25 on 24 July 2026: taxpayers whose VAT-able revenue exceeded SAR 187,500 in 2022, 2023, 2024 or 2025 must integrate with Fatoora by 1 February 2027. ZATCA's guidelines say business invoices are cleared before the buyer gets them, and consumer (simplified) invoices are reported in XML within 24 hours.
- Salla: a free ZATCA app, for Saudi stores on Pro and Special only (help centre, 31 August 2026). It needs a ZATCA account, commercial registration, a verified store and a full branch address.
- Zid: a free Fatoora link (help centre, 3 August 2026), needing the legal name, VAT number and address; the pricing page lists invoice and tax settings on Growth and Professional.
- Custom: your own e-invoicing solution, plus invoice, credit note and status screens.
For a Wave 25 business on Salla Plus, compliance through Salla means Pro: SAR 2,000 a year more. That is small next to building the hand-off yourself. This is not tax advice.
When to go custom: a decision framework
Platforms suit most new Saudi stores. These triggers are where they stop:
- The checkout must change: deposits, B2B terms, subscriptions.
- Pricing the platform cannot express: trade tiers, rule-built bundles, multi-vendor splits.
- Integrations hit rate limits: an ERP needing more than Zid's 60 requests a minute.
- The theme fights the design: a storefront that cannot fit 1MB.
- One back end for web and app.
| Your situation | Best fit |
|---|---|
| New brand, standard checkout, small team | Salla or Zid with a listed theme |
| Distinctive storefront, standard checkout | Custom theme on Salla Pro or Zid Growth |
| Custom front end or app, platform operations | Headless on Salla or Zid |
| Checkout, pricing or integrations must change | Custom Next.js store |
| Wave 25 business on a lower plan | Upgrade, or custom with your own e-invoicing |
If you stay on a platform, design still decides the result; my website design work for Riyadh covers Arabic-first storefronts.

Moving from Salla or Zid to a custom store: steps and cost
- Export data through each Merchant API; Salla returns at most 60 records a page.
- Map every URL to a 301 redirect before launch.
- Rebuild sign-in. Both platforms use one-time codes, so there are no passwords to move.
- Test payments end to end: mada, Apple Pay, STC Pay, instalments, refunds.
- Onboard e-invoicing on Fatoora before the first live order, with your tax adviser.
- Switch over: freeze the catalogue, move the last orders, point the domain.
Published costs come from global agencies, not Saudi custom builds; I convert at SAMA's 3.75 riyals to the dollar.
| Source | Scope | Cost | Time |
|---|---|---|---|
| HulkApps, Salla to Shopify | Data: up to 1,000 products, customers, orders | From USD 1,499 (SAR 5,621) | Not stated |
| Codilar, Salla to Shopify, July 2026 | Standard, or with ERP | Not stated | 4 to 8 weeks, or 10 to 16 |
| Elogic Cost Index 2026, tier 1 | Under 5,000 SKUs, no ERP | USD 15,000 to 50,000 (SAR 56,250 to 187,500) | 6 to 12 weeks |
| Elogic, tier 2 | 5,000 to 50,000 SKUs, one ERP | USD 80,000 to 250,000 (SAR 300,000 to 937,500) | 4 to 8 months |
Codilar warns that skipping redirects loses three to six months of search equity. For local build prices, see my guide to website prices in Riyadh and Jeddah.
Common mistakes when choosing between Salla, Zid and custom
- Designing a checkout the platform will not build. Design the hand-off instead.
- Finding the 1MB budget at review. Fonts and sliders fill it fast.
- Building on the wrong plan. Own code needs Salla Pro or Zid Growth.
- Hard-coding text and left and right CSS. Salla's review rejects static strings.
- Polling the API instead of using webhooks.
- Going custom without owning e-invoicing.
- Comparing plan fees only. Payment fees and apps usually cost more.
Frequently asked questions
Which is cheaper, Salla or Zid?
On list price they match. Both have a free plan, a SAR 99 monthly plan and a SAR 299 monthly plan, with enterprise plans on request. Billed yearly, Salla Plus and Zid Rise cost SAR 990, Salla Pro SAR 2,990 and Zid Growth SAR 2,988. Compare payment fees and what each plan unlocks instead.
Can I customise the checkout page on Salla or Zid?
Only its branding. Salla's hosted checkout can carry your brand identity, payment link and verification messages. Zid's is also hosted, but a theme can open it as a popup and add an Apple Pay quick checkout button. Rebuilding the payment step itself needs a custom store.
Do I need Salla Pro to build a custom theme?
For your own code, yes. Salla's plans page lists CSS and JavaScript customisation and building a private Twilight theme on Pro only; theme copies and scheduled publishing start on Plus. A theme sold in Salla's Theme Store must also pass review, including the 1MB size cap.
Can I build a headless Salla or Zid store with Next.js?
Partly. Salla's Checkout APIs let a Next.js front end manage carts and coupons, then redirect to Salla's hosted checkout. Zid's Storefront APIs cover most of the store, but login and checkout open as Zid web pages. You build everything before checkout and cache the catalogue to respect rate limits.
Do Salla and Zid handle ZATCA e-invoicing?
Yes. Salla's free ZATCA app links invoices to ZATCA on Pro and Special only. Zid offers a free Fatoora link, and lists invoice and tax settings on Growth and Professional. Both need your ZATCA account. A custom store needs its own e-invoicing solution connected to Fatoora.
Do Salla and Zid support Tabby and Tamara?
Yes. Salla's payments page lists Tabby, Tamara, Spotii and Cashew, and themes show instalments with a web component. Zid lists Tamara, Tabby, MISPay, Emkan and Madfu, with a shared payment widget for the cart. A custom store integrates Tabby and Tamara through their own APIs.
How long does it take to move from Salla to a custom store?
Published figures cover moves to Shopify or between global platforms. Codilar puts a standard Salla to Shopify migration at four to eight weeks, or ten to sixteen with an ERP. Elogic puts a small replatforming at six to twelve weeks. A custom build adds design and development time.
What is Theme Raed?
Theme Raed is Salla's open-source starter theme for Twilight, on GitHub. Many developers start from it, but Salla's publishing rules reject a theme that is not substantively different from Raed in code, design and functionality, and expect themes to keep up with Raed's updates.
My recommendation
Start on Salla or Zid unless the checkout, pricing or integrations must change. They are closer than most comparisons suggest: the same price ladder, the same hosted checkout, and the same SAR 299 plan before you write your own code. Choose on payment fees, apps and support, then put the design effort into the pages you control.
Go custom when the platform's checkout or limits cost more than a build, and plan gateway, instalments, e-invoicing and hosting before screens. If you are weighing that move, or a headless front end on your current store, read about me and my wider development service, then talk to me about Next.js store development for Riyadh.
Sources and method
Undated sources were read on 5 October 2026; Salla's plans and payments pages were read in a browser, as they block automated requests. USD figures use SAMA's official 3.75 riyals to the dollar. I could not find Salla's card rates, STC Pay on Zid's payments page, a Zid theme size cap, VAT treatment of either plan price, or any published Saudi range for a custom store.
- Salla Docs, theme requirements and review, read 5 October 2026: main requirements, technical review, UX review
- Salla Docs, Twilight pages, read 5 October 2026: overview, thank-you, single product, login
- Salla Docs, APIs, read 5 October 2026: Checkout APIs, checkout URL, rate limits, pagination, payment methods
- Salla, Theme Raed on GitHub, read 5 October 2026: github.com
- Salla, plans and payments pages, read 5 October 2026: plans, payments
- Salla Help Centre, linking with ZATCA, updated 31 August 2026: help.salla.sa
- markeradvagency-dev, Salla theme README, read 5 October 2026: github.com
- Zid Docs, Vitrin themes, read 5 October 2026: theme development, Twig migration, templates, overridable templates, cart
- Zid Docs, checkout features, read 5 October 2026: checkout popup, Apple Pay, login and checkout via page views, rate limits
- Zid, Growth theme on GitHub, read 5 October 2026: github.com
- Zid, pricing and payments pages, read 5 October 2026: pricing, payments
- Zid Help Centre, Fatoora integration, updated 3 August 2026: help.zid.sa
- ZATCA, Wave 25 criteria, 24 July 2026: zatca.gov.sa
- ZATCA, Detailed Guidelines for E-Invoicing, May 2023: zatca.gov.sa
- Moyasar, documentation, read 5 October 2026: docs.moyasar.com
- HyperPay, Apple Pay gateway guide, 18 September 2026: hyperpay.com
- Tabby and Tamara, developer docs, read 5 October 2026: Tabby, Tamara
- Next.js, internationalisation guide, read 5 October 2026: nextjs.org
- Elogic, Replatforming Cost Index 2026, updated 3 September 2026: elogic.co
- Codilar, Salla to Shopify migration guide, 22 July 2026: codilar.sa
- HulkApps, Salla to Shopify migration service, read 5 October 2026: hulkapps.com
- Saudi Central Bank, exchange rate statement, 4 May 2020: sama.gov.sa

