After 12 years using WordPress for everything from personal blogs to corporate sites, I made a decision many would consider extreme: building my own content management system from scratch.

The problem with relational databases

WordPress uses MySQL with a schema dating back to 2003. The wp_posts table stores everything in a longtext field. Taxonomies live in three separate tables. Meta queries become recursive JOINs that scale poorly.