UGC Reactions from Real Creators
실제 크리에이터 영상은 11달러, 이미지 8달러. 맞춤 제작은 영상당 25달러부터, 최소 250달러, 상업 라이선스 포함
웹사이트를 크롤링해 기술·페이지·성능·접근성·보안 SEO 진단과 우선순위 점수를 제공합니다
Crawl any website and get a complete technical, on-page, performance, accessibility, and security SEO audit with a prioritized health score.
마케팅Python · TypeScriptGitHub @yatindvn온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Full-site SEO auditor CLI: crawler + technical/on-page/content/performance/accessibility/security audits with CSV/JSON/Excel/PDF/HTML reports
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A modern, high-performance Technical SEO Auditor built with Next.js, Express, WebSocket, and Python BFS Crawling Engine organized as a clean monorepo.
apps/frontend: Next.js 14 Dashboard UI application.apps/backend: Express REST API + WebSocket Server wrapping the seo_auditor Python engine.packages/shared: Shared TypeScript types, schemas, DTO validations, and constants.docs/: Comprehensive architecture, API, WebSocket, and Environment variable documentation.scripts/: Monorepo development and build scripts.In the root directory, you can run:
npm run devConcurrently starts both frontend and backend development servers.
npm run dev:frontendStarts only the Next.js frontend application.
npm run dev:backendStarts only the Express + WebSocket backend server.
npm run buildBuilds all packages and applications in proper dependency order (packages/shared -> apps/backend -> apps/frontend).
npm run lintRuns linter checks across all packages.
npm run testRuns automated unit and integration tests.
Every finished audit is stored in a central database (SQLite by default,
Postgres via DATABASE_URL) under a project per domain, so runs can be listed
and compared. See REST API
and Environment.
cd apps/backend && python -m app.db.import_sessions
(safe to re-run).audit_schedule to daily/weekly,
then either set SCHEDULER_ENABLED=true or have a cron service call
curl -X POST -H "Authorization: Bearer $CRON_SECRET" https://<backend>/api/cron/run.deploy/oracle). Vercel serverless functions time out long before a crawl
finishes, so they must never run audits.docker compose --profile postgres up -d and set
DATABASE_URL=postgresql+psycopg://seo:<POSTGRES_PASSWORD>@postgres/seo.cd apps/backend
python -m pytest -q # all tests pass
# two audits of one site
python -m app.cli https://books.toscrape.com/ --max-pages 20 --max-depth 2 --skip-external-links --json | grep -o '"persisted": [a-z]*'
python -m app.cli https://books.toscrape.com/ --max-pages 20 --max-depth 2 --skip-external-links --json | grep -o '"audit_id": [0-9]*'
uvicorn app.main:app --port 5055 &
curl -s localhost:5055/api/projects # books.toscrape.com, audit_count 2
curl -s localhost:5055/api/projects/1/audits # two audits, newest first
curl -s localhost:5055/api/audits/2/diff # diff against audit 1
Track keywords per project, daily, with competitor positions and alerts. See REST API and Environment.
POST /api/projects/{id}/keywords,
POST /api/projects/{id}/competitors.POST /api/projects/{id}/rank-checks/run returns a
dry-run preview. It's made-up data, never stored.SERP_PROVIDER=dataforseo, DATAFORSEO_LOGIN,
DATAFORSEO_PASSWORD, then SERP_DRY_RUN=false. SERP_DAILY_CAP (default 50)
is a hard daily limit.GOOGLE_CSE_API_KEY + GOOGLE_CSE_CX, capped by
GOOGLE_CSE_DAILY_QUOTA. Top 10 only; no device targeting.SLACK_WEBHOOK_URL and/or the SMTP_* + ALERT_EMAIL_* settings.SCHEDULER_ENABLED=true, or a cron calling /api/cron/run.
Scheduled checks run only with a live provider: dry-run data never becomes history.cd apps/backend
python -m pytest tests/test_rank_schedule.py -v # daily checks write history; a drop alerts once
uvicorn app.main:app --port 5055 &
curl -s -X POST -H 'Content-Type: application/json' -d '{"domain":"example.com"}' localhost:5055/api/projects
curl -s -X POST -H 'Content-Type: application/json' -d '{"keywords":[{"phrase":"espresso"}]}' localhost:5055/api/projects/1/keywords
curl -s -X POST localhost:5055/api/projects/1/rank-checks/run # dry-run preview
curl -s -o /dev/null -w '%{http_code}\n' -X POST "localhost:5055/api/projects/1/rank-checks/run?dry_run=false" # 409 until a live provider is set
POST /api/keywords/explore {"seed": "..."}. You get
ideas (Autocomplete + People Also Ask), volume, difficulty, a traffic
estimate, and optional clusters. CSV via GET /api/keywords/explore.csv?seed=....POST /api/projects/{id}/content-gap returns keywords your
competitors rank for (top 20) that you don't (top 100), ranked by
opportunity. CSV via GET /api/projects/{id}/content-gap.csv.SERP_PROVIDER=dataforseo, credentials, SERP_DRY_RUN=false).
DATAFORSEO_LABS_DAILY_CAP (default 20) is a hard daily limit, and cached
answers are free.여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