Skip to main content
Back to Blog
platform modules evolution thoughts

Our Journey from Monolith to Modules

Swifty Team Mar 20, 2025 3 min read

If you've been following Swifty from the beginning, you've seen the platform change significantly. Some of those changes were visible — new features, new capabilities. Others were less visible but just as important: changes to how the platform itself is structured.

Here's an honest account of that evolution.

How It Started

Like most platforms, Swifty started with a simpler structure than it has now. Features were built to solve specific problems. Connections between parts of the system were direct and efficient.

That worked fine while the scope was small. As the platform grew — more object types, more configuration options, more integrations, more ways to extend the system — those direct connections started creating friction.

Changing one thing required understanding everything it touched. Adding a feature to one part of the system didn't automatically apply to other similar parts. Extensions and integrations required deep knowledge of internals.

The Decision Point

There's a specific moment in platform evolution when you have to make a choice: keep building on the existing structure, or invest in a better foundation.

We chose the foundation.

The work wasn't glamorous. We didn't ship new user-facing features during this period. We restructured how the platform represented and processed configurations, how extensions connected to the core, how definitions were stored and resolved.

What Changed

The result was a modular architecture where:

  • Each capability is a module with a well-defined interface
  • Modules can be added, replaced, or disabled without affecting others
  • Extensions and integrations connect through standard contracts, not internal hooks
  • Configuration is defined in one unified system, not scattered across specialized stores

The platform stopped being a collection of interconnected pieces and became a collection of composable modules.

The Payoff

That investment paid off quickly. New features that would have taken days took hours, because they plugged into existing infrastructure rather than requiring custom plumbing. Extensions became genuinely isolatable — enabling or disabling one didn't require knowing everything about the others.

The platform became faster to evolve, and more predictable to work with.

What We'd Tell Our Earlier Selves

Invest in the modular foundation earlier. The short-term cost is real, but the compounding benefit — every future feature built on a solid, consistent base — is worth far more than the features deferred.

Platforms that can change are worth more than platforms that can't. Building for change is always the right investment.

Related posts

Composed Data Sources

Chain and relate data sources for rich dashboards — compose complex data views from simpler sources without writing code.

Computed Expressions

Transform data with template expressions and built-in functions — format, combine, and derive values from your data without code.

Cross-Source Data Joins

Combine data from multiple sources in one view — join records from your database with data from external services using a shared key.