Skip to content

Commit 137a916

Browse files
ep04 + ep05: VSCode breach + Google vs the open web
Two episodes scaffolded and shipped end-to-end: ep04 (Fri 2026-05-22 18:00 UTC, video CcBjlKit9IY): VSCode/GitHub breach. 3,800 internal repos exfiltrated via trojanised Nx Console extension. Companion blog explains why the editor permission model is the deeper problem, what does and does not transfer to browser extensions (MV3 sandbox helps; CRX signing and native messaging do not), and what Browy does about it. ep05 (Thu 2026-05-28 18:00 UTC, video cxqv5HIIFVo): Google I/O 2026 keynote. AI Overviews became the default Search experience. Companion blog frames the deprecation of the 20-year crawl-for-traffic deal: the web is the raw material now, the middleman is trying to swallow it. Practical recommendations: outbound-link search engines, RSS, personal allowlists, source reading when stakes are high. Positions Browy as a tool that gives users back agency on the page in front of them. Per-post OG images generated. Both EN + zh-CN versions. blog.mdx + index.mdx Writing CardGrids updated in both locales (rotating ai-slop and the older two further down). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 1981c4e commit 137a916

11 files changed

Lines changed: 859 additions & 4 deletions

public/og/google-vs-the-web.png

48.2 KB
Loading
49.2 KB
Loading

scripts/build-og-images.mjs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ const posts = [
4747
accent: '#fbbf24',
4848
mascot: 'sweat.png',
4949
},
50+
{
51+
slug: 'vscode-extension-breach',
52+
title: 'GitHub got pwned through\none VSCode extension.',
53+
subtitle: '3,800 internal repos exfiltrated.',
54+
accent: '#f87171',
55+
mascot: 'shocked.png',
56+
},
57+
{
58+
slug: 'google-vs-the-web',
59+
title: 'Google quietly declared\nwar on the open web.',
60+
subtitle: 'AI Overviews is the default answer now.',
61+
accent: '#a78bfa',
62+
mascot: 'thinking.png',
63+
},
5064
];
5165

