Skip to main content
Back to Blog
platform architecture flexibility evolution

The Upgrade That Changed Everything

Swifty Team Feb 5, 2026 4 min read

There's a moment in building any platform when you realize the foundation is holding you back. Not because it was built badly — but because you've outgrown it. What you're being asked to build next doesn't fit the assumptions baked into the core.

We hit that moment. And we made the decision most platform builders avoid: we redesigned the foundation.

What We Had

The original platform core was built around fixed concepts. Pages had known layouts. Data types had known fields. Configurations were stored in ways that made reading fast and writing simple.

It worked. We shipped features. Teams used it. But every new capability required working around the rigidity of the core, not with it. Adding a new type of page meant special-casing it. Making configuration portable across environments meant exporting it in a format that didn't fully capture what was defined. Extending the platform for new domains meant patching the center instead of adding at the edges.

The workarounds were accumulating.

The Decision

Redesigning a platform core is a significant commitment. The core touches everything. Change it and you need to verify that everything still works correctly, that data migrates properly, that the features customers depend on remain intact.

We did it anyway, because the alternative was a growing tax on every future feature. Every month spent not making the change was a month of building on a foundation that would need to be replaced eventually. Better to do it once, deliberately, than to have it forced on us later under worse conditions.

What Changed

The new core is built around a unified definition system. Every element of your app — pages, data objects, navigation, workflows, user interfaces — is represented as a definition that can be read, modified, versioned, exported, imported, and replicated.

Definitions have a history. You can see every change ever made. You can revert to any previous state. You can export a definition and deploy it to another environment.

The system is also extensible by design. New capabilities plug in at the edges without touching the core. The foundation doesn't need to change when the platform grows — growth happens by addition, not by modification.

What It Unlocked

The capabilities that became possible after the redesign were things we had wanted to build for a long time but couldn't practically attempt:

  • Full configuration history and one-click revert
  • Blueprint export and import across environments
  • A component-based visual editor with live preview
  • Extension system that enables features per workspace without core changes
  • Fully configurable page structures, not just configurable fields

None of these fit the old core without significant contortion. With the new one, they were natural.

The Honest Part

Redesigning the core took longer than building those features did. The work was invisible to users for months. It was, by definition, not what anyone was asking for at the time.

But it was the right investment. The platform that exists today is qualitatively different from what we could have built on the old foundation — not just quantitatively better, but capable of things that weren't possible before.

Sometimes the upgrade that changes everything is the one that happens underneath, where it doesn't show.

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.