I have been fighting a lot with Ghost.<p>It is good if the provided features are good and enough for you.. but if they aren't, then you are in trouble. I would like to note that Ghost is meant mostly for making content behind subscriptions, since they prioritize adding and improving their subscription features.<p>The content is meant to be written by hand, with some limitations.<p>Templating engine is limited, if you want to have some static pages. It is very difficult to generate something from custom data, other than your posts or pages. I wish Ghost had some custom key-value endpoint with their API, but instead if you want to add anything custom, it must be set to the custom configuration file, and it is very limited.<p>Eventually, you need to embed JSON into JS and then generate some parts of the HTML on client side, what you would instead like to do these in server side.
E.g. if you would like to show for example a table with data.
Or you need to use some other static site generator to build the HTML table from JSON.<p>Something very simple, but yet so difficult.<p>I liked that it was possible to use SQLite3 in production for Ghost. It worked very well and scales as well since it is mostly read operation, but they are officially dropping support for production and using only MySQL. I guess the one argument was, that sending emails for many subscribers was too much for SQLite.<p>There is also another good analytics service, without cookies and also fully GDPR compliant: <a href="https://plausible.io/" rel="nofollow noreferrer">https://plausible.io/</a>