QuickBuild / LaunchCheck v1
Paste a URL, get a pre-launch report in seconds. Built for indie devs shipping fast and for AI agents that need a machine-readable site check. No signup, no API key.
Free check: 20 per hour per IP. Results cached 10 minutes.
GET /launchcheck?url=…GET /launchcheck/full?url=…Free (JSON):
curl -s "https://quickbuild.quynguyenbac.workers.dev/launchcheck?url=https://example.com" | jq '.summary, .checks[] | {id, status, message}'
Free (HTML report): add &format=html or open it in a browser: example.com report
Paid full report: an unpaid call returns 402 Payment Required with the x402 v2 challenge (PAYMENT-REQUIRED header, same JSON in the body):
curl -si "https://quickbuild.quynguyenbac.workers.dev/launchcheck/full?url=https://example.com" | head -20
# alias: https://quickbuild.quynguyenbac.workers.dev/launchcheck?url=https://example.com&tier=full
Pay with any x402 client, e.g. @x402/fetch:
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
import { ExactEvmScheme } from '@x402/evm';
import { privateKeyToAccount } from 'viem/accounts';
const pay = wrapFetchWithPaymentFromConfig(fetch, { schemes: [{ network: 'eip155:8453', client: new ExactEvmScheme(privateKeyToAccount(process.env.EVM_PRIVATE_KEY)) }] });
const r = await pay('https://quickbuild.quynguyenbac.workers.dev/launchcheck/full?url=https://your-site.com');
const report = await r.json(); // report.fixes[] sorted P1 → P3, report.screenshots.desktop.dataUrl …
MCP: tool launchcheck_full on the remote MCP server https://quickbuild.quynguyenbac.workers.dev/mcp (x402 over MCP). Free quick check: free_site_check.
Discovery: /openapi.json · /.well-known/x402 · /llms.txt
{
"tool": "launchcheck/1.0.x", "tier": "free" | "full", "url": "...", "finalUrl": "...", "status": 200,
"summary": { "pass": 4, "warn": 1, "fail": 0, "total": 5, "score": 90, "issues": { "P1": 0, "P2": 1, "P3": 2 } },
"checks": [ { "id": "status|https|title_description|social|robots_sitemap|load_time|image_alt|headings|broken_links|mobile",
"label": "...", "status": "pass|warn|fail", "message": "...", ...details } ],
"issues": [ ... ] // free: problems found
"fixes": [ { "rank": 1, "priority": "P1", "check": "...", "problem": "...", "fix": "...", "impact": "..." } ], // full
"screenshots": { "status": "ok|unavailable", "desktop": { "dataUrl": "data:image/jpeg;base64,..." }, "mobile": {...} } // full
}
http(s) hostnames on ports 80/443; IP literals, internal names and hosts resolving to private/reserved IPs are refused (every redirect hop re-checked).screenshots.status: "unavailable").Contact: quickbuild@mail.grokbot.com · Payments to Base 0x751a4c3841bE287544C371B4EE09Bd3366AeA7cf