SellubDevelopersArchitecture

Architecture

High-level

                        ┌──────────────────────────────┐
                        │       Customer browser       │
                        └──────────────┬───────────────┘

                  ┌────────────────────┼────────────────────┐
                  ▼                    ▼                    ▼
       ┌─────────────────┐  ┌─────────────────────┐  ┌─────────────────┐
       │  Marketplace    │  │  Branded storefront │  │  Donations /    │
       │  Next.js        │  │  Next.js (Type 2)   │  │  Modules pages  │
       │  sellub.com     │  │  custom domain      │  │  Type 4         │
       └────────┬────────┘  └──────────┬──────────┘  └────────┬────────┘
                │                       │                       │
                └────────────┬──────────┴────────────┬──────────┘
                             ▼                       ▼
                    ┌────────────────────────────────────────┐
                    │       Vendure GraphQL APIs             │
                    │   Shop API ──── Admin API              │
                    └─────────────────┬──────────────────────┘

            ┌─────────────────────────┼─────────────────────────┐
            ▼                         ▼                         ▼
    ┌──────────────┐         ┌──────────────┐         ┌──────────────────┐
    │  PostgreSQL  │         │    Redis     │         │  Paystack /      │
    │  (data)      │         │ (jobs+cache) │         │  Email / Search  │
    └──────────────┘         └──────────────┘         └──────────────────┘


                              ┌──────────────────┐
                              │ Dashboard UI     │
                              │ (React/Vendure)  │
                              │ dashboard.sellub │
                              └──────────────────┘

Channels & multi-tenancy

Each seller’s storefront is a separate Channel in Vendure. See Multi-tenancy for details.

Apps in the repo

AppPathPurpose
sellub-serverapps/sellub/sellub-serverVendure backend
sellub-dashboardapps/sellub/sellub-dashboardCustomised admin UI
sellub-storefrontapps/sellub/sellub-storefrontNext.js storefront template
sellub-docsapps/sellub-docsThis Nextra docs site

Key extensions

The server is mostly stock Vendure plus these custom plugins (under sellub-server/src/plugins):

  • SellerApplicationPlugin — application form, review workflow, conversion to seller account.
  • PaystackPaymentPlugin — Paystack integration for cards, MoMo, bank.
  • SellerWalletPlugin — wallet ledger, withdrawals, adjustments.
  • MultiChannelOnboardingPlugin — provisions a new channel + admin on seller approval.
  • EasyModePlugin — alternative simplified UI shell.
  • DomainVerificationPlugin — DNS check + cert issuance for Type 2 custom domains.

See each plugin’s README for details.