AI-Native Web Development, Hands-On.

You'll leave with your own portfolio site, live on the web.

1 · Theory20 min
2 · Hands-onthe rest of the session: you build

Hi, I'm Fabian Krumbholz.

Google Developer Expert for Web Technologies.

  • Team Lead for Data Insights at Speed Kit
  • 15 years as a web developer
  • Building with AI agents every day

What we build today.

A portfolio like fabkrum.github.io/portfolio, with your name on it, live on the web.

  • Bio, projects, links and CV, in your own style
  • A privacy page, fit for the EU
  • Fast, accessible, in light and dark mode
  • Live at USERNAME.github.io/portfolio

Yours to keep

The slides

Linked in the guide, under Help and reference.

The guide

Online after today, with every step and every prompt.

Your site

Repo, code and agent skills, in your own GitHub account.

AI can build a great site or a bad one.

What you know decides which one you get.

Know the topic

Understand what good means: fast, accessible, private, built on today's web. Then you can ask for it, and see when it is missing.

Know the AI

Understand how agents work, and set them up: rules, skills, the right context, the right model. Then you get the outcome you need.

Know the code

Read what the agent writes, so you can judge it and keep it maintainable. AI writes faster; keep learning to code.

What makes a good website.

Four things every visitor feels, whether or not they know the words.

Performance

LCP < 1 s
the main content shows fast

CLS ≤ 0.1
nothing jumps while it loads

INP < 100 ms
a tap gets an answer fast

Accessibility

Everyone can use it: with a keyboard, a screen reader or weak eyesight.

Enough contrast, alt text, real headings and buttons.

Privacy

No tracking. Nothing loaded from other servers.

No phone number or home address in a public repo.

Today's platform

Current HTML and CSS instead of piles of JavaScript.

Less code, fewer bugs, faster pages.

Vibe coding or agentic coding.

Same agent, same model. The difference is how you lead it.

Vibe coding

  • "Build me a website."
  • No plan, no checks
  • Accept whatever comes back
  • Fine for a throwaway idea

Agentic coding

  • A plan first, then small steps
  • Rules the agent follows
  • One Role per chat
  • Read before you accept
  • Measure the result, don't trust it

How professionals build a website.

Then: a person for every step. Now: an agent, and you lead.

  1. 1

    Spec

    A business analyst wrote it down.

    1

    Spec Today: Analyst

    An agent interviews you and writes it.

  2. 2

    Design

    A designer drew every page.

    2

    Design Today: Designer

    An agent asks your taste; Stitch draws it.

  3. 3

    Tickets

    A project manager cut the work up.

    3

    Tickets Today: the Blocks

    One task per Block, in a fresh chat.

  4. 4

    Feature branch

    Each developer on their own copy.

    4

    Feature branch At home

    An agent codes each ticket on a branch.

  5. 5

    Build

    Developers wrote every line.

    5

    Build Today: Developer

    An agent writes it; you review it.

  6. 6

    Merge request

    A senior developer read every change.

    6

    Merge request At home

    You, or another agent, review it.

  7. 7

    CI pipeline

    Someone ran the tests by hand.

    7

    CI pipeline Today: GitHub Actions

    Robots test every push.

  8. 8

    QA

    A tester clicked through every page.

    8

    QA Today: QA

    An agent tests and shows you the proof.

  9. 9

    Legal

    A lawyer wrote the privacy page.

    9

    Legal Today: Lawyer

    An agent drafts it; you read it.

  10. 10

    Publish

    An ops engineer uploaded the files.

    10

    Publish Today: Ops

    Merge, and it's live in a minute.

Building blocks of agentic work.

Every agent tool has the same parts.

Model

The language model that reads and writes.

Today: Gemini Flash

Agent

A model in a loop: plan, act, check, repeat.

Today: Antigravity IDE

Tools

Read and write files, run commands.

Today: terminal, Chrome

