diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
new file mode 100644
index 00000000..af2a9e74
--- /dev/null
+++ b/.github/workflows/e2e.yml
@@ -0,0 +1,30 @@
+name: E2E · Ask Agent
+
+on:
+ pull_request:
+ push:
+ branches: [main, develop]
+
+jobs:
+ e2e:
+ name: Playwright · Ask Agent
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'npm'
+ - name: Install dependencies
+ run: npm ci
+ - name: Install Playwright browser
+ run: npx playwright install --with-deps chromium
+ - name: Run Ask Agent E2E suite
+ run: npm run test:e2e
+ - name: Upload report on failure
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: playwright-report
+ path: playwright-report/
+ retention-days: 7
diff --git a/.gitignore b/.gitignore
index 1d701fb2..aeac4a27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,9 @@ public/sqlite/
# Unbuilt api-client planning docs (kept local until that feature is picked up)
docs/superpowers/plans/2026-08-09-api-client.md
docs/superpowers/specs/2026-08-09-api-client-design.md
+
+# Playwright
+/test-results/
+/playwright-report/
+/blob-report/
+/playwright/.cache/
diff --git a/README.md b/README.md
index ccbef6df..30649d4a 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,18 @@
[](https://goodwebtools.com)
[](#contributing)
-
+
![]() |
+ ![]() |
+ ![]() |
+
| Desktop | +Mobile | +Mobile category menu | +