Swarmcore mark at the center of a network of independent publication nodes
Swarmcore logo Multi-blog affiliate engine

One codebase. Independent publications.

Swarmcore resolves each request host or registered alias to one Blog tenant row, then serves that publication's own brand, locale, SEO, and affiliate setup.

It began as Kofferly. The engine grew into Swarmcore while Kofferly stayed the founding tenant for airline baggage rules and luggage reviews.

host request.host tenant Blog.for_host engine Rails 8 shared multi-tenant
$ git log --follow kofferly..swarmcore

The product became the first tenant

Kofferly proved the content and affiliate workflow. Separating the engine identity from the publication identity made it possible to add focused brands without cloning the Rails application.

Request routing

Host-resolved tenancy

The request host is the boundary. A canonical host and its registered aliases can resolve to the same Blog row before the shared engine applies tenant-specific configuration.

  1. 01

    Request host or registered alias

  2. 02

    One Blog tenant row

  3. 03

    Shared Rails engine

  4. 04

    Host, theme, locale, SEO, affiliate config

Documented fleet

Focused publications, shared operations

The repository currently documents these production tenants. The database remains authoritative, so this is a current view rather than a fixed fleet count.

Kofferly

Airline baggage rules and luggage reviews

AmpCarry

Portable power, power banks, portable power stations, and solar

LadeNest

EV charging and home energy

Novebar

Espresso machines, grinders, and barista gear

AbroadMode

Travel connectivity, destination eSIM comparisons, roaming costs, and setup guides

SparkChambers

Adult kink and lifestyle education

DegenLoot

Crypto and web3 gaming

Engine capabilities

A repeatable publishing system

Local authoring, explicit ingestion

Posts are authored locally through repository Claude commands. An ID is reserved, the finished post is uploaded over HTTP, and import is queued.

Independent tenant identity

Each tenant can define its own hosts, topic, voice, theme, locales, legal identity, SEO surface, and affiliate configuration.

Affiliate integrations

Amazon Associates and Awin are shared engine capabilities. The active programs and product sources vary by tenant.

Fleet operations

Shared deploy, monitoring, background work, and the /new-blog tenant factory keep operational work repeatable without pretending it is one-click.

Verified stack

Built for server-rendered publishing

Rails 8.0, Ruby 3.4.3, MySQL 8, Redis, Sidekiq, Clockwork, Hotwire, Tailwind CSS v4, Propshaft, and importmap.

Rails 8Ruby 3.4MySQL 8RedisSidekiqHotwireTailwind CSS v4

The honest boundary

A shared engine removes duplicated product work, but every engine change can affect the fleet. Tenant isolation, host resolution, and deployment discipline matter more as the system grows.

Related project

Kofferly remains the founding tenant

The original baggage publication still runs on Swarmcore. Its portfolio page covers the tenant story; this page covers the engine.

Open the Kofferly project

Need a focused publishing platform?

I build Rails systems that keep content, SEO, operations, and brand boundaries explicit.

Talk about your project