MCP

A standard plug that adds tools to any agent.

Today: DevTools for QA

Rules

Instructions that are in every chat.

Today: AGENTS.md

Skills

Know-how, loaded only when needed.

Today: one per Role

Hooks

Scripts that run by themselves.

Not used today

Subagents

A side task, handed to a fresh agent.

Not needed today

Keep it thin. Models get better every few months, and too many rules can hold a good model back. Re-test your setup often, and delete what the model no longer needs.

Tokens: input and output.

A token is about ¾ of a word.

Input tokens

Everything it reads: your rules, the chat so far, files, tool results.

Sent again on every turn.

Output tokens

Everything it writes: answers and code.

One at a time: slower, and pricier per token.

So a long chat costs more on every turn: all of it is input again.

Context: enough, not everything.

What the agent sees decides what it builds.

Too little

The agent guesses. It invents content, skips your rules and builds the generic page.

Enough

The task, the rules, the files it needs. Nothing else.

Too much

Slow, costly, forgetful. Rules in the middle get lost, old mistakes come back, your quota runs out.

Keep it right

One Role, one fresh chat

A short chat stays sharp.

Files are the memory

Spec, content file and design brief carry what matters to the next chat.

Only what's needed

Skills load on demand. The smallest model first.

You keep learning. Your model doesn't.

Developers stay current by reading. A model stops at its training cutoff.

What the model read

Years of web code, most of it old: overlays built from div elements and JavaScript.

Old answers outnumber new ones.

Training cutoff

What it missed

Everything the web shipped since. And what shipped just before is still rare in what it read.

For example: a native dialog that opens, closes and handles the keyboard with no JavaScript.

So the agent writes yesterday's code, confidently. Unless it can read today's docs.

Modern Web Guidance: the agent's continuing education.

Current web knowledge from the Chrome team, written for agents.

What

162 short guides: dialogs, dark mode, layout, fonts, accessibility, performance. Open source, Apache-2.0.

Where

Already in your repo, under .agents/skills/. Nothing to download in the room.

When

The Developer reads the matching guide before it writes code. QA reads one before every fix.

Only what it needs. The agent sees one line about the skill, reads an index with one line per guide, then opens just the matching guide: about 15,000 tokens instead of 350,000.

Modern Web Guidance by the Chrome team: github.com/GoogleChrome/modern-web-guidance

Does the guide make a difference?

The same task, given to the same agent twice. From my rehearsal.

A "Contact me" button opens a popup. Esc or a click outside closes it.

Without the guide

<div class="overlay" hidden>…</div>
<script>
  openBtn.addEventListener(…);
  closeBtn.addEventListener(…);
  document.addEventListener(…);
  overlay.addEventListener(…);
</script>

Your code does the work: four listeners.

With Modern Web Guidance

<button commandfor="contact"
  command="show-modal">…</button>
<dialog id="contact" closedby="any">
  <button commandfor="contact"
    command="close">…</button>
</dialog>
<script>
  if (!('closedBy' in …)) {…}
</script>

The browser does the work. The script is a Safari fallback.

DevTools: measure, don't guess.

Chrome's built-in developer tools. Your agent can use them too.

Performance

Record a load: LCP, CLS and INP, live.

Today: QA's LCP and CLS

Device mode

Any phone size, slow 4G, a slower CPU.

Today: QA's mid-range phone

Screenshots

Full page, any width, light and dark.

Today: 8 screenshots for QA

Lighthouse

Accessibility and best practices, scored.

Today: its rules, in the Check

Console

Every error the page throws.

Today: the Check reports them

For agents

The same tools, as an MCP server.

Today: set up in your repo

The day, Block by Block.

One Role per Block. The whole room moves together.

0–20

Opening

The picture: Demo site, how agents work, Modern Web Guidance

20–35

Setup

Your own repo, tools installed, Antigravity IDE open

35–50

Analyst

