In this course, we help you build a foundation of knowledge about artificial
intelligence (AI), to add features to your websites and web applications. You've
likely already used AI in some capacity, such as prompting in
[Gemini](https://gemini.google.com/) or ChatGPT's interface, reading
generated summaries in Google Search, or vibe coding with tools like
[Antigravity](https://antigravity.google/). Here, you learn decision
frameworks to design and integrate AI into your applications.

If you're familiar with the web.dev Learn courses, such as [HTML](https://web.dev/learn/html),
[Accessibility](https://web.dev/learn/accessibility), and [Privacy](https://web.dev/learn/privacy), this may
look a little different. We know that engineering roles are changing and will
continue to change. While reading and writing code is still a critical part of a
web developer's job, your most important role with AI is planning your system.

It's impossible to write this course and remain relevant if we offer explicit
focus on any one tool or model. Besides, that's what documentation is for.
Instead, this course focuses on more essential skills.

We aim to help you answer the following questions:

- What feature are you building, and why are you building it?
- Is AI the right tool to make this feature possible or the right tool to help you produce the application?
- What determines if your feature is successful?

> [!TIP]
> **Tip:** You may encounter unfamiliar terms in these modules. We recommend you consult the course [glossary](https://web.dev/learn/ai/glossary) and the [machine learning glossary](https://developers.google.com/machine-learning/glossary).

Senior engineers know you should always plan a system before you build, to
ensure you meet a set of predetermined expectations. This can include system
safety, accessibility, simplicity (when possible), and scalability. Now,
everyone has to think about application architecture, before you start building.

As AI evolves, you're more likely to become a system architect. Instead of
jumping right in and building, you need to construct how something is built,
document your requirements, and determine where and how AI belongs. AI may be a
feature in your application, or it may write code and support your development
process. In the end, you determine what works, how to mitigate problems, and how
to meet the expectations of your end users.

Whether prompted by company mandates or enthusiasm, AI for AI's sake isn't
useful. The best features come from a user need and are measured by the value
they deliver.

You'll learn how to think about building your web applications
with an AI system that is responsible, usable, and valuable,
so that your application delivers on the technology's promise.

### [Introducing AI for Web developers](https://web.dev/learn/ai/introduction)

Introducing basic principles and mental models to help you think about your own
AI use cases and solutions.

### [Explore AI use cases](https://web.dev/learn/ai/use-cases)

You shouldn't build AI features because they're novel or impressive. Instead,
build them because they genuinely make life easier, faster, or more enjoyable
for users. This module describes a structured, iterative method for ideating,
specifying, and prototyping AI use cases in your product.

### [Predictive AI](https://web.dev/learn/ai/predictive)

Learn about predictive AI, how it works, and how it can be used in web
development.

### [Generative AI](https://web.dev/learn/ai/generative)

Understand if you need a generative AI model for your web application.

### [Build responsibly with AI](https://web.dev/learn/ai/responsibility)

In this module, we cover privacy, fairness, and trust. Your design decisions
directly shape the responsibility and safety of your AI system.

### [Pick your platform](https://web.dev/learn/ai/platform)

Your choice impacts the speed, cost, scalability, and trustworthiness of your
AI system.

### [Choose a client-side library](https://web.dev/learn/ai/client-side)

Understand your options for client-side AI, what trade-offs to expect, and how
to handle application-specific constraints.

### [Prompt engineering](https://web.dev/learn/ai/prompt-engineering)

Learn how prompt components are distributed in a system, basic techniques, and
scenarios in which to apply them.

### [Evaluation-driven development](https://web.dev/learn/ai/evaluation-driven-development)

Use this development framework to balance brevity with effectiveness in your
AI applications, based on test-driven development.

### [UX patterns for web AI](https://web.dev/learn/ai/ux-patterns)

Discover best practices for designing UX for background, constrained, and
open-ended AI patterns.

### [Glossary](https://web.dev/learn/ai/glossary)

Many of the key terms and concepts from this course.

So, are you ready to learn AI?
[Let's get started](https://web.dev/learn/ai/introduction).

> [!NOTE]
> **Note:** This course was written by [Dr. Janna Lipenkova](https://www.google.com/books/edition/The_Art_of_AI_Product_Development/XHZmEQAAQBAJ), with feedback and editorial guidance from [Alexandra Klepper](https://alexandrascript.com). Special thanks to [Thomas Steiner](https://blog.tomayac.com/), Kenji Baheux, [Andre Bandarra](https://bandarra.me/), and Milica Mihajlija, whose support and reviews were instrumental in getting this published.