Modern Web Development: HTML, CSS, asynchronous JavaScript and PWA

The Internet is constantly evolving at high speed. Learn how to build modern, fast, flexible mobile and desktop web applications based on the latest technologies. The course is updated regularly to keep up with the latest developments.

Besides covering the basics of HTML, CSS and JavaScript, we’ll also deep dive into each of those technologies. JavaScript basics are covered plus new and advanced topics like transpilers, modules, lazy loading, destructuring JSON and asynchronous programming. You’ll learn to create apps that dynamically adjust to screen sizes with use of CSS Flexbox, CSS Grid, CSS variables, relative font sizes and responsive images. How to have a normal website and also let it appear as a traditional application or native mobile application?

Want to write apps that are powered by Web technologies and delivered with Web infrastructure? Welcome to Progressive Web Apps. PWAs are secure and installable, can run offline and can display system notifications even when the app is not running. Course covers all PWA technologies, including storing data in the browser, caching files, payment APIs and other requirements for a proper app.

Measure and optimise performance, as well as debugging and testing. Finally, Accessibility, Video and other APIs (on request) will be covered extensively.

You want to learn the web today or upgrade your knowledge, this course is where you should start. We cover the most popular and successful web patterns and technologies in use today. Course will be updated regularly to keep up with the latests developments.



This training is aimed at any developer with 6 month experience that want to write web and mobile web applications with HTML, JavaScript and CSS.


Familiarity with any contemporary programming language.

Course content:

JavaScript 202X (ECMAScript)

We’ll cover basic syntax as well as useful new additions to the language. Most notable: Variable declarations with let, var and const; Class syntax; Modules; Template strings; Arrow functions; Default parameters in functions; for..of loops; Promises and async/await asynchronous function handling; Destructuring; Rest and Spread operators for quick array and object manipulations; Maps (key-value pairs) and Sets (unique values); Modules and Lazy Loading.

CSS 202X

Explaining CSS precedence. Both well known and the latests selectors, pseudo classes and pseudo elements are discussed as well as style attributes. Techniques to adjust to the screen size are responsive images as well as Web Fonts and flexible font sizes.

CSS Flexbox (1 dimension layout), CSS Grid (2 dimension layout) and CSS Custom Properties will be covered. The Grid allows for layouts that were previously impossible or could only be achieved with JavaScript. Grid also surpasses Bootstrap in possibilities, flexibility and has a simpler markup.

HTML 5.X and beyond

Basics like the Document Object Model (DOM) and manipulation thereof as well as the working of the event-system are covered. We’ll dive deeper into handling both touch and mouse event to work with all types of devices, not only desktops. HTML Forms input types and validation methods are covered.

Progressive Web Apps

Progressive Web Apps (PWA) is a set of technologies you can use to enhance a website with application behaviour:

  • Installable: The website can be added to the home screen of the device.
  • Web App Manifest: Defining the icon, home screen title, splash screen, background color and home page.
  • Fetch: Simple and powerful API to fetch resources (successor of XMLHttpRequest).
  • Offline and online behaviour: No matter if there is a network connection, the app will work using Service
  • Workers to control requests and toring
    responses to requests offline using the Cache API, Web Storage or IndexedDB.
  • Notifications. Send updates from the server to the app with the Push API and use the Notification API to generate system notifications even if the app is not running.
  • Safe: Only https (or localhost for development).
  • Progressive: Use the above technologies if they are available, but the page (app) will work if the device’s browser is less capable.
  • Stores: PWA can even be published to the Microsoft Store and become Windows Apps.
  • Payment: How to integrate payments

Web APIs

Data storage within the browser are covered with 3 techniques:

  • Storage API, Local & Session storage when you don’t want to store too much data.
  • IndexedDB API (version 2), is an object database with more capacity.
  • Cache API for use with Progressive Web Apps.

Additional Web APIs are covered on request:

  • Barcode detection
  • Drag and Drop
  • File Handling
  • Geolocation
  • Gyroscope
  • Screen Wake Lock
  • Share data with other apps
  • Speech RecognitionVibration


Explaining techniques to keep your designs accessible for the visual impaired.



  • Compression and minification of images, scripts, css, etc.
  • To inline or not to inline?
  • Async loading of scripts.
  • How to measure performance?


Explaining how to use the developer tools in the browser:

  • Setting breakpoints in code or when events happen
  • Using the console
  • Dynamically making changes for immediate feedback
  • Debugging CSS specificity and computed styles.
  • Storybook


Browsers offer support to test on devices with different capabilities like screen sizes and connection speeds. We’ll also cover writing JavaScript unit tests.

Video & Audio

Answers: How to add video & audio elements? How to create subtitles and picture-in-picture video?

Rick Beerendonk - instructor of the course

Rick is a senior consultant and trainer from The Netherlands.
He has over 25 years of professional experience while working in small, large and fast growing organisations.
His passion is simplicity, wellwritten code and team dynamics.
He is specialised in front-end technologies and speaks regularly about these topics at international events.

Other relevant courses

16. October
3 days
Classroom Virtual
18. September
3 days
Classroom Virtual
16. October
3 days
4 days