Milan Lund, a freelance front-end developer, built Kentico's careers website, jobs.kentico.com, in Kentico Cloud headless CMS using the Node.js platform, the Express.js framework, and the Pug template engine. As a Kentico Certified Developer, Milan has plenty of experience with developing ASP.NET websites in traditional content management systems, such as Kentico CMS, so how did he tackle this headless challenge? I took an hour of his time to discuss the pros and cons of working with a headless CMS and using this latest technology.
Can you introduce the project you were working on in Kentico Cloud?
Kentico's HR department decided to build a new careers website that would attract more job applicants, generate new leads, and also have a blog section informing readers about company culture and life at Kentico. They hired me as an external web developer, and we agreed that Kentico Cloud was a perfect fit for jobs.kentico.com—content editors were able to create and manage content efficiently in one place, and I had the chance to work with new technologies.
What technologies did you use to build jobs.kentico.com?
How did you proceed when preparing and implementing the website?
Well, since our starting point was the old careers section that was originally a part of the kentico.com website, the project had three main phases. In the first phase, I needed to create a visual design and a new information architecture to make the careers section work as a separate website. In the second phase, content editors were preparing the new content in Kentico Cloud, while I was still working on the design. Then, I needed to adjust the content types, so that they could be easily implemented to the website and support both the Czech and English version of the website. After everything had been configured in the Kentico Cloud application, the third phase started. I got familiar with the Delivery API, built the technology stack, and started coding.
Did you use any third-party integrations for the careers website? If yes, how did you do it?
Yeah, we needed to integrate forms, because the main purpose of the website is to advertise new job opportunities and allow people to apply for a job. I used an iframe to load the form from the kentico.com website, which is running on Kentico CMS. When someone submits the form, the data is processed on the side of Kentico CMS and saved in the kentico.com database.
Now that you have experience with developing websites both in Kentico CMS and Kentico Cloud, where do you see the main differences between a traditional CMS and headless CMS?
Building a website with a headless CMS was something new that I hadn't tried before. Kentico Cloud definitely provides a better user experience because it was primarily designed and built for storing and managing content. It is also technology agnostic, and the Delivery API is easy to use. Even though Kentico Cloud has less functionality than Kentico CMS, the headless CMS is more flexible. On the other hand, Kentico CMS has pre-prepared functionality and code blocks for building websites, which makes the development and implementation process faster.
What was the biggest challenge you faced when preparing the website in a headless CMS?
While traditional CMSs provide code blocks that are ready to use, you need to code all the website functionality yourself in a headless CMS. Even though Kentico Cloud Developer Hub was helpful, best practices weren't available, so I was learning by doing. And the biggest challenge was the fact that I was in charge of all the project code.
How long did it take to deliver the careers website with Kentico Cloud?
As I was the only web developer working on the project and I also prepared the graphics, it took up to three weeks to deliver the website. I spent a week working on the design and almost two weeks implementing the website. However, we were able to save some time by working on the content and some parts of the design almost simultaneously.
What were the main benefits of working on the project with Kentico Cloud headless CMS?
When developing websites with a headless CMS, you're not bound to any specific technology. So this was a great opportunity to build a website using a technology of my choice—the Node.js platform. And I've certainly learned many new things. Moreover, it is easier to hire or outsource development, as developers don’t need to be familiar with traditional CMSs, which are usually complex systems. And last but not least, the Kentico Cloud user interface and API are easy to use.