Product

The 49-module ERP — what 'one platform' actually means

Why MetaERP includes every module from Starter, and how that changes ops workflows.

Carlo Russo · Founder9 min read

When we tell ops leads MetaERP ships with 49 modules on day one, we usually get one of two reactions. The first: "Great, we don't have to buy add-ons." The second, more interesting: "Wait, isn't that bloat?"

Both questions miss what's actually different. The shape of a bundled ERP is not the same as the shape of an à-la-carte stack with everything turned on. This post walks through why, what it lets us do that the alternative can't, and how we keep the bundle from collapsing under its own weight.

The à-la-carte trap

Pick any modern "modular" ERP and price out the full feature set. You'll find:

  • A base license — usually billed per seat, per month.
  • A "warehouse" add-on — sometimes per warehouse, sometimes per user.
  • A "purchasing" add-on with a separate per-supplier fee.
  • An EDI module — flat monthly, often with per-trading-partner overage.
  • A "compliance" or "customs" pack — only if you ship internationally.
  • A reporting / BI seat — at $99–$149 / user / month on top of base.
  • An "AI assistant" — usually $39–$59 / user / month, often with a token cap.

By the time you've assembled the equivalent of MetaERP's Starter tier, you've quoted three vendors, sat through two demos, and committed to four different billing cycles. Worse, you've made a forecast about which modules you'll need in 18 months — and committed accountants to true that forecast at renewal.

The first hidden cost of à-la-carte isn't the line items. It's the rationing it forces inside your own org. Teams stop asking "should this data live in our ERP?" and start asking "is it worth the add-on?"

That second question is the wrong one. The data either belongs in the system of record or it doesn't. Pricing should not be the deciding vote.

Why bundling matters for SMBs

For a $5M revenue business, the cumulative cost of three or four poorly integrated systems isn't paid in license fees — it's paid in a person. Usually a controller, sometimes a head of operations, whose week revolves around CSV exports, Zapier flows, and reconciling totals that should already match.

That person costs $120K loaded. They make any module decision look cheap on the spreadsheet. They also make the spreadsheet a lie, because they're the hidden labor that lets the spreadsheet pretend modules are independent.

A bundled platform doesn't fix the cost question alone. What it fixes is the shape of the question. With one platform:

  • Every record lives in the same database, indexed by the same tenant id, audited by the same log.
  • Every module that ships data into another module passes a foreign key, not a CSV.
  • Every report can reach across modules without a third-party warehouse.

The financial argument matters. The structural argument is what actually changes how the business runs.

Five workflows that span six or more modules

This is the part that surprises people who think of an ERP as a glorified accounting package. Here are five everyday workflows. Watch the module count.

1. A wholesale customer reorders a kit. The order originates in sales, draws components from inventory, generates a pick list in warehouse, triggers a shortage alert that creates a purchase order in purchasing, notifies the supplier via email_automation, and books revenue in financial. Six modules. One ERP. Zero CSVs.

2. A returned item needs to be triaged and refunded. Customer reports via the portal, support opens a ticket, warehouse accepts the return and inspects it, inventory either restocks or writes off the unit, financial issues the credit memo, and crm logs the resolution against the account. Six again.

3. Month-end close. financial runs the close, but it depends on inventory for valuation, sales for cutoff, purchasing for accruals, receipts for matched POs, multi_entity for consolidation, and audit for the trail every auditor will demand. Seven.

4. A new hire onboarding. recruit closes out the offer, hr creates the employee record, users provisions the login, documents collects signed forms, email_automation runs the welcome sequence, notifications pings the team. Six.

5. Restocking a slow-moving SKU based on forecasted demand. ai generates the forecast, inventory reads current levels, sales provides the velocity history, purchasing opens the PO, suppliers validates the vendor terms, customs calculates the duty if cross-border, containers plans the inbound load. Seven.

You can run any of these workflows on three or four integrated point solutions. We've watched dozens of SMBs do exactly that. What you can't do on a stitched-together stack is run them all at once, in real time, with a single audit trail and a single source of truth for inventory positions. The reconciliation overhead grows non-linearly with module count, and somewhere around the fourth module the controller stops trusting any report that isn't hand-checked.

What "one platform" actually unlocks

Once the data lives together, three things become possible that simply weren't before.

Cross-module queries

When every business table is in one schema, partitioned by tenant_id, reporting is a SQL question — not an integration project. Want to know which suppliers are correlated with the highest support ticket volume? That's one query:

SELECT
  s.name AS supplier,
  COUNT(DISTINCT t.id) AS support_tickets,
  COUNT(DISTINCT po.id) AS purchase_orders
FROM supplier_suppliers s
JOIN purchasing_pos po ON po.supplier_id = s.id
JOIN inventory_items i ON i.last_supplier_id = s.id
JOIN sales_order_lines sol ON sol.item_id = i.id
JOIN support_tickets t ON t.order_id = sol.order_id
WHERE s.tenant_id = $1
  AND t.created_at > now() - interval '90 days'
GROUP BY s.id, s.name
ORDER BY support_tickets DESC
LIMIT 20;

That query touches five modules. In a stitched stack, it doesn't exist. You'd build a data warehouse, a sync layer, a transformation pipeline, and a BI license to answer the same question. With one platform, it's a view — and we ship the most common cross-module views as materialized tables refreshed every ten minutes.

A single audit trail

Every write to a business table emits to core_audit_logs. That log is the same regardless of which module produced the change. Compliance auditors love this. They get one CSV that explains who changed what, when, and via which API call. No "we have to pull from three systems."

AI that knows the whole business

This is the underrated one. When the AI module can read the same tables the rest of the ERP writes to, you stop building "AI features" and start asking business questions in English. "Which open POs are at risk of slipping past their need-by date?" is a question. The model joins purchasing_pos, receipts, inventory_items, and containers, and answers. Without the bundle, that's a six-month integration roadmap.

The competitive moat of a fully bundled ERP isn't features. It's the queries no competitor can run because their data lives in someone else's database.

How we keep the bundle from becoming bloat

Bundling 49 modules makes one promise: every module is one click away. It also creates one risk: every module is one click away. New users land in a UI with 49 things they could be looking at, and freeze.

We've made three structural choices to defuse that.

Module activation is per-tenant. A solo CFO doesn't see the manufacturing module unless they enable it. The full 49 are available; the visible set is curated to what the customer actually uses. Activation is reversible without data loss — toggle on, toggle off, the records stay.

Tier-gated complexity stays invisible. Multi-entity consolidation is an Enterprise feature. Starter tenants don't see the multi-entity menu items at all. The data model still supports it — when they upgrade, the menus appear and historical data is consolidatable.

The navigation reflects revenue lifecycle, not org chart. Modules are grouped by what you're trying to do (sell something, fulfill an order, close the books) rather than which team owns the feature. A sales rep entering a quote doesn't navigate "to finance" to attach terms — they stay in the quote and pull terms inline.

The result: a customer running 8 modules feels like they bought an 8-module product. The other 41 are there, indexed, audit-trailed, and queryable, but they don't crowd the interface. When the business grows into them, they switch on.

This is what "one platform" means in practice. Not a marketing claim about an all-in-one box. A specific architectural posture: one database, one tenant id, one audit log, one navigation grammar — across every record the business creates. The 49 modules are the consequence of that posture, not the goal.

We think it changes what an ERP can do for a $5M business. We're building MetaERP to prove it.