Alpha support for iFramely embeds in block canvas fields. Contact support@takeshape.io if you want to try this out 👩🏽‍🔬

Changed

Style tweaks to menus 🎨

Enable 14-day trials for all paid project plans 💸

All paid plans now get unlimited content types and entires! 🥂

Static sites are now "batteries-included" create a site and click deploy. For maximum fun we recommend using the one-click Netlify integration to set up a static site. Templates are now-preloaded no need to use the CLI to deploy a beautiful static site ⚡

In addition to the old Imgix domain, TakeShape now has a new TakeShape specific image domain. We recommend updating you takeshape-cli if you are using the build-in TakeShape static site generator. We recommend updating takeshape-routing if you are using the GraphQL API directly. Image paths generated by the latest takeshape-cli and takeshape-routing modules will use the new url.

Image assets stored in TakeShape are now also served from a new url: https://images.takeshape.io

Previously image assets were only served from: https://takeshape-prod.imgix.net

TakeShape continues to us imgix to serve and manipulate all images and all imgix functionality remains unchanged. The old image URL will continue to work. However, we recommend updating to deliver your images from the new url.

New sample project available that shows how to use the TakeShape GraphQL API - shape-blog-react

API performance improvements

API rate limit now uses a 10 second window to allow for bursting

When a user creates a new project start from the "Setup Steps" page

Display static site sample project hint on "Setup Steps" page

Up to 10x faster FTP deploy performance

Updates to the takeshape-demo project repo

Style tweaks throughout the app to tighten up spacing

Project creation flow now allows users to choose to start from a project template or a blank project. More sample projects are on their way including, Shape Shop, Shape Blog, Shape Startup, Shape Portfolio and Shape Restaurant.

Content types now include annotations. Previously content types could be marked as "Single" or "Multiple", we've added a "Taxonomy" option and named this concept annotations.

Annotations allow us to make optimizations on the backend and to the user experience.

"Single" and "Multiple" still types work the same as they did before.

Annotating as a "Taxonomy" allows the relationships between content entires to be surfaced to users when filtering in the asset views and entry list views.

The sidebar has a new section called "Taxonomies" where content types that are marked "Taxonomies" will appear.

Collaboration Updates

Editors and Viewers are now displayed on content lists

Viewers are now displayed on content entries

Settings button for modifying content list columns has moved to the table

Major UX improvements to the multiple content type entry listings

A better default now uses the first image field and the first two text fields

Displayed columns are completely customizable. Each user can configure which columns display

Real-time project wide publishing notifications. Now all users will be notified of publication activity. Notifications initiated from the web client (soon also the CLI) will include the avatar and name of the project memeber who initiated a publish event. In addition, the publish buttons in the project menu and on the static sites page disable for all users during a publish event and have an animation to make the publish activity clearer. These updates give all project members more insight the publishing lifecycle.

Asset content types can be modified

s3Key is deprecated and replaced by path. s3Key will continue to work for the foreseeable future.

Added a version meta tag to the web client so you can now see what version of TakeShape you're running

Naked single content-type queries are deprecated

Projects now have a timezone option in the project settings page. Wherever times are shown in TS they are accompanied by a note showing the timezone. Datetime widgets now respect the project timezone.

Added a date only widget

Datetime widget has a streamlined UX

Added single line block canvas as a new field type

Making changes live on a static site is now referred to as publishing instead of deploying. (Templates are deployed, content is published)

Updated static site publish notification to include the site name

Various minor visual changes and improvments

"add" buttons on repeater widgets changed to "+" buttons

path and template properties in routes are now optional

${var} is now supported in tsg.yml ex. path: /sitemaps/sitemap-${num}.xml

More detailed nunjucks error reporting for tsg cli

Add assets filter to handle assets that aren't image assets.

Use {{ asset.s3Key | asset }}

Automatically hide the asset sidebar when navigating away from a content entry where the asset sidebar is open

For a relationship configured as a multi relationship keep the dropdown selector open during keyboard selection.

For a relationship configured as a single relationship close the dropdown selector after keyboard selection

Display billing history on billing screen

Add "Add an API key" and "Add a project image" to setup steps

Fix query error when trying to sort by a datetime field

Add loader animations to Signup, login and create project buttons

Update GraphiQL to latest version and improve style

Prettier automatic query generated from "View in API Explorer" button

Add project settings page. Project title and avatar can now be edited. Project deletion has been moved from the project list to the project settings page. Very handy!

Add API keys settings page. It is now possible to provision and manage API keys for a project. Huge!

Update CLI to optionally watch for content changes and trigger a build. This feature is activated with a command line flag tsg build -W. All users will need to update their projects to the latest version of takeshape-cli. We've already found this feature to be extremely helpful.

