Been watching Ghost for a while and ever since I saw it get so much funding I thought to myself; with those pledged features I could do this alone, better, faster. Since then I have been sidetracked with a closed source somewhat-overlapping project but now that Ghost is out I plan to steal some ideas people actually like from it and continue building my own platform. Kinda makes me chuckle in that they got payed to do this and yet their feature set is still so underdeveloped, for a blogging platform of all things.
I think now that you've made your point I may abstract models to the point where the database can be either MariaDB or a bunch of JSON files/SQLite. Its tricky because I build databases for performance and scalability over flexibility.
To give you an idea of what I mean, Wordpress makes me cringe in the way they handle their tags, categories etc. and the sheer amount of SQL queries and joins for a simple front page. I make at most 2 queries for the front page (excluding sidebar, which would be cached), the user session authentication and the articles. I make no queries if I can help it ( Caching in node.js is so fun ). Categories are always in memory, along with user roles, settings etc.
It's really quite glorious having a readily available memory store. I'm getting around ~500 queries per second to my front page in apachebench, which would normally have about 7-10 queries to the database.
I think now that you've made your point I may abstract models to the point where the database can be either MariaDB or a bunch of JSON files/SQLite. Its tricky because I build databases for performance and scalability over flexibility.
To give you an idea of what I mean, Wordpress makes me cringe in the way they handle their tags, categories etc. and the sheer amount of SQL queries and joins for a simple front page. I make at most 2 queries for the front page (excluding sidebar, which would be cached), the user session authentication and the articles. I make no queries if I can help it ( Caching in node.js is so fun ). Categories are always in memory, along with user roles, settings etc.
It's really quite glorious having a readily available memory store. I'm getting around ~500 queries per second to my front page in apachebench, which would normally have about 7-10 queries to the database.