feat: migrate npm registry from Verdaccio to Gitea Packages
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 1s
Monorepo Pipeline / 🧹 Lint (push) Failing after 35s
Monorepo Pipeline / 🧪 Test (push) Failing after 35s
Monorepo Pipeline / 🏗️ Build (push) Failing after 12s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 1s
Monorepo Pipeline / 🧹 Lint (push) Failing after 35s
Monorepo Pipeline / 🧪 Test (push) Failing after 35s
Monorepo Pipeline / 🏗️ Build (push) Failing after 12s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Image Processor (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
This commit is contained in:
85
packages/page-audit/README.md
Normal file
85
packages/page-audit/README.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# @mintel/page-audit
|
||||
|
||||
AI-powered website IST-analysis — combines DataForSEO On-Page crawl data with Gemini Pro to generate a comprehensive German-language audit report.
|
||||
|
||||
## Setup
|
||||
|
||||
Add the following to your `.env`:
|
||||
|
||||
```env
|
||||
# DataForSEO — get credentials at https://dataforseo.com
|
||||
# Format: your login email + API password from the dashboard
|
||||
DATA_FOR_SEO_LOGIN=yourlogin@example.com
|
||||
DATA_FOR_SEO_PASSWORD=your_api_password
|
||||
|
||||
# Or as a single key (login:password)
|
||||
DATA_FOR_SEO_API_KEY=yourlogin@example.com:your_api_password
|
||||
|
||||
# OpenRouter (for AI report)
|
||||
OPENROUTER_API_KEY=sk-or-...
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### CLI
|
||||
|
||||
```bash
|
||||
# Full audit with AI report
|
||||
npx tsx src/cli.ts run https://www.e-tib.com
|
||||
|
||||
# Faster: skip AI report (data only)
|
||||
npx tsx src/cli.ts run https://www.e-tib.com --light
|
||||
|
||||
# Custom max pages and output dir
|
||||
npx tsx src/cli.ts run https://www.e-tib.com --max-pages 100 --output ./out/audits
|
||||
```
|
||||
|
||||
### Programmatic
|
||||
|
||||
```typescript
|
||||
import { PageAuditor } from '@mintel/page-audit';
|
||||
|
||||
const auditor = new PageAuditor({
|
||||
dataForSeoLogin: process.env.DATA_FOR_SEO_LOGIN!,
|
||||
dataForSeoPassword: process.env.DATA_FOR_SEO_PASSWORD!,
|
||||
openrouterKey: process.env.OPENROUTER_API_KEY,
|
||||
outputDir: './out/page-audits',
|
||||
});
|
||||
|
||||
const result = await auditor.audit('https://www.e-tib.com', {
|
||||
maxPages: 50,
|
||||
onProgress: (msg) => console.log(msg),
|
||||
});
|
||||
|
||||
console.log(result.report?.executiveSummary);
|
||||
console.log(result.report?.seoScore); // 0-100
|
||||
```
|
||||
|
||||
## What it checks
|
||||
|
||||
### DataForSEO On-Page (deterministic)
|
||||
- HTTP status codes, broken pages (4xx/5xx)
|
||||
- Title tags, meta descriptions, H1 presence
|
||||
- Image alt attributes
|
||||
- Internal/external link counts
|
||||
- Core Web Vitals: LCP, CLS, TTFB
|
||||
- Viewport meta, canonical tags
|
||||
- Indexability
|
||||
|
||||
### AI Report (Gemini Pro)
|
||||
- Executive summary of current state
|
||||
- Strengths (what's working)
|
||||
- Critical issues (urgent fixes)
|
||||
- Quick wins (high impact, low effort)
|
||||
- Strategic recommendations
|
||||
- Scores: SEO (0-100), UX (0-100), Performance (0-100)
|
||||
- Overall health: `critical` | `needs-work` | `good` | `excellent`
|
||||
|
||||
## Output
|
||||
|
||||
Results are saved as JSON to `out/page-audits/{domain}_{timestamp}.json`.
|
||||
|
||||
## Integration in Estimation Engine
|
||||
|
||||
`@mintel/page-audit` can be used as an optional pre-step in the `@mintel/estimation-engine` pipeline
|
||||
to enrich the site analysis with real SEO metrics from DataForSEO before the AI estimation runs.
|
||||
Reference in New Issue
Block a user