Google

Google Learn PWA: Free Progressive Web Apps Course

Explore Google’s free PWA course to understand service workers, caching, manifests, installation and offline behaviour through local web development practice.

Learn PWA by Google, illustrated with a web application, installed phone app and offline symbol.

A useful web app should do more than display a page when the connection is perfect. Learn PWA, Google’s free progressive web app course on web.dev, explains how to add capabilities such as offline behaviour and installation while keeping the foundations of the web. It is a practical next step for developers who know HTML, CSS and JavaScript and want to understand how these pieces fit together.

The course introduces the PWA approach, then explores service workers, caching, manifests, updates and testing. You can follow the written modules in order or return to a specific topic while developing an existing website. The emphasis is on understanding the architecture, not selecting a paid app-building platform.

Course at a glance

Provider Google
Platform web.dev
Level Intermediate
Language English
Format Self-paced written course with demos and self-assessments
Prerequisites A grounding in HTML, CSS and JavaScript
Access Free public lessons; local browser/editor/server practice
Recognition Learn PWA developer-profile badge offered after completion confirmation
Accounts No account needed to read; free standard developer profile for the badge

What you’ll learn

  • Plan a progressive web app: understand how an existing website can gain app-oriented capabilities without depending on a particular framework.
  • Understand service workers: examine registration, lifecycle and the relationship between your application and network requests.
  • Design offline behaviour: explore caching, response strategies and storage choices for assets and data.
  • Prepare installation: learn about web app manifests, installation experiences and application updates.
  • Inspect your implementation: use browser developer tools to investigate service workers, storage and manifest information.
  • Evaluate enhancements: consider platform integration and capability support while retaining usable fallbacks.

Skills you’ll gain

  • PWA architecture
  • Service worker lifecycle
  • Cache strategies
  • Web app manifests
  • Offline experience design
  • Browser debugging

Choose what should work offline

Offline support is a product decision as well as a technical feature. A saved reading page and a live stock price have different needs. The caching and serving modules give you a vocabulary for deciding which resources to keep locally and which requests still need the network.

The service-worker lifecycle adds an important detail: registering a worker does not immediately put every page under its control. Understanding installation, activation and updates helps you investigate behaviour that can otherwise seem inconsistent during development.

A strong first goal is a small, reliable experience. For example, an application can explain that a live feature is unavailable rather than leave a blank screen. Offline support does not mean every action or remote service will work without a connection.

Build and inspect a small local example

For optional personal practice, create a short reading app with two pages, a manifest and a service worker. Begin with a clear offline fallback, then inspect the worker and cache in browser developer tools. Change an asset and observe the update process before adding more features.

You can use a free text editor, a compatible browser and a free local server. Python’s built-in HTTP server is one possible development tool; bind it to localhost and use a dedicated practice folder. It is not a production hosting solution.

Service workers and several related capabilities require a secure context. Localhost is supported for development, so paid hosting or a purchased domain is unnecessary for this practice route. Opening the files directly through a file URL is not an equivalent service-worker environment. This exercise is independent practice, not an official graded project.

Learn the limits of browser simulation

Installation and advanced capabilities differ across browsers and operating systems. Keep the ordinary website usable when an enhancement is unavailable, and check current support before choosing an API for a real application.

The tools chapter explains useful inspection approaches, but resizing a desktop browser does not reproduce every installed-app behaviour on a phone. Local development is sufficient for the advertised learning route; extensive testing on other devices is a separate step when preparing a production application.

Free access and the course badge

The written lessons, demonstrations and local practice route do not require a subscription, payment card, trial, paid cloud account or premium development service. You can read without signing in. No fixed total study time was verified.

The course offers a Learn PWA profile badge after completion confirmation. A standard Google developer profile is free. The badge is not a formal certificate, academic qualification or promise of app-store acceptance. Publishing through an app store is outside this independent free study route.

Enroll Now

Frequently asked questions

Can I start without web development experience?

Learn basic HTML, CSS and JavaScript first. The course welcomes developers at different stages, but those foundations are needed to follow the technical material.

Do I need paid hosting for the practice route?

No. Use a free local server and a compatible browser on localhost. Service-worker practice needs the correct development context rather than a file URL.

Will every PWA feature work in every browser?

No. Installation and capabilities vary. Use supported features progressively and keep a working website experience where an enhancement is unavailable.

Share this course

Questions & discussion

Share a useful question or correction. Comments appear after moderation. Please avoid personal or sensitive information.

Add to the discussion

Your email address will not be published. Required fields are marked *