Tanvrit Auditor

Changelog

Public-facing highlights. Full commit history: github.com/Tanvrit/app-auditor.

  1. 2026-04-21feature

    Live portal preview with click-to-highlight

    • See the page being audited, live — matches what PageSpeed Insights / WebPageTest / Sitebulb show
    • Web portal: sandboxed iframe, assets routed through our /proxy so Cross-Origin-Resource-Policy doesn't block real-world sites (Next.js, Cloudflare, Vercel defaults)
    • Click any finding with a DOM location → the offending element pulses red in the preview
    • Selectors populated for ~15 element-anchored checks (mixed content, render-blocking JS, SRI, alt text, button/link name, form labels, autocomplete, tabindex, image formats, lazy loading, videos without captions, …)
    • Native desktop / Android / iOS: real browser engine (KCEF / WebView / WKWebView) with scroll-into-view on the highlighted node
    • Preview size toggle on results (Hide / Normal / Tall)
  2. 2026-04-21enhancement

    Device profile + parallel crawl + mobile layout

    • Home screen picks Desktop vs Mobile — swaps User-Agent so sites that serve a distinct mobile variant audit correctly
    • /proxy forwards the audit User-Agent (spoof-protected) so mobile mode hits the mobile variant end-to-end
    • 5 mobile-only checks: strict viewport meta, format-detection, apple-mobile-web-app-capable, viewport-fit=cover, tap-target density
    • Crawler goes parallel — 4 concurrent fetches with the same 2-req/sec-per-origin politeness cap, roughly 3-4× faster on multi-page sites
    • Mobile browser layout — top nav collapses to a Menu ▾ dropdown, score card stacks vertically, severity filter cards flow 2×2, export buttons collapse into a single Export ▾
  3. 2026-04-21refactor

    In-house only · dropped Google PSI · bumped SDKs

    • Removed /api/lighthouse endpoint and LighthouseFetcher — no more third-party audit APIs
    • No LIGHTHOUSE_API_KEY secret to manage, no quotas, no external service dependency
    • Zero inline com.tanvrit.auditor.portal.* FQN references left in common Kotlin (0 of 211)
    • Ktor 3.4.1 → 3.4.2, kotlinx-serialization 1.10.0 → 1.11.0, Koin 4.2.0 → 4.2.1
    • Softer scoring formula with category floor of 15 so real sites don't zero out
  4. 2026-04-21enhancement

    PWA install, recent runs, side tools, audit-us CTA

    • Web portal installable as a PWA (manifest.webmanifest, theme-color)
    • Recent runs on the home screen — re-run any with one click
    • Score-transparency modal: see weights + deduction formula
    • "Audit us" deep link on the landing pre-fills our own URL
    • Copy-to-clipboard on remediation code blocks
    • Sort findings (severity / category / A-Z), expand-all toggle
    • Markdown + CSV export alongside JSON / HTML / PDF
    • Manual accessibility review checklist — the ~43% axe-core misses
  5. 2026-04-21fix

    Accuracy overhaul — scores now match Lighthouse ballpark

    • Fixed case-insensitive selector bug that false-positived every meta check (title, viewport, description, og:*)
    • Removed duplicate findings (title counted in both SEO and Accessibility, alt in Accessibility and Content)
    • Rebalanced severity deductions: CRITICAL −15 then −4, WARNING −4 then −2, INFO capped at −12
    • Well-built sites (Lighthouse 90+) now score in the 85-95 range instead of 5
  6. 2026-04-20design

    Light-mode redesign

    • Stripe/Linear-inspired light palette — emerald primary, amber accent, neutral surfaces
    • Rewrote ScoreGauge to place label below ring (no more text collision at small sizes)
    • FindingCard gets a coloured severity stripe, proper hierarchy, copy-button on remediation
    • Home screen brand bar + segmented Single-page / Crawl toggle
  7. 2026-04-20launch

    v0.1 — initial deploy

    • All 4 targets compile (web WASM, desktop JVM, Android, iOS)
    • On-device audit engine: 70+ checks across 11 categories
    • CORS proxy via Cloudflare Pages Function for third-party URL fetching
    • GitHub Actions workflow auto-deploys on push to main
    • Live at auditor.tanvrit.com