Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Seryvon

Deterministic web audit tool across 5 pillars — SEO · GEO · GSO · AEO · ASO.

Seryvon measures a site's visibility to traditional search engines and to generative engines, AI Overviews, answer engines and — uniquely — autonomous agents (the ASO pillar). Every score is computed, traceable and reproducible: two audits of the same site yield the same result.

Product identity: Seryvon is published by Powehi (powehi.eu).


The 5 pillars

Pillar What it measures
SEO Technical and editorial conformance to traditional search engines
GEO Likelihood of being cited by generative engines (ChatGPT, Perplexity, Gemini)
GSO Ability to appear in Google AI Overviews / AI Mode
AEO Ability to be selected as a direct answer
ASO Ability to be discovered and chosen by autonomous AI agents (differentiator)

A single weighted, renormalized global score aggregates the five pillars. Criteria that cannot be measured (e.g. a missing API key) are marked not_measured and excluded from the computation — never estimated.


Project status

✅ Open core complete — Observe + Diagnose stable (through Phase 10).

What is already delivered:

Phase What
0–1 Async crawler, robots/sitemaps, full SEO scorecard (26 criteria), PageSpeed Insights + OpenPageRank connectors
2 GSO, AEO, ASO (static) scorecards; on-page GEO signals; Wikidata; prioritized action plan
3 LLM citation tracking M4 (Perplexity, OpenAI, Anthropic, Gemini) — bring-your-own-key; cost estimator
4 C-P1 Measurement profile hash + coverage labels (SIC doc 04 §4+6)
4 C-P2/C-P3 Content-addressed artifacts and scorecard comparison
5–10 React UI/i18n, action-plan tracking, PDF export, GSC rank tracking, SERP/AIO, UX stabilization

Verification actuelle : 691 tests backend passant dans le profil Docker dédié, avec 100 % de couverture Python (5 163 statements, 0 ligne manquante). Le frontend compte 200 tests, avec typecheck propre et 100 % sur les lignes, branches et fonctions. The frontend uses React Router 7.18.3 and has no known production dependency vulnerability (npm audit --omit=dev).

Next: hardening of the local open core, release automation and connector maintenance.

seryvon run https://example.com      # full audit -> JSON/HTML/Markdown report
seryvon aso https://example.com      # ASO pillar only (agentic readiness)
seryvon citations https://example.com --dry-run   # LLM citation tracking (BYOK)
seryvon history example.com          # history of persisted audits

The full design documentation lives in docs/sic/ (Search Intelligence Core — the internal name for Seryvon's measurement kernel).


Quick start

cp .env.example .env          # adjust if needed
docker compose up --build     # postgres, redis, api, workers and frontend

The local stack binds to loopback only: frontend at http://localhost:3000, API at http://localhost:8000 (docs: /docs). PostgreSQL and Redis are also loopback-only. Migrations run automatically through the one-shot migrate service. Stop with docker compose down; add -v only when intentionally resetting local data.

Run the complete backend/PDF test suite in its dedicated Docker image:

docker compose --profile test build test
docker compose --profile test run --rm test

La suite d’intégration doit être exécutée dans ce profil : PostgreSQL utilise seryvon_test, Redis est séparé du runtime et chaque test est limité à 30 s pour rendre les blocages immédiatement visibles.

The test profile is never started by the normal runtime stack and therefore does not add development dependencies to the production API or worker images. Its image reuses the PDF runtime layer from base, so subsequent builds only install the development tools when source metadata changes.

Locally (without Docker)

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
seryvon run https://example.com

Development

ruff check .          # lint
ruff format --check . # formatting check
mypy src              # static typing
pytest                # backend tests
cd web && npm run test:coverage -- --run

Current verification: 691 backend tests pass in Docker, 200 frontend tests pass, and the frontend reports 100% statements, branches, functions and lines. The backend coverage command reports 100% globally (5,163 statements, 0 missed). Backend tests requiring a live database should be run with SERYVON_TEST_DATABASE_URL set; PDF tests additionally require WeasyPrint's native libraries. The production Docker image includes the PDF runtime, while development test dependencies stay outside that image.

Technical performance and limits

Measurements below are local reference values, not a performance SLA:

Check Result
Frontend production build ~1.5 s
Frontend test suite (200 tests) ~14 s
Backend test suite (691 tests) ~18–20 s
Full audit crawl limit 300 pages per audit
Sitemap discovery limit 5,000 URLs
Default crawler concurrency 5 (reduced to 1 with crawl-delay)
General request timeout 15 s
Playwright timeout 30 s

Crawler requests are bounded, robots-aware and SSRF-validated. PDF and other non-HTML resources are not sent to Playwright. External connector calls remain dependent on provider latency, quotas and credentials.


Architecture

A Python 3.12+ core (async httpx crawl, deterministic scoring, FastAPI API, Typer CLI) plus a TypeScript/React dashboard, backed by PostgreSQL + Redis (+ optional S3/MinIO for raw artifacts), fully containerized. Scoring follows a "rule registry" pattern: each criterion is a self-registering rule, so new ones can be added without reworking the engine.

The internal design follows the Search Intelligence Core (SIC) model:

OBSERVE → DIAGNOSE → ACT → PROVE

Observe and Diagnose define the current open-core scope. Design specifications: docs/sic/.

The multi-tenant SaaS is intentionally maintained outside this repository in the private seryvon-saas repository. Core remains local-first and single-tenant; SaaS-specific authentication, isolation, quotas and continuous operations must not be added here.


License

Seryvon (the core) is distributed under the GNU AGPL-3.0-or-later license. Copyright © 2026 Powehi — https://powehi.eu

You may freely use, modify and redistribute Seryvon. If you run a modified version as a network service, the AGPL requires you to make the corresponding source code available to your users.

Reused third-party components (GEO Optimizer, OpenSEO) remain under the MIT License; see NOTICE for attributions.

Open core. This repository holds the free core (the 5 audit pillars). The operated offering (managed hosting, continuous monitoring, collaboration) is a separate proprietary product, published by Powehi.


Built with components adapted from GEO Optimizer (© Juan Camilo Auriti) and OpenSEO (© Ben Senescu), used under the MIT License.

Metadata

Release files for seryvon 1.0.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seryvon 1.0.0rc1
File Size Uploaded
seryvon-1.0.0rc1.tar.gz 705.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seryvon 1.0.0rc1
File Interpreter ABI Platform
seryvon-1.0.0rc1-py3-none-any.whl Python 3 none any Details

Total release size: 982.1 kB

Release files / seryvon-1.0.0rc1.tar.gz

Download URL seryvon-1.0.0rc1.tar.gz
Size 705.9 kB
Tags Source
SHA-256 checksum
How to use checksums
abc9b73265bf021eb0b1322177047fc05559751de2b8b122a11c8f4f968c211c
BLAKE2b-256 checksum
How to use checksums
975192131d1789b6c02d2691b9514252f4d052d3d2c264459ed114b4ca98eb91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / seryvon-1.0.0rc1-py3-none-any.whl

Download URL seryvon-1.0.0rc1-py3-none-any.whl
Size 276.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
638726a3d0bff5bf8c02946fbd435330806edfe9f42a609f2c92516e04f5870f
BLAKE2b-256 checksum
How to use checksums
a131b2cc7e1614aadcb6b9158c2b7638b82e63d48d0d90553e61c9b447565760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0rc1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page