Skip to main content
Back to Blog
philosophy configuration platform thoughts

Configuration Over Code: A Platform Philosophy

Swifty Team Mar 30, 2025 3 min read

Software has a gravity problem. Every feature, once implemented as code, tends to attract more code. Dependencies accumulate. Customizations require understanding layers of abstraction. What started as a clean system gradually becomes something that only experts can change without breaking.

The antidote to this gravity is configuration.

What "Configuration Over Code" Really Means

This isn't about avoiding code entirely — the platform itself runs on code, and that code must be excellent. The principle applies to the layer where business logic lives: the rules, the structures, the workflows, the interfaces that define how a specific business uses the platform.

That layer should be configuration, not code. It should be readable by non-engineers, changeable without deployment, and auditable as a history of how the business evolved.

Why It Matters

When business logic lives in code, changing it has a fixed minimum cost: a developer's time, plus a deployment cycle. For small changes — add a required field, adjust a workflow transition, rename a status — that cost is disproportionate to the change.

When business logic lives in configuration, the cost of change scales with the complexity of the change. A small change costs almost nothing. A significant change requires proportionately more effort. That's the right relationship.

The Trust Problem

Configuration is also more trustworthy than code for business users. A business analyst can read a workflow definition and confirm it matches how the process is supposed to work. They can't read a codebase and confirm the same thing.

When the people who understand the business can directly inspect and modify the system that runs it, you get faster feedback cycles and fewer disconnects between what the business needs and what the software does.

Limits and Escape Hatches

Configuration has limits. There are genuinely custom behaviors that no configuration system will ever express cleanly. We don't pretend otherwise.

For those cases, extension points allow code to hook into the platform's lifecycle in defined, structured ways. The escape hatch exists — but it's an escape hatch, not the primary path.

The Bet

The bet we're making is that the vast majority of business customization can and should be expressed as configuration. That this is achievable without sacrificing expressiveness. And that businesses who can configure their own platform, without depending on developers, will move faster and build better systems than those who can't.

We're building to prove that bet right.

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.