5266
function wrapText(text, maxCharsPerLine = 22) {

src/content/docs/blog.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@ companion 30-second video on YouTube.
2121

2222
## Recent
2323

24+
- [**Google quietly declared war on the open web.**](/blog/google-vs-the-web/), May 2026.
25+
At Google I/O 2026, AI Overviews became the default Search
26+
experience. The deal that built the web for two decades has been
27+
quietly cancelled. The web is the raw material now. The middleman
28+
is trying to swallow it.
29+
30+
- [**GitHub got pwned through one VSCode extension. 3,800 repos.**](/blog/vscode-extension-breach/), May 2026.
31+
A trojanised Nx Console extension came through the official VS
32+
Code Marketplace and exfiltrated 3,800 internal repos. The deeper
33+
problem isn't this one extension. It's that the editor has no
34+
sandbox model.
35+
2436
- [**Every $20 AI subscription costs about $100 to serve. The bill is coming.**](/blog/ai-subscription-bomb/), May 2026.
2537
AI labs are running an industry-wide loss-leader. Anthropic users
2638
burn $8 in compute per $1 of subscription revenue. Microsoft was
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
---
2+
title: "Google quietly declared war on the open web."
3+
description: "At Google I/O 2026 this week, AI Overviews became the default Search experience for English users. Search increasingly answers from a Google-hosted synthesis instead of routing you to the source. The web is the raw material now. The middleman is trying to swallow it."
4+
slug: blog/google-vs-the-web
5+
template: doc
6+
tableOfContents: false
7+
sidebar:
8+
hidden: true
9+
head:
10+
- tag: meta
11+
attrs:
12+
property: og:type
13+
content: article
14+
- tag: meta
15+
attrs:
16+
property: article:published_time
17+
content: "2026-05-28T00:00:00Z"
18+
- tag: meta
19+
attrs:
20+
property: article:author
21+
content: "Ritabrata Maiti"
22+
- tag: meta
23+
attrs:
24+
property: og:image
25+
content: "https://browyhq.github.io/og/google-vs-the-web.png"
26+
- tag: meta
27+
attrs:
28+
name: twitter:image
29+
content: "https://browyhq.github.io/og/google-vs-the-web.png"
30+
- tag: meta
31+
attrs:
32+
name: keywords
33+
content: "google, search, ai overviews, ai search, open web, seo, web standards, browser agency, agentic ai, google io 2026"
34+
- tag: script
35+
attrs:
36+
type: application/ld+json
37+
content: |
38+
{
39+
"@context": "https://schema.org",
40+
"@type": "BlogPosting",
41+
"headline": "Google quietly declared war on the open web.",
42+
"description": "At Google I/O 2026, AI Overviews became the default Search experience. The deal that built the web for two decades has been quietly cancelled.",
43+
"datePublished": "2026-05-28T00:00:00Z",
44+
"dateModified": "2026-05-28T00:00:00Z",
45+
"author": {
46+
"@type": "Person",
47+
"name": "Ritabrata Maiti",
48+
"url": "https://github.com/ritabratamaiti"
49+
},
50+
"publisher": {
51+
"@type": "Organization",
52+
"name": "Browy",
53+
"url": "https://browyhq.github.io/"
54+
},
55+
"mainEntityOfPage": "https://browyhq.github.io/blog/google-vs-the-web/",
56+
"image": "https://browyhq.github.io/og/google-vs-the-web.png",
57+
"inLanguage": "en",
58+
"keywords": ["google", "search", "ai overviews", "open web", "browser agency"]
59+
}
60+
---
61+
62+
import { YouTube } from 'astro-embed';
63+
import { LinkCard, CardGrid } from '@astrojs/starlight/components';
64+
65+
<p style="opacity:0.7;font-size:0.9em;margin-top:-0.5em">By <a href="https://github.com/ritabratamaiti">Ritabrata Maiti</a> · <time datetime="2026-05-28">May 28, 2026</time> · 8 min read</p>
66+
67+
<YouTube id="cxqv5HIIFVo" title="Google quietly declared war on the open web." />
68+
69+
At Google I/O this week, the Search team made AI Overviews the default
70+
answer surface for English users. The
71+
[official keynote post](https://blog.google/products-and-platforms/products/search/search-io-2026/)
72+
buries the change under a lot of "agentic" and "personal intelligence"
73+
language, but the practical effect is small and definite: Search now
74+
answers from a Google-hosted synthesis. The blue links are a fallback,
75+
not the product.
76+
77+
This was the inevitable next step of a series of changes that started
78+
with featured snippets and accelerated with AI Overviews. The
79+
[10 percent inaccuracy rate](https://www.techrepublic.com/article/google-ai-overviews-inaccurate-answers-analysis/)
80+
on AI Overviews is now everyone's problem, because Overviews are
81+
everyone's default answer.
82+
83+
The
84+
[piece on tante.cc](https://tante.cc/2026/05/20/on-google-declaring-war-on-the-web/)
85+
called this "declaring war on the web," and the wording is exactly
86+
right. What follows is what I think the change actually is, the deal
87+
that broke, and what to do about it.
88+
89+
## The deal that built the web
90+
91+
Sites let Google crawl them. Google sent traffic back. Both sides
92+
won. The crawler got fresh content; the site got readers, and the
93+
readers had a clear path back to the source when they wanted to dig
94+
deeper.
95+
96+
This contract held for about twenty years. It built the open web as
97+
a publishing surface, the indie blog as a thing that paid rent, the
98+
SEO industry, the long-tail of niche reference sites, and most of
99+
what we now call "documentation on the internet." It was an
100+
asymmetric trade, but both sides understood it. You give Google the
101+
catalog. Google sends you the foot traffic.
102+
103+
AI Overviews quietly cancelled the trade.
104+
105+
The crawler still runs. The catalog still gets ingested. The output
106+
on the user's screen is now a Google-synthesised answer, with the
107+
sources demoted to a row of tiny chip-shaped citations the median
108+
user does not click. The reader gets an answer, often correct,
109+
sometimes wrong, and never has to leave the search results page.
110+
111+
## What this is, named plainly
112+
113+
The framing in the original piece is sharp and worth quoting at
114+
length:
115+
116+
> Your work, your writing or art do matter a bit still: As (unpaid)
117+
> raw material for their synthetic text extruders. You get to work
118+
> for free so Google can have tight control on the flow of
119+
> information and make sure that the responses people get are in
120+
> line with what they need them to be.
121+
122+
This is the right frame. The web is not the product anymore. The
123+
web is the raw material. The product is the synthesised view on top
124+
of it, hosted on Google's infrastructure, branded with Google's UI,
125+
and accountable to Google's editorial choices.
126+
127+
A useful analogy: the relationship between a wire service and a
128+
newspaper. The wire produces the underlying reporting; the newspaper
129+
picks, edits, and presents. The reader sees the newspaper. For a
130+
long time the web was the newspaper. Google was the index, the table
131+
of contents that pointed at the newspaper. AI Overviews flipped that.
132+
Google is the newspaper now. Your site is the wire.
133+
134+
The thing that makes this disorienting is that nobody negotiated the
135+
new arrangement. The publishers did not agree to be wire
136+
contributors. The wire contributors did not get paid. The newspaper
137+
masthead never asked.
138+
139+
## Why this is bigger than search-traffic math
140+
141+
The temptation is to treat this as an SEO problem. Traffic numbers
142+
will drop, sites will adapt, the market will sort it out. That misses
143+
the scale.
144+
145+
Google holds the largest single browser deployment on the planet,
146+
the largest single mobile OS, the largest single web video platform,
147+
the dominant share of web standards committee participation, the
148+
dominant share of ad-tech, and now the dominant search-answer
149+
surface. A single company sets the abstraction layer at every point
150+
between the publisher and the reader. When that company decides the
151+
abstraction layer should not include outbound links, there is no
152+
counter-party large enough to disagree at scale.
153+
154+
This is the part the SEO frame misses. The market does not have a
155+
way to sort out a question of this scale because the market does not
156+
have a participant of this scale. The closest analogue is regulatory.
157+
The EU has begun acting. The DOJ case is grinding along. Neither is
158+
fast enough to matter at the speed Google can ship.
159+
160+
The web is going to survive this. The independent publisher, the
161+
solo blog, the niche reference site, the corner of the internet
162+
written by one human for fifteen others, will get squeezed in the
163+
process. Some will respond by exiting. Some will paywall. Some will
164+
move to Substack or to mailing lists, which is just running their own
165+
distribution stack. The shape of the open web will change a lot,
166+
faster than the SEO market expects.
167+
168+
## What you can do as a user
169+
170+
The advice older than the problem still applies. Run your own tools.
171+
Pick your own sources. Don't outsource your reading to a system whose
172+
incentives are to keep you on its surface.
173+
174+
Concretely:
175+
176+
- **Use a search engine that links out.** Kagi, Marginalia, Mojeek,
177+
Searx, DuckDuckGo, Brave Search. None are perfect, all are linking
178+
out by default. The web still indexes; the index is just not the
179+
default surface anymore.
180+
- **Keep an RSS reader.** Feedbin, Inoreader, NetNewsWire on the Mac,
181+
Readwise Reader if you want web archiving. Subscribing directly to
182+
the publishers you trust routes you around the answer-surface
183+
entirely.
184+
- **Build a personal allowlist of go-to sources.** The handful of
185+
sites you check first when you want a real answer. For me that's
186+
about thirty sites; the search engine is where I go when none of
187+
them have it. This is roughly how everyone used the web in 2005.
188+
- **Read source material when the stakes are high.** AI Overviews are
189+
wrong 10 percent of the time. That rate is fine for "what is the
190+
recipe for pancakes." It is not fine for "what does this medication
191+
interact with."
192+
193+
The pattern is the same in each case: keep the human in the loop
194+
when the cost of wrong is high, and let the machine condense when the
195+
cost of wrong is low.
196+
197+
## What this has to do with what I build
198+
199+
I work on [Browy](https://browy.dev), an open-source AI agent that
200+
lives in a Chromium extension. It drives the real browser tab you
201+
have open. You ask it a question; it inspects the page, follows
202+
links, reads other tabs, and writes you an answer with the sources
203+
visible inline. It does not synthesise from a hosted index. It
204+
operates on the web you would see if you were doing the work yourself.
205+
206+
That is not a coincidence. It is the response to exactly the
207+
disintermediation move described above. If the answer-surface is
208+
hosted by a counter-party whose incentives are not yours, the answer
209+
you want is the one you can produce yourself, against the sources
210+
you trust, on the page that loaded in front of you.
211+
212+
The web is not ending. The middleman is trying to swallow it. Run
213+
your own tools.
214+
215+
---
216+
217+
<CardGrid>
218+
<LinkCard title="← All posts" href="/blog/" description="Index of every post on the Browy blog." />
219+
<LinkCard title="GitHub got pwned through one VSCode extension" href="/blog/vscode-extension-breach/" description="The threat model isn't a clever attacker. It's a checkbox you didn't read." />
220+
</CardGrid>

0 commit comments

Comments
 (0)