
Show HN: TakeShape, a Headless GraphQL CMS and SSG - mcat
https://www.takeshape.io/
======
alturnwall
Quick comments/question from a designer:

I've played around with TakeShape a little bit but have yet to deploy
anything, but am interested in using it on projects moving forward. It _looks_
like this is what I've been searching for as a CMS replacement.

I'm coming from years of freelance WordPress projects and from what I can
tell, if you've done any theming in WordPress, especially with the Advanced
Custom Fields plugin and custom post types, the transition to TakeShape seems
pretty doable. I love the drag-and-drop modeling all in one place. Nice that
it's visually baked into the CMS and not a separate plugin/screen/etc.

So question: for someone like me who can do some front-end code, but isn't a
"back end" developer, how would you suggest I start to play with building
templates using TakeShape? What do you think is the best path forward testing
a site build/design quickly to make the call over something like WP?

Thanks.

~~~
asprouse
Check out our quickstart
[https://www.takeshape.io/docs/quickstart/](https://www.takeshape.io/docs/quickstart/).
It has step-by-step directions to get you up and running nothing with our
"Shape Books" sample project. The same steps can be repeated for any of our
sample projects [https://github.com/takeshape/takeshape-
samples](https://github.com/takeshape/takeshape-samples). If you are coming
from wordpress and looking to build a blog I would check out the shape-blog
sample project.

Also I would recommend using Netlify for hosting of static sites. We have a
super easy integration with them [https://www.takeshape.io/docs/configuring-
netlify/](https://www.takeshape.io/docs/configuring-netlify/)

------
allanlasser
We've been using TakeShape as the CMS behind Massive
([https://massivesci.com/](https://massivesci.com/)) for the past year and a
half and have had a great experience. It's allowed us to rapidly prototype new
features without much technical overhead.

We knew from the start we wanted to serve static pages for simplicity and
security, but so many existing SSGs rely exclusively on rendering folders of
Markdown. While this makes sense to developers, we found most editors (the
people) need WYSIWYG tools to do their jobs well.

But even on the dev side, it's lent us way more speed and flexibility for
prototyping and iterating on data structures and features underlying our
publication without any of the maintenance of a more traditional solution like
Wordpress or Django.

Right now I'd totally recommend this to freelancers, design studios, or teams
who want to deploy something static without sacrificing usability. The one
downside is that it does require somebody with web dev experience to provide
the templates to present the content.

It's a really unique product that stands in a sweet spot for product-minded
teams between something like Jekyll/GH Pages on one end and Squarespace on the
other end. I'm looking forward to seeing how it grows.

------
mshick
I've also been using TakeShape for the content API, feeding profile data to a
web app for [Parsley
Health]([https://www.parsleyhealth.com](https://www.parsleyhealth.com)).
Somewhere down the line we'll be using it for our website as well. It lends
itself well to a multi-use scenario, where you want to centralize your content
creation and maintenance.

Also, as noted below, it's an ideal tool for prototyping and one-offs. The
hot-reload for local dev based on remote content updates is incredibly slick
and fast. It's also an excellent training bed for GraphQL, with the integrated
viewer.

Full disclosure: I worked on the project briefly at it's inception , and have
been happy to use it in my current gig.

------
asprouse
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.

~~~
mankins
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?

~~~
asprouse
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/](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](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.

------
mcat
Hi, I'm Mark, one of the Co-Founders of TakeShape.

TakeShape comes out of our experience running Ronik Design, a creative agency,
for the past 7 years.

We set out to build a CMS that allowed us to be more expressive with our work
while not having to manage a CMS on the backend.

We always wanted a tool like TakeShape so we decided to build it. TakeShape
provides all the elements of a JAMStack. Flexible content modeling, GraphQL
API and Static Site generation all with a simple to use web UI and CLI for
developers.

------
BigCMS
Interesting approach; good luck

------
notjustanymike
Oh hi Mark!

