Hacker News new | past | comments | ask | show | jobs | submit login

Andrew here the other Co-Founder

We excited to share the tech TakeShape with you. The backend is mostly server-less using Serverless Framework, AWS Lambda + API Gateway. For our data layer we use DynamoDB as our system of record and ElasticSearch for advanced search functionality. The frontend is built with GraphQL, React, Redux, Redux Saga.

I am working on some write-ups on how we built certain features on the TakeShape blog. In the meantime feel free to post technical questions here and I'll try my best to answer in a timely manner.




I know your group used to work at {Newsweek, Daily Beast, Fast Company} (I've worked with both Mark and Andrew before)... I wonder if you could talk a bit about how the experience with these legacy CMSs influenced your design with TakeShape?

I'd also be curious to know which GraphQL server are you using on the backend? Apollo? Any challenges with getting that into production?


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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: