Skip to content

Repository files navigation

Tengu

Web quality auditor -- Performance, SEO, Accessibility, Best Practices

Tengu : XWA submodule focused on web quality auditing -- under active development


Overview

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)

Quick Start

Web Version (Docker Compose)

docker compose up -d --build
  • Web UI: http://localhost:8080

Standalone (No Docker)

cargo run --release

Web UI at http://localhost:8080.

Environment Variables

VariableDefaultDescription
PORT8080HTTP listen port
RUST_LOGtengu=info,tower_http=infoLogging verbosity

Related Documents

DocumentDescription
docs/manual.mdDeployment and usage manual
docs/ui-architecture.mdFrontend architecture overview
docs/rust-libraries.mdRust backend dependency inventory
docs/uses/audit.mdAudit usage guide
ROADMAP.mdDevelopment phases and milestones
CHANGELOG.mdRelease history and version log

Project Structure

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

API Endpoints

MethodPathDescription
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

Launch Script

./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

X

X Web & X Github Profile & Xscriptor web

About

Web quality auditor — Core Web Vitals, WCAG, structured data

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages