I went the other direction: instead of replacing the CMS, I open sourced a FUSE like layer [1] that mounts any backoffice system as a filesystem while the source of truth is in WordPress, Mysql, Postgres, .... Most backoffice systems map naturally to a file tree, so you mount them locally and let your agent read and write through that.
In the POC I ran, I mapped a whole wordpress site as a fs which was versioned controlled via git so when you did a git checkout of something, the whole db would get updated on the fly