Your content file and a short spec

50–65

Designer

Your style and your design brief

65–90

Developer

Your site on localhost

90–100

QA

A checked site

100–110

Lawyer

A privacy page, no private data

110–115

Ops

Your site live, link shared

115–120

Feedback

Five minutes, sent from the guide

What you need.

Join the Wi-Fi, open the guide on your laptop, check the list.

Wi-Fi

{{wifi.ssid}}

Password

{{wifi.password}}

Guide

{{guideShort}}

You need

  • A laptop with Google Chrome
  • A GitHub account: sign up now if you have none
  • A personal Google account, not a work or school one

Setup

Your repo and your tools, ready.

What we do · guide page 1

  1. Create your GitHub account
  2. Copy the Template repo
  3. Switch on GitHub Pages
  4. Create your Google account
  5. Install Antigravity IDE
  6. Run the Install script
  7. Open your repo in Antigravity IDE
  8. Pick the smallest Gemini Flash model
  9. Check that you are ready

Why we do it

  • Your own repo: the site and its code are yours, and GitHub Pages hosts it for free.
  • One Install script for every laptop, so the whole room starts with the same tools.
  • The smallest Gemini Flash: faster, and the weekly free quota lasts all day. The biggest model for everything is mistake 7.
15
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not ready yet? Raise your hand now, or pair up with your neighbour.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Analyst · Role 1 of 6

Your content file and a short spec.

What we do · guide page 2

  1. Start the Analyst
  2. Give it your content
  3. Answer its questions
  4. Read it back
  5. Add your photo (optional)

Why we do it

  • No plan is mistake 1: without a spec, the agent guesses.
  • The spec says who the site is for and what a visitor should do. Every later Role reads it.
  • You read it back and correct the guesses: you decide, the agent writes.
15
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not about to finish?Not done? Jump to the checkpoint: stop the agent, start a fresh chat and type Catch me up: the room just finished the Analyst block.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Designer

The AI look.

Without a brief, an agent builds the average of the web.

Vibe coding gives you this

Indigo, purple gradients, the Inter font, centred cards.

A brief gives you your look

  • Your style: one of five, or a mix of two
  • Your colour and your fonts
  • One detail that is yours
  • One signature move

"…every AI generated UI on earth also being indigo." Adam Wathan, creator of Tailwind CSS, August 2025

Designer

Same content, five styles.

Pick one, or mix two. Your answers make it yours.

  1. Ada Example's site in the Classic style on a phone: a serif name, an italic headline and a round photo on warm paper.

    Classic

    Serif headings, calm colours, a narrow column, hairlines.

  2. Ada Example's site in the Modern style on a phone: a small round photo, a clean sans-serif name and text, lots of white space.

    Modern

    A clean sans, one accent, lists not boxes, lots of space.

  3. Ada Example's site in the Bold style on a phone: a square framed photo and a huge condensed name in capitals.

    Bold

    A huge name, oversized type, colour blocks.

  4. Ada Example's site in the Playful style on a phone: a photo in a wobbly frame, a rounded name with an orange dot, cards with thick outlines.

    Playful

    Rounded, bright, stickers and badges.

  5. Ada Example's site in the Technical style on a phone: a square photo, a monospace name and a dot grid behind the page.

    Technical

    Monospace details, a dot grid, code-editor metadata.

Designer · Role 2 of 6

Your style, your design brief.

What we do · guide page 3

  1. Start a fresh chat
  2. Start the Designer
  3. Answer its questions
  4. Design it in Stitch
  5. Give it your design
  6. Read the brief back

Why we do it

  • A fresh chat: a long one drags old questions and files along, and the agent gets slower. That's mistake 2.
  • Your answers make a Stitch prompt that fits only you: no two sites alike, even in the same style.
  • The brief turns your design into rules the Developer follows: colours, fonts, contrast, one signature move.
