<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aytac</title>
    <description>The latest articles on DEV Community by Aytac (@dirora).</description>
    <link>https://dev.to/dirora</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4016754%2F85b82701-bc72-4cf9-8228-940ffebeb47b.png</url>
      <title>DEV Community: Aytac</title>
      <link>https://dev.to/dirora</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dirora"/>
    <language>en</language>
    <item>
      <title>How we built Dirora — an e-commerce platform that puts the add-ons back in the box</title>
      <dc:creator>Aytac</dc:creator>
      <pubDate>Sun, 05 Jul 2026 23:00:37 +0000</pubDate>
      <link>https://dev.to/dirora/how-we-built-dirora-an-e-commerce-platform-that-puts-the-add-ons-back-in-the-box-5j3</link>
      <guid>https://dev.to/dirora/how-we-built-dirora-an-e-commerce-platform-that-puts-the-add-ons-back-in-the-box-5j3</guid>
      <description>&lt;h2&gt;
  
  
  The problem: you don't own a store, you rent a stack
&lt;/h2&gt;

&lt;p&gt;If you have ever run a shop on a hosted e-commerce platform, you know the feeling. You sign up for a tidy monthly plan, and within a fortnight your "cheap" store is quietly bleeding money. Reviews? That's an app. Loyalty points? Another app. A referral programme, a proper blog, multi-currency, subscriptions, a help desk, B2B quotes? Apps, apps, apps — each one £15–£40 a month, each one another dashboard, another dependency, another thing that breaks when the platform updates.&lt;/p&gt;

&lt;p&gt;Then there is the part nobody puts on the pricing page: the &lt;strong&gt;transaction fee&lt;/strong&gt;. Many platforms take a percentage of every single sale &lt;em&gt;on top&lt;/em&gt; of what your payment processor already charges — purely for the privilege of using their checkout. On thin retail margins, that "small" percentage is often the difference between a healthy month and a break-even one.&lt;/p&gt;

&lt;p&gt;We built &lt;a href="https://dirora.com" rel="noopener noreferrer"&gt;Dirora&lt;/a&gt; because we were tired of watching good businesses pay a tax on their own success. The idea was almost embarrassingly simple: &lt;strong&gt;what if the features you'd normally rent as add-ons just came in the box — even on the free plan?&lt;/strong&gt; Our one-liner became the whole product thesis: &lt;em&gt;everything you'd pay extra for, included.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the story of how we turned that thesis into a multi-tenant platform with &lt;strong&gt;68+ built-in features&lt;/strong&gt;, and the architecture decisions that made it possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core bet: features are a platform problem, not a marketplace problem
&lt;/h2&gt;

&lt;p&gt;The dominant model in e-commerce is a small core plus a giant third-party app marketplace. It is a good business model — for the platform. It offloads feature development to thousands of developers and monetises merchants twice (plan + app subscriptions). But it makes the &lt;em&gt;merchant's&lt;/em&gt; total cost of ownership unpredictable and high.&lt;/p&gt;

&lt;p&gt;We made the opposite bet: build the long tail of commerce features &lt;strong&gt;natively&lt;/strong&gt;, as first-class parts of the platform, and price the platform so growth is rewarded rather than penalised. That means the same feature set — reviews, loyalty, multi-tier referrals, gift cards, subscriptions, multi-currency and multi-language, a professional blog and page builder, a help desk, B2B quotations, manufacturing with bills of materials and purchase orders, partner programmes, fraud protection, SEO tools and more — is available on &lt;strong&gt;every&lt;/strong&gt; plan, including the free one. Plans gate &lt;em&gt;limits&lt;/em&gt; (products, staff seats, storage), not &lt;em&gt;capabilities&lt;/em&gt;. A one-person shop on the free plan has the same toolbox as an enterprise; only the scale changes.&lt;/p&gt;

&lt;p&gt;That bet only works if the engineering underneath can carry dozens of real features without collapsing into a monolith. So the architecture had to be right from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we built it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Multi-tenant from the first commit
&lt;/h3&gt;

&lt;p&gt;Dirora is multi-tenant by design. One deployment serves many stores, each fully isolated, each reachable at its own subdomain or a custom domain with automatic SSL. Getting isolation right early — so one tenant's data, themes, and settings can never leak into another's — is far cheaper than retrofitting it later. Every domain service is scoped by tenant at the data layer, and cross-tenant reads are the exception, not the rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  A fleet of small Go services, not one big app
&lt;/h3&gt;

&lt;p&gt;The backend is built in &lt;strong&gt;Go&lt;/strong&gt;, split into &lt;strong&gt;40+ microservices&lt;/strong&gt; along clean domain boundaries: catalogue, orders, payments, subscriptions, content, quotations, inventory and supply chain, notifications, and so on. We chose Go for the obvious reasons — it is fast, its concurrency model suits request-heavy commerce workloads, and its static binaries keep services lean.&lt;/p&gt;

