Skip to content

Quick start

MEODP checks the HTTP availability of websites and friend links. It runs in Node.js or CI and produces reports you can inspect offline or publish as static files.

Install

Use Node.js 22.19 or newer. No Playwright installation is needed for the meodp/check library, check, or sitemap commands.

bash
pnpm add meodp

Check a friend list

Create links.yml (JSON arrays also work):

yaml
- name: Example
  url: https://example.com/
bash
pnpm exec meodp check links.yml --output reports/links

Open reports/links/report.html. The same directory contains report.json and report.md.

Friends-style objects can contain avatar, email, or other fields: only url and name are used. Input URLs are validated before checking, normalized, and deduplicated. Duplicate fragments identify the same page; query strings remain distinct.

Use the library

ts
import { checkLinks, formatReport, writeReports } from 'meodp/check'

const report = await checkLinks([
  { name: 'Example', url: 'https://example.com/' },
], { concurrency: 5, retries: 1 })

console.log(formatReport(report))
await writeReports(report, 'reports/links')

checkLinks() returns data without writing files. Use sitemap checks to discover subpages, or history to compare separate runs.

Choose the operation

OperationMakes page requests?Purpose
checkYesCheck an explicit JSON/YAML URL list
sitemapYesRead sitemap documents, then check their pages
reportNoExport an interactive viewer from saved data
scanYes, in a browserRun the experimental legacy scanner

Running meodp without arguments shows help. meodp report never starts a fresh scan.

The HTTP checker does not execute JavaScript, verify page content, or check embedded images/scripts. A 200 response can still be a challenge or parked-domain page. See result interpretation.