About This Course

Get a brief introduction to the course.

We'll cover the following

Over the past two decades, web development has become increasingly complex. From basic HTML & CSS requested from a server and rendered in Internet Explorer on desktop computers to code splitting and on-demand content loading optimized for mobile devices with limited internet bandwidth, it has been quite a ride and there does not seem to be any sign of a slowdown. At the same time, numerous “best practices” can make tooling and processes overwhelming for web developers. In this course, we will go on a journey to make automated production deployments on every commit to the default branch.

JAMstack

As of spring 2020, the web development trend of the moment was called “JAMstack”.

JAM stands for JavaScript, API & Markup. We will dive much deeper into this topic throughout the course. For now, all you need to understand about JAMstack is the high-level concept:

“You generate a static version of your web application at build time that consists of HTML, CSS, and JavaScript. Deploy these assets to a content delivery network (CDN) from where it is served to the browser of your web application users.”

Let’s process that for a moment. Doesn’t it sound familiar? It is very similar to “basic HTML & CSS requested from a server and rendered in Internet Explorer.” You may think it took us twenty-five years or so to come full circle, and you are not too far off. However, a lot of progress has been made along the way, and current web frameworks, browsers, and programming languages are a lot more powerful and sophisticated compared to two decades ago.

Common questions

With all this progress also comes an ever-growing list of frameworks, programming languages, tools, best practices: you name it. Whether we are seasoned web developers or it is our first time learning how to build a web application, we will likely ask ourselves a number of questions:

  • Which framework(s) should we use?

  • Javascript? Or Typescript? What about CoffeeScript? Another language altogether?

  • How do we style the web application? Plain CSS, CSS-in-JS, Sass? Do we use a CSS framework? If so, which one?

In addition, a web application likely needs some sort of backend and persistence layer. This raises more questions:

  • What is the best way for the frontend to communicate with the backend? A REST API? Everyone seems to talk about GraphQL as being the best.

  • How can we host that backend? What option is most cost-effective? What scales globally? Do we need to scale globally?

  • Where to persist data? MySQL, PostgreSQL, a document-based NoSQL database?

Even if we find answers to all of the above, we still have to think about:

  • Code quality & maintenance
  • Testing
  • Deployments
  • Production support

We invite the brave to look at the picture below to visualize the complexity we are referring to.

In this course, we are going to learn what works best for individual & team projects. Equally important, we will learn what does not work so that you and your teams can avoid mistakes others have already made.