&lt;p&gt;The less obvious benefit is &lt;em&gt;organisational&lt;/em&gt;: small service boundaries let us add a whole new capability (say, a quotations engine or a manufacturing module) without bloating an existing codebase or risking a regression in checkout. Read-heavy endpoints — product listings, search, collection pages — stay quick under load because they are handled by focused services with their own data access patterns. PostgreSQL is our system of record, with Redis for caching and an S3-compatible object store for media, all fronted by Traefik for routing.&lt;/p&gt;

&lt;h3&gt;
  
  
  API-first, so the UI is just another client
&lt;/h3&gt;

&lt;p&gt;This is the decision we are proudest of. Every capability in Dirora is designed as an &lt;strong&gt;API endpoint first&lt;/strong&gt;; the admin dashboard and the default storefront are simply consumers of that same contract. There is no hidden "UI-only" feature — if the admin can do it, so can your integration.&lt;/p&gt;

&lt;p&gt;Being API-first pays off three ways. &lt;strong&gt;Parity:&lt;/strong&gt; merchants and developers are never blocked because a feature only exists in the dashboard. &lt;strong&gt;Stability:&lt;/strong&gt; because our own front ends depend on the API, breaking changes are expensive for us too, which keeps our incentives aligned with the people building on us. &lt;strong&gt;Composability:&lt;/strong&gt; you can adopt one slice — read-only product data for a marketing site, or a headless storefront — without rebuilding checkout. The public REST API, OAuth, and webhooks are what let third-party developers build and publish to our &lt;strong&gt;app and theme marketplaces&lt;/strong&gt;, and what let merchants wire Dirora into the rest of their tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  A visual theme engine, not a code-only theme system
&lt;/h3&gt;

&lt;p&gt;Design is where most "developer-first" platforms lose non-technical merchants. We built a &lt;strong&gt;visual theme editor&lt;/strong&gt; with a layout engine, live preview, undo/redo history, and a library of storefront widgets, plus support for custom CSS, fonts and Custom HTML for people who do want to go deeper. Server-side rendering, automatic image optimisation and structured data ship by default, so stores are fast and crawlable without anyone touching a config file.&lt;/p&gt;

&lt;h3&gt;
  
  
  The economics we engineered on purpose
&lt;/h3&gt;

&lt;p&gt;The feature set is only half the promise; the pricing is the other half. Dirora charges &lt;strong&gt;no transaction fees on any plan&lt;/strong&gt;. The only cut we take is a small &lt;strong&gt;platform fee that falls as you grow&lt;/strong&gt; — from 1.5% on the free Starter plan to 0.75% on Pro, 0.25% on Business, and 0% on Enterprise. Plans are £0, £19, £59 and £299 a month, with two months effectively free on annual billing. When a merchant is fighting for a couple of pounds of margin per unit, the platform should not be first in the queue — and by design, it isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What merchants actually get
&lt;/h2&gt;

&lt;p&gt;Because the platform carries the features, onboarding a real store doesn't mean assembling a stack of subscriptions. Out of the box you get physical and digital products, subscriptions, gift cards, bundles, and made-to-order/fractional selling; multi-currency and multi-language storefronts with AI-assisted translation; a marketing suite (email campaigns, reviews, multi-tier referrals, promotions); B2B quotations with quote-to-order conversion; manufacturing with components, production and purchase orders; a help desk; and a growing &lt;strong&gt;live integrations directory&lt;/strong&gt; — FreeAgent for accounting, Royal Mail Click &amp;amp; Drop for fulfilment, Google Analytics, Meta and TikTok pixels, Slack, Discord and more — all installable without code. Payments run through Stripe (cards at standard rates, Apple Pay, Google Pay, Klarna, Clearpay) with PayPal available.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest part
&lt;/h2&gt;

&lt;p&gt;Building features natively is &lt;em&gt;slower&lt;/em&gt; than curating a marketplace. Every capability we ship is one we have to maintain, support and secure ourselves. We accept that trade because it is the only way to make the pricing promise real: you cannot credibly say "everything included" if half the "everything" is someone else's paid add-on. Multi-tenancy and an API-first contract also impose discipline — you move a little more carefully when every service is a public product — but that discipline is exactly what keeps the platform stable as it grows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you have ever added up your monthly app subscriptions and winced, that spreadsheet is the reason Dirora exists. You can spin up a store on the free plan and see the whole feature set — the same one enterprises get — at &lt;strong&gt;&lt;a href="https://dirora.com" rel="noopener noreferrer"&gt;dirora.com&lt;/a&gt;&lt;/strong&gt;, and weigh the true cost against your current stack on our &lt;a href="https://dirora.com/en-GB/compare" rel="noopener noreferrer"&gt;comparison page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We didn't build a smaller core with a bigger marketplace. We built the box big enough to hold everything you'd otherwise rent.&lt;/p&gt;

</description>
      <category>saas</category>
      <category>showdev</category>
      <category>startup</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