15
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not about to finish?Not done? Jump to the checkpoint: stop the agent, start a fresh chat and type Catch me up: the room just finished the Designer block.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Developer · Role 3 of 6

Your site on localhost.

What we do · guide page 4

  1. Start the Developer
  2. Fonts: already in your repo
  3. Your signature move
  4. Let it build
  5. Look at your site

Why we do it

  • The agent reads Modern Web Guidance first, because its training is out of date: mistake 6.
  • One task, one chat, no extra files “for context”: more context makes it slower, not smarter. That's mistake 3.
  • The preview builds the finished pages and shows you the site itself, not the agent's word for it.
25
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not about to finish?Not done? Jump to the checkpoint: stop the agent, start a fresh chat and type Catch me up: the room just finished the Developer block.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

QA · Role 4 of 6

A checked site.

What we do · guide page 5

  1. Start QA
  2. QA looks first
  3. Then it audits
  4. Findings in plain words
  5. Run the Check yourself
  6. What an agent sees

Why we do it

  • “Done” needs evidence: screenshots and numbers, not a promise. Not verifying is mistake 5.
  • Phone and desktop, light and dark: what your visitors will see.
  • One fix at a time, each one shown, so nothing else breaks.
10
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Page broken or missing? Jump to the checkpoint: stop the agent, start a fresh chat and type Catch me up: the room just finished the QA block. Page works? Skip it.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Lawyer · Role 5 of 6

A privacy page, no private data.

What we do · guide page 6

  1. Start the Lawyer
  2. Private data first
  3. The privacy page
  4. Check and read it

Why we do it

  • Your site is public: a phone number or a home address does not belong on it.
  • A site in the EU needs a privacy page. A template for a portfolio without tracking covers it; not legal advice.
  • You read it before you accept.
10
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. No privacy page yet? Jump to the checkpoint: stop the agent, start a fresh chat and type Catch me up: the room just finished the Lawyer block.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Ops · Role 6 of 6

Your site live, link shared.

What we do · guide page 7

  1. Start Ops
  2. Read the file list back
  3. Say yes to publish
  4. Sign in if GitHub asks
  5. Wait until it is live
  6. Share your link

Why we do it

  • Read the file list before you say yes: a CV or a photo would be public, and Git keeps old versions. That's mistake 4.
  • Every push publishes: GitHub Actions puts your site live in about a minute.
  • Share the link: a site counts when someone sees it.
05
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not live yet? Keep your Ops chat going while the room gives feedback: no checkpoint can publish for you.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Feedback

Your feedback, sent from the guide.

What we do · guide page 8

  1. Open page 8 in the guide: Feedback
  2. Tap through the eleven questions
  3. Write the two text answers
  4. Press Send feedback

Why we do it

  • Your answers shape the next run of this workshop.
  • Anonymous: no name, no email.
  • The two text answers help the most. Be specific.
05
00

left in this Block

Need help? Ask your agent: Where am I?

Time's up. Not sent yet? The required questions are enough: answer them and press Send feedback.

Wi-Fi {{wifi.ssid}}·Password {{wifi.password}}·Guide {{guideShort}}

Seven mistakes to avoid.

  1. 1

    No plan. Analyst

    Write the spec before any code.

  2. 2

    Endless chat. Designer

    One Role per chat. Start fresh.

  3. 3

    Too much context or too many subagents. Developer

    One focused task per chat. No agent swarm.

  4. 4

    Accepting without reading. Ops

    Read every change back. Read git status before you push.

  5. 5

    Not verifying. QA

    Proof, not promises: the Check, screenshots, numbers.

  6. 6

    Outdated knowledge. Developer

    Give the agent current docs: Modern Web Guidance.

  7. 7

    The biggest model for everything. Setup

    Start with the smallest, fastest Gemini Flash.

Thank you.

Your site is live, and it's yours. Keep building.

Connect

linkedin.com/in/fabian-krumbholz