smallbox

← All articles

Beside the CMS, not inside it

Your platform runs the storefront and the content beautifully — so why does this one workflow keep fighting it?

When your CMS or commerce platform stops being the right home

A good content-and-commerce platform earns its keep. It runs the storefront, holds the catalog, publishes the content, sends the campaigns, and pulls live pricing and stock from the ERP behind it. For most of what a growing business puts online, that is the right home — and trying to rebuild it yourself would be a waste.

But every platform is built around an idea of what it is: usually one storefront, one publishing surface, one catalog. Its strengths are also its edges. Sooner or later a business needs something that lives just outside that idea — a workflow, a second kind of user, a process with its own rules. The instinct is to bend the platform into it: a few custom fields, a template that quietly becomes an application, a content type doing a job it was never shaped for. That bending is where systems start to rot.

The honest move is usually the opposite. Leave the platform doing what it is good at, and build the new thing as a small custom system beside it, connected by API. It owns the logic the platform was never meant to hold; the platform keeps owning the storefront. This is how CompanyGraph itself is built — a composition backend beside a fleet of focused subsystems, each owning one thing — so it isn't a theory here. (The kinds of systems that take this shape is the companion to this page.)

Here is where that line tends to fall.

What a content-and-commerce platform is built for

Name the strengths honestly, because they are real and they decide what you should not rebuild. A modern commerce suite is strong at a storefront and checkout, a large product catalog with PIM, multi-language and multi-site publishing, content pages and blogs, email and campaign marketing, and tight integration with an ERP for live pricing, stock and orders. If your need is mostly one of those, the platform is the home. Keep it there.

The tell that a workflow has outgrown it

You can feel it before you can name it. A rule you need lives in three content fields and a template. A "page type" is quietly an application with state. You are writing custom code inside the platform to make it do something it resists. Editors are managing data that isn't content. When the platform is fighting you, that resistance is information: the job wants its own home.

Multi-vendor marketplaces

A storefront platform is built to be one seller. The moment you need many sellers — their own accounts, listings, payouts, ratings, and the operator's console for disputes — you are past what a single-store model carries. That is a custom system, with the platform (if anything) as just one sales channel.

Booking and scheduling engines

Availability, overlaps, time zones, resources, the rush when everyone books the same slot at once — scheduling is its own hard problem with its own state. A platform can show a calendar or embed one; it does not want to be the scheduler. The booking rules belong in a system built for them. (A worked example.)

Membership portals and gated directories

A directory you can publish. A portal where each member sees only their slice — their own data, permissions and actions — is a different machine. The permission model becomes the product, and that logic wants a home of its own rather than a maze of CMS access rules.

Heavy workflows: intake, approval, KYC, moderation

A record that enters, moves through human and automated steps, and waits on decisions — application intake, multi-step approval, identity checks, content-moderation queues — is a workflow engine. Editorial approval inside a CMS is not that. These belong beside the platform, surfacing the next decision to whoever owns it. (A worked example.)

Custom reporting and analytics

Built-in sales and traffic numbers are fine. The moment the questions get specific — cross-source figures, verification, the number a customer will act on — the work is in where the number comes from, not in drawing the chart. That reporting lives in a system that can be held to its sources, not in the storefront.

Subscriptions and usage-based billing

Standard recurring orders, a platform can take. A real subscription or metered-billing engine — proration, dunning, quotas, credits, reconciliation across the product, the processor and the customer's books — is its own discipline. It belongs in a system whose whole job is keeping those records agreeing.

Learning and training platforms

Courses, progress, assessments, certification, a game layer — none of that is what a commerce platform is for. The exciting feature is rarely the company; the unglamorous spine of enrollment and progress is, and it wants a platform built for learning, not selling. (A worked example.)

AI pipelines beyond content enrichment

Many platforms now generate product copy or translations — useful, and genuinely inside their lane. A product feature built on AI is different: a support assistant grounded in your own data, a document-extraction pipeline with a confidence gate and human correction, a moderation pass. The model call is the easy part; the product around it — accounts, storage, billing, the gate — is a system beside the platform.

Operational monitoring and alerting

Device monitoring, data-feed alerting, health and event tooling — knowing when to speak and when to stay silent — has nothing to do with publishing content. A false alert erodes trust and a missed one ends a contract; that judgment lives in purpose-built tooling, not a CMS.

Deep integration and data sync

A platform integrates well with its own ecosystem — usually one ERP and a set of known connectors. Beyond that — syncing several systems, idempotency so nothing double-posts, detecting schema drift, validating data you did not design — you are building integration logic, and the seam is where the risk lives. That logic wants a home you control.

How the two connect — beside, not instead of

None of this is "rip out your platform." The platform keeps the storefront, the catalog, the content, the marketing — the things it is genuinely good at. The custom system sits beside it and owns the workflow, talking over a clear API seam where a contract change is visible, not a surprise. Done well, you can move one workflow out gradually, with no big-bang rebuild, and each side gets simpler for it. The architecture Smallbox runs is exactly this: focused systems joined by typed seams.

One platform, one sidecar, clear ownership

The deciding question is never "can the platform technically be made to do this." With enough custom code it can be made to do almost anything — and that is the trap, because every rule bent into the wrong home makes the next change more expensive. The better question is where each responsibility belongs so the next change stays cheap. The storefront belongs in the platform. The workflow that outgrew it belongs beside it, in a system built for it — the Foundation Smallbox builds on, with each responsibility given one clear home. If something on your site has started fighting the platform it lives in, that is usually the tell that it wants a home of its own.

Articles describe the Foundation. The Foundation Map is the thing itself — accounts, admin, email, logging, and deployment, with one real workflow running through them.

← All articles