Skip to content

Instantly share code, notes, and snippets.

@stefanoverna
Created April 3, 2018 21:11
  • Star 14 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save stefanoverna/cb001c4e93dd947a6e55226acd2d5bfe to your computer and use it in GitHub Desktop.
**Jeff Escalante**
# Dato & Contentful
There are many areas in which I'd consider Dato to be much stronger of a CMS than
contentful, and one in which I'd consider the opposite to be the case. I will try to be as
balanced as possible with this overview, as I am not employed by dato or anything ‐ my
goal is to ensure that my clients and developers get the best possible experience working
with a CMS.
## OVERALL BUSINESS DIRECTION
It's important to think about the high level direction of a company in addition to the small
details when you are deciding whether to invest many hours of work into their platform, so
I will start with this.
Contentful is an enterprise services company. Their money is made by selling large
contracts for thousands of dollars per month to companies. This is abundantly clear from
both their support and pricing models. They offer a large, generous free tier as an "on‐
ramp" to get developers to try out their platform and use it to set up sites, or even run
smaller or personal sites without any investment at all. They lose money on their free tier,
obviously, because their service isn't free. However, their gamble is that developers using
the free tier will push their clients or employers to use the system, since they have already
used it, and the small loss they took from giving away the resources for a smaller sites will
be made up for, and then some, by the drastically overpriced enterprise plans.
From top to bottom, contentful sees their free tier as a drag on their business, but one that
is necessary to widen their funnel of inbound leads. As such, they are regularly changing
around parameters and details of the free plan in order to strike the best balance they can
between giving away the least amount they can for free, and keeping their inbound lead
funnel as wide as possible. They have changed the free plan several times over the last
year, and will continue to do so as they A/B test different strategies to optimize their profit.
For users on the free tier, this is somewhere in the range from mildly to extremely
terrifying, for two reasons:
```
You know that the constraints of your plan both can and will change at any time,
which could force you into a place where your site stops working the way you
thought, or you need to buy up into the enterprise tier.
```
## 1.
```
The enterprise tier is enormously expensive. Their pricing goes from $0 to $250 per
month, which is an absurdly large jump. There is absolutely no way that most small to
medium sized sites can justify that kind of cost, given the number of alternative
hosting and CMS options that are significantly cheaper, so if you are on the free plan,
and they change it, and force you into enterprise, you either are going way over
budget or are forced to drop contentful and rebuild your site.
```
## 2.
I have had many interactions over the years with contentful staff trying to convince them
that caring about small and medium sized applications of their product is a goal worth
pursuing, but every attempt had fallen flat. It's clear that their business strategy does not
include this consideration, and that they only see these smaller sites as leads that they
could possibly sell into an overpriced enterprise plan. Seeing as how it has not changed for
many years, and how they are getting investment and seem to be doing fine, I see no
possible reason that it will change in the future, making it a very unstable platform for
anything other than enterprise applications in which the site operator is willing to pay in
the hundreds to thousands of dollars per month range for the service.
Additionally, Contentful is a heavily venture‐backed company, which means that it is part of
their mission to drive large profits and exponential growth. Slowing from exponential to
"doing pretty well, still profitable" means their investors are going to try to force the
company to sell and/or shut down to cut their losses in advance. This is just how venture
capital works. As such, contentful is both at a much higher risk for being sold and shut
down or merged into a different service, and must pursue a very aggressive growth plan,
that can quite literally never slow down until they sell or IPO. Dato is a bootstrapped
company run by a successful agency that uses it for their own projects, and has none of
these pressures. As such they don't need to be nearly as aggressive, which will become
clear as day in the subsequent section on pricing.
## PRICING
Tightly related to the above point is just the raw data when it comes to price. Dato is much
cheaper than contentful, at every level (other than the fringes of the free tier, which are an
extremely dangerous area to bank on as noted above). Dato's maximum flat‐fee tier is
$150/month, and includes unlimited resources, where Contentful's is $950/month, and
includes a mere 5 sites and 20 users. The difference here is staggering. 
Additionally, Dato includes a number of inexpensive tiers ranging from $10‐25 per month,
that fit the bill nicely for a range of small to medium sized operations. Contentful's lowest
possible plan, which is basically just removing the requirement to include their logo, is $40.
For services that, I can tell you from extensive experience, do the same thing and can both
accomplish the same goals, I see no reason why anyone would choose to pay several orders
of magnitude more for one than the other.
## FEATURES
There are a number of features that DatoCMS has, and contentful does not. All of these
features have seen  **heavy**  use for the projects I have been on, and I'll go over them briefly
below.
```
Single Instance Models  ‐ dato has this concept where you can create a model that
there could never be more than one instance of, which is often very helpful. For
example, if you have an about page with some custom content, you would never have
a second about page. In contentful, you'd need to make an "about pages" model, which
has potentially multiple instances, and just instruct people to not make any more. Not
having this feature also makes the UI more confusing, requiring strange naming
conventions and an extra click level.
```
## •
```
Customizable Navigation  ‐ in dato, you can customize the navigation bar presented to
clients. So, rather than having the default dashboard be a list of all models, you can
choose which models are presented for editing, and even nest them into structures in
which they make the most sense.
```
## •
```
Modular Content Blocks  ‐ dato does an excellent job handling "modular content",
which is basically when you want to give the client an area in which they can enter in
arbitrary content, but within guidelines. in the modular content type, you can create
sub‐models that are only available in that instance, and the client can create blocks of
the types of any of your sub‐models in any order. this gives a lot more flexibility to
editors. you can achieve a similar result with contentful, but the experience is much
uglier and more difficult to both configure and use
```
## •
```
Extremely Receptive to New Features  ‐ since dato is a smaller product and has less
users, and since they are less enterprise‐focused, they give a lot more attention to
which features people want. I have requested several features that have made their
way to production in a matter of days, where with contentful I have requested
features for years and they are still not there.
```
## •
```
Superior User Experience  ‐ overall, dato has a better user experience. this is hard to
describe precisely, but the way things are arranged is just easier and makes more
sense for clients. there are fewer levels of nesting, less confusions with drafts and
published items, and the interface is cleaner and more friendly.
```
## •
```
Strongly Consistent Architecture  ‐ contentful bases their architecture on eventual
consistency, which means that after a record is created, if you request that record you
```
## •
```
may get a 404 since it hasn't replicated to all their nodes. the only way to handle this
is to continue retrying until it shows up. this makes writing scripts that utilize its API
for adding content or migrating extremely frustrating. Dato has a strongly consistent
architecture, so after you create something, it is there immediately, like it said it was.
Hierarchy Data Structures  ‐ dato has a few data structures that contentful doesn't
have which help with setting up hierarchal trees of content, which are often quite
helpful
```
## •
```
Validation and Draft Issues  ‐ contentful has issues with their draft and validation
system. for example, when you use a link field to another record, and set the validation
to ensure that there is content in the field, the validation can be surpassed by creating
a draft, which does not show up in the API response, effectively nullifying the effect of
trying to enforce an item in that field. this makes it very easy to break the site, and
requires much more defensive coding.
```
## •
```
Fine‐Grained User Permissions  ‐ dato's user permission and roles system is vastly
superior to contentful's. In dato, you can drill all the way down to granting or revoking
read/write/create/delete permissions for specific models per users, making it simple to
craft user roles that only have access to exactly what they need.
```
## •
```
Whitelabeled Admin Interface  ‐ dato has a very strong interface whitelabeling system.
when you are on any paid plan, you can completely customize the interface to the
point where you can't tell you're using dato at all, and it looks like a custom CMS made
specifically for the client.
```
## •
```
Superior Integration with Common Deployment Services  ‐ dato has direct
integrations with every popular CI service, as well as netlify. with contentful, you need
to wire them up manually.
```
## •
```
Internationalization  ‐ dato was built by an italian agency for whom internationalization
is nearly a default requirement for their work. a lot of thought has been put into this
system, making it very easy to understand and use. with contentful, while they have
the feature, it's not nearly as straightforward.
```
## •
```
API Response Organization  ‐ when you make a request to dato, you get back the data
in a very clean and organized format. any request to contentful results in enormous
amounts of junk data you don't need that you must wade through to get to the
content you were after.
```
## •
```
API Surface Area  ‐ dato's API covers literally everything you could possibly do, from
creating new users, to adjusting those users' roles and permissions, to provisioning
models, etc. it makes it very easy to be confident that there is no action within the
CMS that you couldn't automate with scripts. Contentful exposes a lot of API surface
area as well, but it's not as much as Dato.
```
## •
```
Editorial CMS Features  ‐ dato is still working on rolling out editorial features, and so
things like drafts and scheduled publishing are not part of the platform. Contentful
```
## •
```
does have some of these features, although they are not as strong as they could be.
Prismic is really the market leader for this portion, but I fully expect dato to rise to the
top once they release their take on it, as they have with nearly every other feature
they have worked on.
API Query Features  ‐ another weak point, dato doesn't allow great customization
when it comes to querying for specific data through the API. the gold standard here is
graphql, which allows any data pattern to be pulled easily. contentful doesn't have this,
but they do have a decent amount more query options than dato does. In practice, this
is almost never an issue, as you will often need all of the data you put into your CMS.
If you don't need it, there's no reason to have it in the CMS in the first place.
```
## •
```
Image API  ‐ Dato uses imgix as their image processing API, which is  really  good. There
is absolutely nothing you can't do with imgix, down to watermarking images, auto‐
center‐finding crops, etc. Contentful has their own image processing API which is
good , and much better than what most other CMS' provide, but not nearly as good as
imgix.
```
## •
## SUPPORT & LONGETIVITY
The one category where Contentful is ahead is enterprise support, and frankly, they are far
ahead. As noted in the initial section, they are an enterprise services company, so this
shouldn't be surprising. But Dato is just getting started getting accustomed to enterprise
support, and are very much new to the area. They have handled it pretty well so far for my
enterprise projects, but if you are working on a job that is in absolute need to very
buttoned‐up enteprise support, Contentful will be much stronger in this area without a
doubt.
That being said, Dato has better support on average across all tiers of service ‐ Contentful
prioritizes enterprise above all else, so it can be difficult to get what you need as a non‐
enterprise user.
Another important consideration is how likely it is that any given CMS will go out of
business and force a migration. It's hard to make a call with this one – contentful is by far
the larger and more stable company, but they are venture backed which introduces the
very real possibility that they could be forced to sell off or shut down if they are not
displaying very aggressive growth. Dato on the other hand doesn't have nearly as much
funding, and is a side project for an agency, so it's possible if they feel like it's not producing
enough revenue, they could decide to stop working on it. Neither has committed to open
source, or any type of contingency plan if they do decide to shut down.
@gmcdaniel-espi
Copy link

