web dev//UI//schema-driven UI//configurable data model
A configurable data model is the product pattern in which users configure the data model themselves, so that the schema is the product. Airtable, Notion databases, headless CRMs and any platform where users define their own entity types, fields and relationships follow it.
A configurable data model is the product pattern in which users configure the data model themselves, so that the schema is the product. Airtable, Notion databases, headless CRMs and any platform where users define their own entity types, fields and relationships follow it.
It sits between a fixed schema with customization options (HubSpot custom properties) and writing your own code (a bespoke CRM). The user builds the schema through a UI (dragging fields, setting types, defining relations) rather than writing SQL or code, and the CRUD operations follow from that schema: the user defines the entities and the endpoints are generated.
Storage typically uses EAV, JSONB columns or a hybrid, so the cost of the flexibility is paid at the database layer.
Storing flexible data is the easy part. Querying, indexing and validating it efficiently is the hard one.
Airtable solved it with one SQLite database per base, Notion with a single enormous Postgres table, and neither solution is elegant.