Showcase: global website

I would like to show DatoCMS community the marketing page that we have been working on for the last year. It is a redesign of our global marketing website. The site is running in 10 languages. It is not 100% perfect yet, but we decided to go ahead with the release and try to solve open issues on the go. There is about ca. 2500 landing pages we are serving currently with DatoCMS, and growing almost daily.

When we decided to go on this path we have trialed several Headless CMS solutions, including Contentful, Prismatic, Directus, Strapi, and some other. But at the end DatoCMS offered what has been most important to us:

  • Competitive pricing
  • Relatively very good translation tools
  • Fast, responsive, and clean UIX
  • Awesome customer support

The toolchain we use

  1. DatoCMS headless CMS
  2. Next.js framework
  3. GitHub
  4. Vercel edge network
  5. ChakraUI

Some of the challenges we have faces during the planning, development, and deployment and some that still haunt us.

Translation of slugs

This was a biggest challenge as Next.js does not support this out of the box, so custom solution is needed. We translate slugs in all languages (expect Russian and Chinese). We partnered with external web agency to create this routing solution in Next.js, and that turned out nicely.

Hosting within the mainland China

This thing is still not resolved and is a challenge that will have our attention in the upcomming weeks and probably months. Everyone knows that hosting in China needs a special attention. Most of the sites seating on the servers outside mainland China have limited reachability and usability in the mainland China. We do business in China and we need to be present there with the website.

Obviously the first thing you try is Google search. And we landed with these guys →, which is the first hit on Google SERP. So after initial web conference with the sales guy to define the scope of the project, followed the second conference call where they presented the pricing. I was expecting and ready to pay something up to 5k to get it setup. But you wont believe the pricing they came up was 140 k$!!! Per year!!! So we quickly moved on from this.

To host the site itself is not a big deal. The bigger issue here is how to move Dato’s assets to a different CDN within mainland China and then relink these assets to the actual website. We are using Dato’s react Image component, which I guess it the biggest problem to solve this. So far I don’t have the solution yet.

Working with translators

We have added the translation role upgrade to DatoCMS. It is a convenient way and a must to have feature for translators. With translator roles you can mange that translator can only edit certain locale. This works great.

The only thing that is not solved in the perfect way with DatoCMS is inability to have Draft/Publish separated by locale. It’s a must have feature and would be really good if Dato would consider adding this. I know there are workarounds, but this is really pain to implement across wide site.

Additional thing that is very handy for multi-language site is the Translate plugin. I can not say how much time this plugin has cut for us. It ussed DeepL translator in behind and with one click you can translate certain text field to all languages. And with fairly good translation.

Site search

We have made our own solution regarding site-search. Using DatoCMS’s node API we are creating a JSON index of the pages and loading it with the site. I was a little but afraid it will be too heavy but it turns out nicely. I am using fuzzy search Javascript library that is not perfect but good enough and very fast to search trough the json index file. We might upgrade this with Algolia or something different in the future.

I know DatoCMS offers it’s own site search feature. We might use it in the future iterations of our search.

Other things that would be good to have

  • On-site editing: would love to see Dato’s native approach to this. I know this is not easy task to solve. But still would be a great add-on to already awesome product. I haven’t had time to try the for this. It might be the good solution at the end.
  • Dashboard feature to export/import model definitions.
  • Dashboard feature for exporting and importing model records (CSV/Excel).
  • Able to see where certain blocks are instanced (similar like we can see for assets).
  • Good native table editor.

Thanks again to Dato’s team, especially to @matteo.giaccone, @s.verna , @m.finamor for providing such a great support to us. We have had no problems of suggesting DatoCMS to other companies and people, and feedback so far has been great just from anyone to whom we have showed it.

We are going to grow on DatoCMS and use it for our other apps as well, so internally it is going to grow to more things than just the marketing website.