Nice writeup. Thank you.

@nalmeida
Copy link

nalmeida commented Aug 8, 2018

Great review! Tks!

@corysimmons
Copy link

@jescalan This still pretty accurate in mid-2019 or do you have a new preferred CMS/method?

@jescalan
Copy link

@corysimmons Still accurate, still using datocms

@corysimmons
Copy link

corysimmons commented May 30, 2019

Thanks.

To add a contender, I tried GraphCMS and it's pretty good, but now that Dato has GraphQL it's far better (single instance models, Imgix on-the-fly resizing and such, plugin system, etc.).

Update: GraphCMS also can do on-the-fly resizing and such (they use Filestack under the hood instead of Imgix), and GraphCMS offers GraphQL mutations whereas Dato offers GrapQL for queries and REST for mutations (which I'm unsure if I like better or worse).

GraphCMS' big downfall is how buggy the UI is, and price (in comparison to Dato). So yeah, Dato still the winner as of 10/2019.

@neetso
Copy link

neetso commented Oct 30, 2019

This is a fantastic review. After building some sites on top of Contentful, I'd pretty much come to the conclusion that they're not a good fit for my needs but you've really put your finger on why. (The fact that you wrote this 2 years ago and the situation is pretty much the same, shows they're not for turning.)

@DigiAeon
Copy link

I am keen to understand where does DatoCMS price is sitting compared to Contentful for Enterprise plan with professional plan's limit. I heard this enterprise plan is 5 times cheaper than Contentful but honestly, I am not sure if this really is true or not! Is it really true as of today?

@stefanoverna
Copy link
Author

definitely cheaper @DigiAeon :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment