What's hot in web development in 2020? Here are my top 7 trends and topics you shouldn't miss!
Web Dev Trends 2020
Web development is always evolving and changing. The tools and technologies we used 8 years ago have often already been replaced with new alternatives.
So what's hot in 2020, which topics should you be aware of and explore in the new year?
Here are my top seven trends (not ordered in any particular order)!
Not a Trend: The Basics
Okay, before we explore the actual trends, here's the most important thing: You need to know the basics.
In web development it's too easy to get overwhelmed by all the technologies and choices you have. But if you're relatively new to the field, you should simply focus on the core basics before you explore all these more advanced frameworks and concepts.
I also have a complete article + video about a possible web development learning path, so definitely also check that out.
Okay, this trend is only an important trend for you if you're at least a bit into frontend or fullstack web development. As a pure backend developer, you can ignore it.
We build more and more applications for the web and more and more desktop applications are getting replaced by web applications.
If you haven't looked into them yet, you should definitely explore one of the three big ones (mentioned above) in 2020.
Diving into two can also be interesting, simply because it broadens your horizon and helps to understand the idea those frameworks follow.
Which one is best? They're all great, if you're interested, I got this comparison though.
Trend 2: Website Performance & Optimization
Website performance and speed matters!
If you're living in a country like the USA or Germany, you're probably used to fast internet (well, in Germany, you might not be) - both at home as well as on your mobile phone.
But this is not the standard in the entire world. Indeed a huge amount of internet users visits the web on slow devices - both regarding the internet speed as well as the device speed.
Since we build ever-more complex user interfaces and web applications, it's crucial to keep performance in mind.
Performance includes many things:
Startup time (i.e. bundle size => How big is your app, how much data must be downloaded by the browser?)
Runtime performance (=> How fast is your app once it has been loaded?)
User experience (=> Is content jumping around, is the page accessible?)
To improve performance, you can look into many things.
There are obvious factors like the size of your (shipped and compressed) codebase but there are also factors like image sizes and types as well as how and when you load and render content on the screen.
If you google for "website performance" or similar terms, you'll find plenty of resources.
I can strongly recommend some resources provided by Google:
Trend 3: Microservices
Microservices are a buzzword and hot topic.
What are "Microservices" about though?
The core idea is simple: You want to split your application (no matter if it's a backend API or a frontend user interface) into small, mostly independent pieces.
Because that makes it easier to manage and update your codebase - especially when working on bigger projects and in a team.
Basically, apps using a microservice architecture are the opposite of monolithic applications.
If you were building an online shop, you could for example split your backend database and API into these services:
A service for managing users (signup, login)
A service for administrating products (CRUD)
A service for registering orders (cart management, create orders etc)
You could also build just one huge API that talks to a single database and for some (maybe also many) apps, this might work and be absolutely fine.
But it means that every change you make needs to be checked against your entire codebase. If you're working on a team, splitting work might also be harder and different changes made in different parts of the code could interfere.
When following a microservices approach, every part has to be built such that it works standalone - this of course makes it easier to manage and maintain.
Trend 4: Serverless Applications
This is not a new trend but it's still an extremely important one.
"Serverless" does not mean that we don't use servers anymore - we do (our app has to be served from somewhere after all).
But the idea of serverless applications is that you don't have to manage and administrate those servers on your own anymore.
Instead you can use dedicated services like AWS Lambda (and others both in and outside of AWS) to run code upon certain events (e.g. an incoming Http request).
This allows you to focus on your code only instead of all the boilerplate and extra setup you need to take care of otherwise (e.g. security, routing, scaling etc).
You also only pay for what you use and can scale infinitely!
If you want to learn more, I got a serverless applications course (for AWS services) you can explore.
Trend 5: Machine Learning & Artificial Intelligence
Of course machine learning (ML) and artificial intelligence (AI) are hot buzzwords - everyone uses them, a lot of people don't know what these terms really mean.
This is not the place to dive deeply into those topics but of course it's important to realize that ML and AI will change many aspects of modern life and business. That alone makes them important.
But also especially for web development, these topics will stay important and might become more and more important.
Besides the opportunities you have for enhancing your business and user experience with ML and AI (e.g. via chatbots, automated responses etc), you can also leverage packages and tools like Guess.js to pre-load assets and required code in a smart way. This can help with performance optimizations and provide a better user experience.
And of course there are many other ways of improving applications with ML and AI - so exploring these topics, picking up some basics and understanding what ML and AI can and can't do for you is super important!
Trend 6: Testing
Of course you test your code all the time as a web developer.
If you're working on a web page, you typically write some code to then evaluate whether it works the way it should.
We all do this and we do it whilst coding. It's an integral part of being a web developer.
BUT: You can't test the entire application all the time for every little change you make to your code. You also can't test every possible scenario.
That's where automated tests (unit tests, integration tests and end-to-end tests) come in.
The idea behind testing simply is that you write some code which then executes and tests your main code. So you have code testing other code. Pretty good, huh?
Testing can not only speed up your development workflow (less manual testing to do!) but it also typically makes your code way better and leads to fewer bugs.
Testing definitely is an art on its own and writing good tests takes a lot of experience - like everything in life.
But you will be able to see results quickly and you can gain a lot if you become comfortable with writing tests.
I have a free mini-series (part 1, part 2) if you want to get started.
Trend 7: Progressive Web Apps & Cross-Platform Apps
As a web developer, we can build amazing user experiences on the web. And as mentioned before, more and more applications are moving into the web. Think about examples like Google Docs.
Wouldn't it be great if we could use our experience and knowledge as a web developer to build not only websites but also mobile apps? Or desktop apps?
Or maybe build web apps but enrich them with features we typically know from mobile apps (e.g. getting a user location, using the device camera)?
You can do that!
For one, you have tools like Capacitor which allow you to take your existing web app and easily turn it into a real native mobile or desktop app (like we do in my Angular + Ionic course).
Alternatively or in addition, you can also turn your web app into a "progressive web app" (PWA) - this means that you make it offline-compatible, installable and that you might use native device features or advanced browser APIs.
I also got a complete course on that if you want to learn how to convert any web app into a PWA!
These were my trends for the year.
Now of course that's not all that you could look into or learn. Maybe you already know all these topics or you can rule out that you'll be interested in let's say PWAs.
Definitely also share your thoughts - either in the comments of the YouTube video at the beginning of the page or in our free Academind Community on Discord.
Also keep in mind that you could identify thousands of potential topics in the area of web development - what matters to you always depends on your focus and personal interest. :-)