Skip to content

ePlanet · Fintech · multi-brand

ePlanet: one deployment running 15+ brand sites in 12+ languages

Another brand site is a configuration change, not a release. A new page is live in under ten minutes.

A multi-tenant platform for ePlanet: one Next.js deployment serves 15+ brand sites, with a template-based page builder, two-tier roles, SEO per domain and AI translation for new languages.

  • 15+

    Websites on one platform

  • < 10min

    Page build time

  • 12+

    Languages supported

  • 100+

    Section templates

What it solves

The problem, and what runs now.

  • The problem: A brand site built as its own project needs a release to launch.

    What runs now: Launching another brand site is a configuration change on the same deployment.

  • The problem: A page change that goes through developers waits for the next deploy.

    What runs now: Editors build from 100+ section templates; a new page is live in under ten minutes.

  • The problem: Adding a language by hand means rebuilding every page in it.

    What runs now: The AI translator creates the pages and puts the whole site live in a new language.

How it runs

Step through the workflow.

  1. New site

    Another brand site is a configuration change

    One Next.js deployment serves every site. Middleware resolves each request's domain to the right site and applies its redirect rules, so launching a brand site is not a release.

    • 15+ brand sites on one deployment
    • As many sites as needed, within a click
    • Language read from the URL
  2. Roles

    Two tiers of role-based access

    Global roles apply across the platform; per-site roles apply to a brand site. An editor for one brand cannot see or change another brand's content.

    • Global: Super Admin, Admin, Client
    • Per site: Manager, Editor
  3. Page builder

    Pages built from 100+ section templates

    Editors reorder sections by drag and drop, change per-section settings and preview on desktop and mobile. Navigation and footer builders are fully configurable too.

    • Direct JSON editing for power users
    • S3-compatible file manager inside the editor
  4. AI translation

    New languages added with the AI translator

    12+ languages run today, including full right-to-left. The AI translator is how the next one is added: it creates the pages and puts the whole site live in that language.

    • RTL detected for Arabic, Farsi, Urdu, Hebrew, Kurdish
    • Layout flips and a Persian typeface loads
  5. SEO per site

    SEO configured per domain

    SEO is set per domain, not once for the whole platform, so each brand site carries its own search settings.

    • Per-site XML sitemaps and robots.txt
    • Redirects with loop protection
    • Head and body scripts per site and language
  6. Live

    Live without a deploy

    A new page is live in under ten minutes without a deploy. The API client is generated from the backend's OpenAPI spec, so contract changes fail at build time rather than in production.

    • API client generated with Orval and TanStack Query
    • Tournament leaderboards synced from the trading platform

What we built

Services

  • Multi-Tenant Architecture
  • Custom Platform
  • Page Builder
  • Role-Based Access
  • AI Translation
  • Multi-Language
  • SEO Architecture

Stack

  • Next.js
  • MinIO
  • Orval
  • TanStack Query
  • dnd-kit

The full write-up

The problem

ePlanet runs 15+ brand sites in 12+ languages, including right-to-left scripts. Each brand needs its own pages, its own editors and its own search settings.

When every brand site is its own project, each new site, page or language turns into developer work and a release. Editors for different brands also need to work side by side without reaching into each other's content.

What we built

One deployment, many sites

One Next.js deployment serves every site. Middleware resolves each request's domain to the right site, reads the language from the URL and applies redirect rules. Launching another brand site is a configuration change rather than a release, and the platform can host as many sites as needed, within a click.

Access has two tiers. Global roles (Super Admin, Admin, Client) sit above per-site roles (Manager, Editor), so an editor for one brand cannot see or change another brand's content.

Building and translating pages

The page builder is template-based, with 100+ section templates. Editors reorder sections by drag and drop, change per-section settings and preview on desktop and mobile, and power users can edit the JSON directly. Navigation and footer builders are fully configurable, and an S3-compatible file manager (MinIO) sits inside the editor. A new page is live in under ten minutes without a deploy.

12+ languages run today. RTL is detected for Arabic, Farsi, Urdu, Hebrew and Kurdish: the layout flips and a Persian typeface loads. The AI translator is how the next language is added. It creates the pages and puts the full site live in that language.

SEO and build safety

Each site has its own XML sitemap and robots.txt, permanent and temporary redirects with loop protection, and head and body scripts per site and per language. The API client is generated from the backend's OpenAPI spec with Orval and TanStack Query, so contract changes fail at build time rather than in production. Trading tournament pages carry leaderboards synced from the trading platform.

Next case study

All case studies

Tell us the part of the week that keeps going wrong.

Free, 45 minutes, no deposit. No proposal unless you ask for one.