Introducing Ghost 2.0
Heyo, John from Ghost here. Thanks for the kind words so far about 2.0 — it’s been a hectic few months! Earlier this year I talked about how we were shifting focus from simplicity to power - <a href="https://blog.ghost.org/5/" rel="nofollow">https://blog.ghost.org/5/</a> - and this is the first big release since that move. Whereas early versions were extremely opinionated and rigid, we’re now starting to bake in more flexibility and configurability to allow for a more diverse set of use-cases.<p>Some fun technical details from this release:<p>- New features require building a routing map for all possible URLs on boot, which is a dramatically heavy operation. We were eventually forced to forgo our traditional ORM layer entirely to get any degree of performance (insert: shock/awe)<p>- Related: It turns out SQLite3 has a query limit of 999 SQL variables, so we had to implement a recursive query strategy for SQLite only. Wild. Default is MySQL though, which was fine.<p>- Conquered a pretty spectacular memory leak when running in development as a result of trace-logging promises in Bluebird, which is “a full featured promise library with unmatched performance” — …unless you implicitly enable debug traces<p>Also: Let me be the first to say that I can’t believe there’s still no Postgres support, which is absolutely outrageous.<p>On a serious note, thanks for all the support and there are several of us hanging out in the comments if anyone has technical questions which they’re curious about.