Home › Product › Principles
Code Is Data
Product / Principles
Treat your code, configs, and content as data that can be inspected and transformed.
The Idea
When code becomes data, tools can manipulate it: formatters, linters, migrations, codemods, type checkers, compilers. Lisp built this in from day one; most languages earn it later. The same idea applies to product: content, workflows, and configuration are all data to be versioned and programmed over.
Why It Matters
- Data is cheap to inspect, transform, and replay.
- Treating code as data unlocks automation that brute-force editing can't match.
- Product configuration-as-data lets users program your product.
How to Apply
- Store structured data, not frozen UI state.
- Expose APIs and exports so the data is portable.
- Let power users script, template, or automate over your primitives.
Examples
- Figma files as a graph you can script over.
- GitHub repos as data that tools like CI, codemods, and analytics transform.
- Airtable: the UI is a view; the data is the product.
Related