Changelog
Public-facing highlights. Full commit history: github.com/Tanvrit/app-auditor.
- 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)
- 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 ▾
- 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
- 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
- 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
- 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
- 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