-
-
The extension verifies scope, policy, SHA-256 integrity, scheduled compatibility, and a fresh live preflight before install.
-
Before Patch the Web: twelve useful providers, but no search, combined access filters, or comparison.
-
The constrained community patch adds a private service navigator and reduces combined needs to one match.
-
A keyboard-accessible comparison table built only from declared data-* attributes.
Inspiration
People are forced to use websites they did not choose and cannot change for example government forms, university portals, healthcare directories, marketplaces, and legacy work tools. Those sites do not need to be visibly broken to fail someone. A directory can work exactly as designed and still omit the filter an access need requires. The usual solution is to wait for the owner but patch the web gives users another answer.
What it does
Patch the Web is a public feature layer for the web: a manifest v3 browser extension, a constrained transformation language, a Codex patch-authoring skill and plugin, and a machine-readable community registry.
One person describes a missing capability to GPT-5.6 through Codex. The Patch the Web authoring workflow inspects the DOM and screenshots, turns the complaint into observable acceptance criteria, chooses safe built-in operations, validates every selector and permission, and runs behavior tests. The published patch is declarative data scoped to exact hosts and paths. It cant contain arbitrary javascript, html, callbacks, fetches, cookies, templates, or page-text extraction.
Everyone downstream gets the repair without AI, an account, or an API key. The extension discovers a matching registry patch, validates the DSL and scope again, verifies its SHA-256 receipt, checks the current DOM, requests only the declared Chrome domains, and installs it locally.
Our flagship MetroCare demo starts as a credible twelve-provider healthcare directory with useful data but no search, no combined access filters, and no comparison. An eleven-operation community patch adds private search, type/access/language/availability filters, local preferences, keyboard shortcuts, ARIA announcements, and a keyboard-accessible provider comparison table. Wheelchair access + Urdu + accepting new patients reduces twelve services to one understandable choice. Filtering and comparison emit zero network requests.
CivicApply is a second independently verified patch. Its nineteen constrained operations repair a fixed-width application form, preserve unfinished non-sensitive progress locally, add specific accessible validation and keyboard navigation, move human help into the workflow, and remove an obstructive survey.
How we built it
- TypeScript safe-transformation DSL with nine bounded capabilities
- Manifest V3 extension with automatic registry discovery, manual import, exact-domain permissions, SHA-256 verification, and live selector preflight
- Trusted collection filter and comparison builders that read only declared
data-*attributes - Repository-discovered
.agents/skills/patch-the-web-authorworkflow plus an installable Codex plugin - Vite public product, two realistic demo targets, and machine-readable registry artifacts
- Playwright, Vitest, JSDOM, and axe accessibility tests
- GitHub Actions clean-install CI and a six-hour Compatibility Sentinel
- Vercel production deployment with no login or test account required
GPT-5.6 and Codex were used at the high-judgment engineering boundary: converting the product idea into architecture, authoring and threat-modeling the DSL, iterating from browser evidence, building the extension and registry, writing the two patches, creating the reusable authoring skill, and producing the tests and release evidence. Human decisions set the product direction: a public repair layer rather than a theme editor, deterministic distribution without model calls, and a deliberately constrained DSL instead of a userscript marketplace.
Challenges
The hardest problem was making repairs powerful enough to add real missing product features without turning the registry into arbitrary-code distribution. collectionFilter and collectionCompare therefore accept no HTML, JavaScript, callbacks, templates, or URLs. Trusted runtime code creates native controls from one exact collection and explicitly declared data attributes, with bounded item, field, and selection counts.
Website drift was the second hard problem. A valid patch can become unsafe when the original site changes. The Compatibility Sentinel opens every published target in Chromium every six hours, binds the live structural fingerprint to the exact patch SHA, and quarantines drifted or unreachable entries before the extension recommends them.
Accessibility testing also exposed a subtle regression: entrance-animation opacity reduced otherwise acceptable contrast before sections were scrolled into view. Strict axe scans caught it. We fixed the source color system and made the scrollable comparison region labeled and keyboard-focusable instead of suppressing the audit.
Accomplishments
- A complete author once, install many community repair loop
- 11/11 MetroCare operations and 10/10 publication assertions healthy
- 19/19 CivicApply operations and 10/10 publication assertions healthy
- 44 unit, policy, registry, compatibility, preflight, runtime, and privacy tests passing
- 20 desktop/mobile browser journeys passing, including six strict WCAG A/AA scans
- 6 packaged Manifest V3 integration tests passing across install, production, removal, and the domain switch
- 70 checks in the full release gate
- Eight additional post-deploy axe scans across four production surfaces at mobile and desktop widths with zero automated violations
- A six-hour live monitor with transient retries, retained receipts, and automatic quarantine/recovery promotion
- A public MIT-licensed repository, stable no-login demo, extension archive, and Codex plugin archive
What we learned
The safest repair is the smallest constrained operation that makes an acceptance criterion observable. Selector health is not merely test output but it is a product feature that tells a community when the original site changed. AI belongs at the ambiguous authoring boundary, while distribution should be deterministic, reviewable, private, and cheap for everyone downstream.
What's next
Publisher signing, moderation, community review, reputation and rollback controls, more repair primitives such as task-focused reading modes and guided multi-step workflows, and real-world pilots with civic, education, and accessibility communities.
Test it now
Open the live MetroCare directory and choose Preview Patch the Web instantly. No build, login, credential, API key, or extension is required. For the full distribution path, the README includes a prebuilt Chrome extension, exact installation steps, supported platforms, and integrity hashes.
Built With
- accessibility
- actions
- axe
- browser
- chrome
- core
- css3
- dsl
- extensions
- github
- html5
- javascript
- json
- openai
- playwright
- typescript
- vercel
- vite
- vitest
- wcag
- webextensions
Log in or sign up for Devpost to join the conversation.