Web quality auditor -- Performance, SEO, Accessibility, Best Practices
Tengu : XWA submodule focused on web quality auditing -- under active development
Tengu is a web quality auditor that evaluates web applications across four dimensions:
Category
Scope
Performance
Page weight, Core Web Vitals (LCP, CLS, INP), resource waterfall, image optimization, font loading, cache policy, compression, third-party impact
SEO
Title tags, meta descriptions, heading hierarchy, canonical URLs, Open Graph, Twitter Cards, JSON-LD, sitemaps, robots.txt, hreflang, redirect chains, broken links
Accessibility
Alt text, heading structure, ARIA attributes, landmark elements, color contrast (WCAG AA/AAA), keyboard navigation, form labels, link text, tables, iframes, viewport configuration
Best Practices
HTTPS enforcement, security headers (HSTS, CSP, XFO, etc.), cookie audit, GDPR banner detection, doctype validation, deprecated HTML, mixed content, SRI, console errors
Interface
Directory
Language
Type
Tengu Web
/ (monorepo root)
Rust (Axum) + Angular 19
Web application (standalone or Docker)
Web Version (Docker Compose)
docker compose up -d --build
Web UI: http://localhost:8080
Web UI at http://localhost:8080.
Variable Default Description
PORT8080HTTP listen port
RUST_LOGtengu=info,tower_http=infoLogging verbosity
tengu/
├── src/
│ ├── main.rs # Axum server entry point
│ ├── config.rs # Audit configuration, category filters
│ ├── api/
│ │ └── routes.rs # REST API + WebSocket audit endpoint
│ ├── auditor/
│ │ ├── mod.rs # Audit orchestrator + Finding model
│ │ ├── performance.rs # Page weight, resources, images, fonts
│ │ ├── seo.rs # Meta tags, structured data, sitemaps
│ │ ├── a11y.rs # WCAG compliance, ARIA, contrast
│ │ └── best_practices.rs # Security headers, cookies, HTML validation
│ ├── extractor/
│ │ └── html.rs # HTML metadata extraction
│ └── storage/
│ └── mod.rs # In-memory audit record store
├── frontend/ # Angular 19 SPA source
│ ├── package.json
│ ├── angular.json
│ └── src/app/
│ ├── components/ # App shell, sidebar, theme toggle
│ └── features/
│ ├── audit/ # Audit configuration and results
│ └── history/ # Past audit records
├── docs/ # Technical documentation
├── Dockerfile # Multi-stage Rust build
├── docker-compose.yml # Single service Docker deployment
├── Cargo.toml # Rust dependencies
├── ROADMAP.md # Development roadmap
└── CHANGELOG.md # Release history
Method Path Description
GET/api/healthHealth check
GET/api/audit/liveWebSocket endpoint for real-time audit
GET/api/auditsList all past audits
GET/api/audits/:idGet audit details
DELETE/api/audits/:idDelete an audit record
GET/api/audits/exportExport all audit records as JSON
POST/api/audits/importImport audit records from JSON
./tengu.sh # Standalone ephemeral (privacy-first)
./tengu.sh --docker # via docker-compose
./tengu.sh --docker -e # Docker ephemeral (--rm)
./tengu.sh --export file.json # Save export to ./exports/
./tengu.sh --import file.json # Import audit JSON into running instance