Add link and open in external window fields to image blocks in the block canvas.

Fixed markdown formatting of field instructions

Improved error handling for credit card payments

Better error messages in the CLI tool

Fix "Save and Duplicate"

Add First Time Experience Dialog Slide Tour

Add First Time Experience Setup steps. To view your projects setup steps click on the floating "Help" menu in the - bottom right of the TakeShape web app

New

Inline content creation in relationship fields

Links to related items

Improved content preview with thumbnails for related items

Shape Books Project now has a "Demo" tag in the project list to improve discoverability

Empty state illustrations and instructions

Improved Dashboard design

Tweaked API websocket authentication timeouts

Fixes

Fixed issue with query normalization which caused double fetching or missing content in the admin UI.

Happy New Year! The theme of this release is collaboration. We're setting the groundwork for exciting things to come in 2018 that make working together easier. We feel very strongly that creating great content is a team activity. To that end we are releasing two new features focused on collaboration that greatly improve the editorial experience.

New

Visual collaborator indicator. When multiple users are logged into a project a visual indicator appears under the project name in the top left to show everyone who else is currently working with them. This basic feature belies a bunch of work under the hood that went into making this possible. Right now this

Content entry locking. When a user goes to a content entry that entry will be locked from editing by other users. Viewers will be able to see who has a content entry locked. Admis are able to break locks just in case.

The secret sauce behind both of these features is the realtime heat beat provided by Pusher https://pusher.com/. This realtime communication happening between users is going to enable us to incorporate even more realtime features in the future. We have a bunch of neat ideas for collaboration and will share more details as they firm up.

2018 is off to great start!

New

Pluralize nunjucks filter

{{ 'post' | pluralize(num) }}

This example will print "posts" if num is greater than 1 and "post" otherwise. The pluralize has support for english language pluralization and handles irregular rules such as ox -> oxen.

Enhancements

Image description and title fields now appear in image blocks as alt and title attributes

Only run the html compressor on .html files instead of running on any html or xml file.

New

