By 2023, the number of developers is expected to reach 27.7 million, according to Evans Data Corporation. Many organizations think they need to hire a full-stack developer to use a CMS – but this isn't necessarily the case. As long as you know front-end development, you can use a CMS.
In this article, we'll explore why a headless CMS makes things simpler and geared more towards front-end developers, the foundational skills required for a front-end developer, and then move to topics like frameworks and additional tools needed to master the skill.
Why Traditional CMSs Depend on Full-Stack Developers
When you have a website that includes backend/server-side programming and front-end (like most non-Jamstack CMS implementations), the barrier to entry for front-end developers is relatively high. A developer needs to know how to run the site on their computer, which often requires you to install specific programs or dependencies (setup time is high). They also need to know how to work around the backend and sometimes even do some basic things.
Also, managing a database and all its data tends to scare many developers as this is a requirement when using platforms such as WordPress, which most designers/front-end developers are used to. Full-stack developers are expensive, hard to find and not always specialized in front-end. The average salary of a full-stack developer in Canada can be about $110k annually, whereas the average front-end developer's salary is $90k a year.
The Rise of the Front-End Developer
For the seventh year in a row, JavaScript has been named the most commonly used programming language according to Stack Overflows Developer Survey Results - 2019.
Modern JavaScript frameworks such as Gatsby and headless CMSs simplify things and are geared towards front-end developers. This is why the number of front-end developers is rising. JavaScript is the most used programming language. Now that you can use it on the backend and front-end, it's the perfect tool for front-end developers.
Also, with the advent of microservice architectures, that may be in a docker container, which you would have to set up yourself, or something like Netlify Actions, Azure Functions, or Lambda Functions in AWS. Each of these can be written using the JavaScript skills you already know.
If you're starting your career in front-end development, look at some online tutorials. There are many self-learning platforms out there, such as Udemy, W3CSchools, and coding camps, that can help you become an expert.
The Path to Being a Front-End Developer
There is a particular skill set required to become a front-end developer. If you are starting in the IT world, or maybe you are trying to land your first front-end developer position, then check this list below on what you need to know to be considered a front-end developer:
- Be familiar with a Design platform like Sketch or Photoshop (you don't need to be an expert; typically, you use it to review mockups etc., from designers and gather assets like images).
- Learn HTML / CSS and get familiar with a good Text Editor like VS Code. Start working on static HTML/CSS layouts. (Static meaning that they don't have any interactivity or connect to a data source (database, API etc.)
- Learn JavaScript first - Super crucial in modern web development, but essential to learn the fundamentals of JavaScript before jumping into any JS Frameworks (discussed next). Some developers make mistakes and learn a framework first, which can end up counterproductive.
- Learn a JS Framework - Frameworks like React, Vue, Angular, etc., are beneficial for building high-scale web apps; however, our development team here at Agility CMS suggests that you learn JavaScript basics before diving into a framework. I discuss some of these frameworks below
- Learn a Static Site Framework - React has Gatsby, Next.js, Vue has Nuxt.js, Gridsome, etc. These frameworks allow you to build fast websites and apps and are very important for SEO compared with a regular JavaScript Single Page Application. I discuss these and more below.
Front-End Frameworks
JS Frameworks
- React – React is a JavaScript library for building user interfaces. React can be used as a base in the development of single-page or mobile applications. You can read this article to explore the leading UI frameworks for Reactjs applications.
- Vue.js – Vue.js is an open-source model–view–ViewModel JavaScript framework for building user interfaces and single-page applications. For a complete list of Vue UI component libraries and frameworks, click here.
- AngularJS – AngularJS is a JavaScript-based open-source front-end web framework. It aims to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model–view–viewmodel (MVVM) architectures, along with components commonly used in rich Internet applications.
Full Frameworks
- GatsbyJS: Gatsby is a fantastic framework for Static Site Generation. Built on top of React.js, it's been around for several years and is reliable. Agility CMS has written a Gatsby Source Plugin that allows you to create sites using Gatsby with content pulled directly from Agility's Headless Content APIs - including dynamic page routing
- Next.js – Next.js is a React framework that allows you to write server-rendered React apps easily. It's relatively similar to NuxtJS, as they effectively do the same thing but with different frameworks
- NuxtJS – Nuxt.js is a free and open-source framework built on Vue.js, Node.js, Webpack and Babel.js. It allows for Static Site Generation, Single Page Application and Server-Side-Rendering. What's impressive is that you can run the same code in all these different ways, hook it up to a CMS, and power all the content from there (including the Page Routing). Most headless CMS systems don't allow for Page Routing to be defined in the CMS itself, but Agility CMS allows you the ability to do this. You can read more here.
CSS Frameworks
- Bootstrap – This is an oldie but a goodie and has been through many iterations. It's used in many apps and websites; if you aren't using it now, you may have to learn how someone else has used it.
- Tailwinds CSS – Tailwind CSS is a highly customizable, low-level CSS framework that gives you all the building blocks you need to build bespoke designs without any annoying opinionated styles you must fight to override.
- Bulma CSS – This CSS framework based on Flexbox can help you get going fast, especially if you want to start from a responsive grid system.