Jakub Bem
October 08, 2020
6min read
In our blog post about WordPress, we explained how you can take advantage of modern web technologies to create a lightning-fast frontend for websites.
Additionally, in our introduction to GraphQL, we explained APIs and what makes GraphQL so great.
Today we will merge both these topics and show you how to support your lightning-fast interfaces with a brilliant backend solution. Headless CMS, here we go.
Let’s recap - in the web world Content Management System is an application used to manage digital content. Traditional CMSes allow you to moderate your content mainly for a website or a blog. WordPress is a great example of such CMS.
Most content management systems come as a whole “site-builder” package - you can build your website from scratch using pre-prepared blocks and modules.
There are plugin systems that allow you to easily integrate features - for example, Yoast SEO, probably the most used SEO plugin for WordPress. And there are hundreds of themes to choose from when it comes to the visual aspects of your website (a.k.a. frontend).
These CMSes are widely used because they allow non-programmers to create simple websites and blogs (or even e-commerce shops) without much hassle.
As we previously mentioned, it all comes with a considerable cost.
Compromise on design - you are limited to what the themes can do, which means basic adjustments only. If you want specific designs implemented, it won’t be easy.
Compromise on functionality - traditional CMSes are designed with target as-wide-as-possible in mind. That means they will suffice for a simple website, but trying to build custom modules can cause a real headache.
Compromise on performance - these websites are difficult to optimize, as they usually consist of monolithic structures - gigantic code blocks that aren’t meant to be changed. That’s why websites created with site-builders/CMSes are generally much slower and their performance is sloppy.
Compromise on security - these solutions are very popular and used by millions of people, making them a target for hackers. There’s a statistic saying that about 75% of all WordPress sites have security vulnerabilities.
Compromise on technology choice - once you go with a traditional CMS, you are stuck with what it has to offer. It’s almost impossible to expand with different technologies effectively.
We can fix the issues mentioned above with headless CMS - a CMS completely decoupled from the presentation. It’s called headless because the head (our frontend) is detached from the admin panel and lives independently.
You can add and edit content like posts, images and anything else you might need through the CMS (admin panel). That content is then sent to your custom-built website.
But now you are not limited to just websites. Information can be served through an API for web and mobile apps too!
It also means that you can have a single admin panel for both your website and mobile app. That brings excellent cost-savings on backend development time and infrastructure while keeping your custom, well-optimized and beautiful frontend (app or website).
Let's talk about your project!
Even the traditional giants like WordPress and Drupal are already trying to work their way into going headless. However, they were never designed for that purpose and the competition already outpaces them.
And competition is plenty - Contentful, Prismic, Sanity and Storyblok just to name a few.
These are all great options used by major companies and they provide decent REST APIs. However, remember how GraphQL is so much better than REST?
Well, if only there was a GraphQL based, headless CMS… (drums please)
GraphCMS is a GraphQL native, headless CMS, and as you will find out soon, we love it and use it all the time. Why? In their own words:
Build your digital experiences API-first, the way you envisioned them. No templates, no restrictions, no boundaries.
And it does precisely that while allowing the developers to enjoy the truly modern technology stack, which provides the freedom to connect with any technology we might want to use.
With GraphQL, we can build brilliantly simple and performant APIs. It’s all done in the schema definition inside the GraphCMS, making it quick and efficient for the development team. Plus, we can integrate it with CRM, CDP, DMP and any other microservices of your choice. That becomes essential as more companies move towards the DXP (Digital Experience Platform) approach.
Setting up the admin panel is just as seamless. It’s a massive advantage over traditional CMSes like WordPress. No, seriously, if you have ever used WordPress please watch this video and see the difference for yourself.
That is a real benefit if you are building a new product from scratch because your team can independently start preparing the content, while we develop everything else. That way, we can reduce the time to market and launch your product more efficiently.
Also, it’s probably worth mentioning that our CEO was a member of the core team behind GraphCMS. This means that if you want to use it in your project, you should probably contact us 😎
Let’s go over two simple examples of GraphCMS in action - a mobile app and a website.
Dropsy - we developed a mobile app for our clients that serves information about premieres and great deals on clothes and shoes. It’s content-heavy, so it makes an excellent case for using GraphCMS. Thanks to that, we reduced development costs by approximately 40% and time to launch by 30%. Good savings.
Today Dropsy is a top-rated app in its category in Poland, with plans for a global expansion. Here’s what Dropsy Cofounder, Antoni Redziniak has to say about it:
"GraphCMS integration allowed us to seamlessly manage content from day one, without a long wait for the backend development to be finished. This solution is both economical and effective."
B7 shooting range - this is a Polish website, but it won’t prevent you from checking out the arsenal module. It’s the most detailed firearms database publicly available in Poland (you won’t find this info on Wikipedia).
As you can imagine, if our clients had to manage each of these entries manually, it would be painfully time-consuming. On the other hand, building a custom backend solution would be very costly, and building it with WordPress would be almost impossible, because of all the custom elements. That’s why we integrated the website with GraphCMS.
And in this case, it took us two days. Two.
Short answer: yes.
Of course, it will depend on what you want to achieve. What about cases when you shouldn’t use it? Two come to mind:
Firstly if you need a simple website or a blog for personal use and don’t need any custom designs. WordPress or any other traditional CMS will be good enough for that.
Secondly, a very low budget. If you can get away with limited functionality and using themes instead of original designs, then traditional CMS is an option.
Don’t mistake the second one with building an MVP - using traditional CMS can potentially save you a bit of money in the beginning, but the moment your business begins to grow, you will pay a massive tax. Traditional CMSes don’t scale well and lack of flexibility will almost certainly kill your project.
For MVP and other cases, we recommend you try GraphCMS in combination with Gatsby or Next.js for websites and React Native for mobile apps. It works like magic.
And if you do decide to try it out - definitely contact us. As you can probably tell by now, we are huge fans of this tech stack! 😄
Similar read
January 14, 2021
7min read
JAMstack is a modern web architecture, which significantly improves and (for the lack of a better word) revolutionizes how businesses build web applications and websites.
January 06, 2021
4min read
In 2021 Google will follow through with a few significant changes in their search algorithms that will impact technical SEO of virtually all websites and e-commerce platforms.
September 17, 2020
9min read
Today we are going to talk about APIs and, more specifically, about REST and GraphQL. Understanding how modern infrastructure works can be very beneficial when making a tech decision for your project.
Tell us more about the project you want to work on