Add Full Name to user profiles (We've gone ahead an back-filled this info for existing customers). You'll now see your name in the bottom left next to your avatar. New users will be able to sign up with there name. Everyone is now on a first name basis and the world is a better place

Enhancements

Links in block canvas editor and inline block canvas now have a hover+link function.

Coming Soon

Content locking

Presence. You'll never feel alone again. Soon you'll be able to see who else in working in a project with you! This is a neat feature made possible by using the Pusher (https://pusher.com/) service. Pusher is enabling us to do a few neat things. One being content locking. In this first phase we'll be rolling out content locking and a way to see who else is in a project at a global level. Eventually we'll be showing who your fellow collaborators are on individual content entires. From there we'll have even more real-time collaboration features!

Inline editing of relationships. Working out content locking and presence made us realize that there would be some complexities with inline relationships. This feature has been paused until we release the the above prerequisites.

Optimize webpack config to reduce the amount of redundant includes to reduce the JS payload on the takeshape client app

Alignment and customizable sizes for block canvas image blocks

There is no intrinsic meaning to the image sizes. Small, medium and large sizes must be configured in the query. If a size isn't configured by the developer or selected by a content creator the default size is used.

Alignment classes have no intrinsic effect on your content. The TakeShape SSG will add center, left or right to the <figure> element that wraps images. You will need to define css styles in your site project.

New

Support for s3 bucket prefixes in the static site generator. Add the prefix to the end of the destination bucket in your TS project's static site config.

New user accounts are provisioned with the "Shape Books Sample Project"

Add logout button to project chooser dashboard

New

Ability to expand and collapse repeater items! This is a UX improvmeent that we've really wanted to implement to make everyone's lives so so so much easier when using complext repeaters. This implmentation works for both the standard repeater field in the content editor and for repeated fields for configuring options for dropdowns, radio buttons and checkboxes in the content type editor. Another awesome side effect of the work that went into this functionality is that we've increased our code coverge by another 2%!

Upcoming

Inline creation of related entries

Upgrades to Elastic Search cluster

Sample project and First Time Experience

Fixes

Move Label above Value for radio field configuration in Content Type editor sidebar

Improvements

Improve design and position of filter on assets and content list pages

Add instruction text for the Related Name property on the relatioship field in the Content Type editor sidebar.

Improved error messages in takeshape-cli

Add vcs ignore warning to CLI to notify folks that they should add a few TS generated files to their ignore files.

tsg init now writes out graphql.config.json in addition to .graphqlrc to make developers lives easier when using graphql plugins in their IDE.

Support for -v in takeshape-cli to show the current version. tsg --version and tsg -v both work.

Sweet sweet performance optimizations brought to you by a brand new datalayer implementation. We've done a lot of work to deduplicate fetches in our data loading layer. Especially when building a complex site, one making use of a lot of relationships. On a typical TakeShape project we've seen 2x gains in static site deploy performance. This is the tip of the iceberg of our performance optimization work. More to come in the future!

Upcoming!

We're implementing Redis on the backend to enable a bunch of features and improvments people have been requesting.

Updating the Elastic Search cluster and client libraries

New first time user experince

Inline creation of related content

Ability to collapse repeater cards.

New

Show / Hide pieces of the interface based on users' permissions. Extending the work done on the auth and permissions system we've done a lot of work in the background here to allow us to enable and disable parts of the TakeShape interface. Probably the first thing users who have permissions of "Editor" or "Viewer" will notice is that they no longer see the gear icon next to a content type name. We've applied this feature across many parts of TakeShape but there is still more to do here. In the future we will be making it so that if a user only has view permissions on a field they will see that field in a disabled state.

Fixes

Conflicting field name and related field names are allowed.

Coming Up!

Public API access tokens

New sample project

Additional languages supported by the block canvas code block

Inline creation of related resources

New

List queries (get<type>List) have now been upgraded to have pagination and filtering!

Takeshape will migrate existing static sites with List queries for you at runtime. The old query format will be supported until v5.

Takeshape CLI will warn you about usages of the old list query format so that you can update them in your site.

The SSG paginate property now has a new data property which takes a .graphql query. This new feature takes advantage of the new paginated version of get<type>List. The SSG will automatically page through all the results of this query. This new feature improves performance and allows for the SSG to generate routes with thousands of pages! It is recommended that you switch paginated routes to use this new property. See http://www.takeshape.io/docs/pagination/ for more info

IMPORTANT! With the release of you must update your local development environment to takeshape-cli v4. Please run the following command: yarn add takeshape-cli As mentioned above existing deployed static sites (templates, queries) will continue to work properly.

Fixes

SSG prevents the generation of invalid paths and warns of broken paths in the CLI.

New When editing a piece of content there are now three new ways of saving accessible through a dropdown menu next to the word "Save":

Save and continue allows you to save the current state of your piece of content and keep editing that same piece of content assured that your state is now safe. No more being directed back to the listing page if you don't want to be!

Save and add another. Ever get into a groove and want to keep on truckin'. Now you can with "Save and add another" Save your current piece of content and immediately start creating a new piece of content of the same Content Type.

Save and Duplicate. Saves your current piece of content and creates a new content entry with identical contents for you to start working from. It's basically this cat.

We hope that this new save functionality improves the experience of content creation until autosave functionality is built out

Fixes

Fix reset password and unit tests

Filter nulls from getXList queries

Improvments

Enable spellcheck on block canvas field

New

Wrap geneated embed block html with with <div class="embed"></div>

Fixes

Fix the behavior of file uploader so it waits for a 200 response and won't abort the xhr unless the task is being cancelled.

Prevent extra progress actions from being dispatched in the file uploader.

Improvements

Change title of image field to asset field to better reflect the usage of this field as usable for any file type availabe in the asset manager.

Adjust the line-height of titles of checkbox fields

New

Drag and drop images directly into a block canvas from the asset sidebar or from your desktop

IMPORTANT! Today we are releasing billing functionality for TakeShape. This is an exciting day because integrating billing is an essential milestone for a more open beta and a public launch.

Everyone's projects are starting out with a 14 day trial. By the end of the trial we ask that folks enter billing details for their projects. If you have any questions about plan levels or anything else regarding billing please don't hesitate to PM me or call me at 781-775-8338.

Also, a big thanks to everyone for their questions and feedback about TakeShape. We're excited about the growing community we're developing and are looking forward to upcoming milestones in the not to distant future where this community group will grow rather quickly.

Fixes

In the Block Canvas remove extra blank lines after image and embed blocks in the block

Fix table cells that were breaking to a second line even though they had plenty of room to display on a single line

Hide grid / list switcher in the asset manager

Improvements

Add codecov code coverage reporting tool. Continuing the work from Jest, we now get sweet reports on how we're improving our unit tests with every commit.

Site deploys - poll for the status of a deploy instead of waiting for a response

Codeblock style on TakeShape marketing site

Cli - at the end of a successful site deploy provide useful summary info

New

Billing system built on Stripe. We now able to charge for TakeShape. Starting today everyone's projects will start a 2 week trial.

Coming Up!

Drag and Drop images from the asset sidebar to create image blocks in the block canvas

Activity log backend and last deployed column in static site list

Fix line-height of multiple choice checkboxes

Image Field renamed to Asset Field

Pagination for GraphQL queries

Save and Continue Editing a piece of content

Improvements

Sandbox Nunjucks template compliation.

Lock down security of Nunjucks lambda function. Security of Nunjucks templates was a large focus for this iteration. Nunjucks and just about any templating language, can be a real security bear. Our solution walls off the Nunjucks process nicely and we feel confident in the solution we engineered.

New

FTP Deploy. In addition to setting up a static site to deploy to S3 or GCS you can now configure FTP as a deploy target. This is very handy for folks who aren't quite ready to move into the world of bucket storage.

Swap out Ava for Jest for testing. Switching to Jest is huge! Jest will allow us to run our tests faster, be more aware of code coverage for unit tests and allow us to do more unit testing on actual interface components. This was a big lift but worth it to build on for the future.

Coming up!

A backend to support some pretty sweet Activity Logging features that will provide more contenxt to users about what is happening to content in TakeShape. The first small user-facing implementation of this backend will also be coming in the form of "Last Deployed" info for static sites. From there we imagine content activity being a very visible aspect of the TakeShape interface.

Improvements to the CLI to provide summary info after a successful site deploy

Drag and Drop images directly onto the block canvas

Paginated GrahpQL queries

Billing!

Fixes

Asset Library search box is short

After creating a project you must log in again

No space between user email address and the word "has" in project invite email

Content editor sidebar is collapsed into a short sidebar in Safari

Improvements

Sandbox Nunjucks build process for improved security

Return basic stats when using tsg cli

Doing local dev no longer requiest a static site to be configured

Warn dev when the route filter fails

New

Allow members who are admins or owners to remove other members from a project

IMPORTANT The latest build requires everyone to update to the latest version of takeshape-cli. For users who are using our starter project it's as simple as:

yarn add takeshape-cli

rm .tsgrc .graphqlrc

yarn run init

New

Assign members to roles

Initial ACL functionality

API endpoint is now based on project id instead of token

Relocate Save and Cancel buttons into sticky bar

Show a Content Type's description along with it's title

Multi-select and delete from content list view

Keyboard shortcut for <small> element

Show field descriptions in content editor

Add Array Union and Intersection filters to nunjucks

IMPORTANT The latest build requires everyone to update to the latest version of takeshape-cli. For users who are using our starter project it's as simple as:

yarn add takeshape-cli

rm .tsgrc .graphqlrc

yarn run init

Fixes

Clicks on certain navigation buttons visually indicate a click but do not actually register the click.

Remove Import/Export menu item until such time as the interface for this functionality has been built.

Improvements

New style for WYSIWYG links

Add max-items constraint to repeater field.

WYSIWYG fields are now indexed.

Inconsistent behavior when dragging and dropped fields when editing a content type.

Add pullquote class to the <aside> element for pullquotes.

New

Object Field Type

Link to the keyboard shortcuts docs page underneath the WYSIWYG field

Environment variables for each static site. Available in the template under the environmentVariables property.

Fixes

Use Content Type Title instead of Content Type Name for headings

Prevent spaces in the name field of relationship widgets

Improvements

Show content type of each content item in relationship field entries

New

On the project list screen show projects you're invited to but haven't joined yet. Allow the user to accecpt or reject the invitation

Link to pre-filled API explorer view

Add project member listing and invitation status to Members page

Allow bold, italic, underline and links in image captions and credits in asset manager and in WYSIWYG images

New Features

Highlight text and hit CMS+K to add a new link!

Links are now added directly in the toolbar instead of in a modal dialog

Support backtick markdown shortcut in WYSIWYG. If you've got inline code you can enclose it with backticks var = "like so;"

Support headings markdown shortcut in WYSIWYG. Now you can do things like type ### and it will automatically format the line in the WYSIWYG as an h3.

Color field type. A content type can now be configured with a color field allowing content creators to select a color from a color picker and for devs to use retrieve rgba, hex or hsl values of the selected color.

Improvements

Improve Checkbox field styling

Fixes

API Explorer...and a bunch of other functionality now works in Safari

Proplerly handle 401 Error When Cookie is Missing and redirect users to login again

minLength + required validation error for fields that aren't strings

If repearer field is required it now shows the required asterix

For a project invitation if a user's auth token has expired show a nice error message

New Feature

Add Pull Quote WYSIWYG

Improvements

Add title attributes to buttons to clarify button name

Fix

Properly position WYSIWYG inline toolbar when clicking to highlight text

Fixes

Fix reverse relationship filtering

Improvements

Use default format and auto imgix filters for images used in image block in wysiwyg

Add required * to required fields when editing a content type

Improvements

When adding a link in wysiwyg, autofocus on url input when dialog opens