diff --git a/.github/workflows/app-discovery-qa.yml b/.github/workflows/app-discovery-qa.yml new file mode 100644 index 00000000..de838efa --- /dev/null +++ b/.github/workflows/app-discovery-qa.yml @@ -0,0 +1,42 @@ +name: Public App Discovery and SEO QA +on: + pull_request: + branches: [main] + paths: + - apps.html + - apps_data.json + - guides/** + - sitemap.xml + - scripts/build_catalog.py + - site_counts.json + - tests/catalog-growth.test.mjs + - .github/workflows/app-discovery-qa.yml + push: + branches: [main] + paths: + - apps.html + - apps_data.json + - guides/** + - sitemap.xml + - scripts/build_catalog.py + - site_counts.json + - tests/catalog-growth.test.mjs + - .github/workflows/app-discovery-qa.yml +permissions: + contents: read +jobs: + discovery-quality: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Confirm catalog generator remains idempotent + run: python3 scripts/build_catalog.py --check + - name: Verify search, referral links and guide listings + run: node --test tests/catalog-growth.test.mjs diff --git a/apps.html b/apps.html index f95e1b77..16c56d2e 100644 --- a/apps.html +++ b/apps.html @@ -27,6 +27,18 @@ .store-badge { display:inline-block; margin-top:.4rem; font-size:.78rem; font-weight:600; color:var(--accent); } footer { text-align:center; color:var(--sub); font-size:.85rem; padding:2rem; } footer a { color:var(--accent); } + /* Browse purpose or search without hiding cards from non-JS crawlers. */ + .finder{margin:0 0 1.5rem;padding:1.1rem;background:var(--card);border:1px solid var(--line);border-radius:14px} + .finder label{display:block;font-weight:700;margin-bottom:.5rem} + .finder input{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.8rem .9rem} + .finder input:focus-visible,.finder button:focus-visible,.finder a:focus-visible{outline:2px solid var(--accent);outline-offset:3px} + .finder-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 .6rem} + .finder-filters button{cursor:pointer;font:inherit;font-size:.85rem;border:1px solid var(--line);border-radius:999px;padding:.4rem .8rem;background:var(--bg);color:var(--ink)} + .finder-filters button[aria-pressed="true"]{background:var(--accent);color:white;border-color:var(--accent)} + .finder-meta{color:var(--sub);font-size:.82rem;margin:.4rem 0} + .finder-guides{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem} + .finder-guides a{color:var(--accent);font-weight:600} + [hidden]{display:none !important} @@ -39,6 +51,13 @@ + +
92 free apps on Google Play — productivity, education, health, games and more.