Hacker News new | ask | show | jobs
by asprouse 2832 days ago
At Newsweek/The Daily Beast we used Adobe AEM which was very powerful. It had a flexible JCR-based content model and component based content editor. At the time (5 years ago) it had very little in the way of a content API so we had to build our own solution. We actually used our Content API with Rhino (Java js runtime) to render DustJS templates server-side. This server side rendering we built there inspired aspects of our Static Site Generator. Being able to load a project's GraphQL schema in memory allows us to improve caching when generating a large site.

The content modeling an initial interface was heavily inspired by a CMS we used in our agency work called Webhook (http://www.webhook.com/). It was the first product we found which combined flexible content modeling with Static Site Generation. TakeShape goes one step further to provide a robust API that can be used with by the static site to enable dynamic experiences (think search, tag pages, user generated content).

As far as GraphQL we use Facebook's reference implementation (https://github.com/graphql/graphql-js). The challenge with TakeShape is that we allow users to define their own content types which in turn generates their own GraphQL schema. This makes using high-level server libraries like Apollo which assume a static schema challenging to use. GraphQL itself takes care of a lot of the content functionality on its own. The challenge was adding all the missing pieces like authorization, authentication, rate-limiting, access policies, data validation, etc.