AI content + SEO + AEO platform

Credits & Attribution

novaverb is proprietary software, but it stands on the work of a great open-source community. This document lists every third-party library, framework, technique, or pattern that novaverb depends on or learned from, with a thank-you to the authors and links to original licenses.

If we have missed or mislabeled an attribution, please open an issue or email hi@novaverb.com. We treat license compliance as a hard requirement, not a courtesy.


Laravel side (PHP 8.5)

novaverb's web application is built on Laravel and runs production traffic via the following dependencies. Each library is loaded via composer; their full LICENSE files ship in vendor/<vendor>/<package>/LICENSE.

| Package | License | Repository | |---|---|---| | Laravel Framework | MIT | https://github.com/laravel/framework | | Laravel Socialite | MIT | https://github.com/laravel/socialite | | GuzzleHttp Guzzle | MIT | https://github.com/guzzle/guzzle | | Intervention Image | MIT | https://github.com/Intervention/image | | Spatie Laravel-Permission | MIT | https://github.com/spatie/laravel-permission | | Stripe PHP SDK | MIT | https://github.com/stripe/stripe-php | | Web-Auth WebAuthn Lib | MIT | https://github.com/web-auth/webauthn-lib | | ezyang HTMLPurifier | LGPL-2.1 | https://github.com/ezyang/htmlpurifier | | Symfony Components (via Laravel) | MIT | https://github.com/symfony/symfony |

Special thanks to Taylor Otwell and the Laravel team — novaverb would have shipped a year later without Laravel's auth, queue, and migration primitives.


NovaCrawl Python microservice

The crawl-only Python service (/opt/novacrawl) is novaverb's first dependency-heavy non-Laravel surface. Every dependency is pinned in pyproject.toml; their license texts are reproduced in /opt/novacrawl/THIRD_PARTY_LICENSES/ on the production box.

| Package | License | Repository | Why we use it | |---|---|---|---| | httpx (+ http2) | BSD-3-Clause | https://github.com/encode/httpx | Async HTTP/2 fetcher with conn pool | | playwright | Apache-2.0 | https://github.com/microsoft/playwright-python | JS-render escalation tier | | selectolax | MIT | https://github.com/rushter/selectolax | Lexbor HTML parser, ~25× faster than BeautifulSoup | | xxhash | BSD-2-Clause | https://github.com/ifduyue/python-xxhash | xxh3_64 URL-hash dedup keys | | aiomysql | MIT | https://github.com/aio-libs/aiomysql | Async MariaDB writer pool | | fastapi | MIT | https://github.com/fastapi/fastapi | HMAC ingress + scan control plane | | uvicorn | BSD-3-Clause | https://github.com/encode/uvicorn | ASGI server | | structlog | MIT / Apache-2.0 | https://github.com/hynek/structlog | Structured logging | | prometheus-client | Apache-2.0 | https://github.com/prometheus/client_python | Metrics export | | uvloop | MIT / Apache-2.0 | https://github.com/MagicStack/uvloop | Event-loop perf | | tree-sitter | MIT | https://github.com/tree-sitter/py-tree-sitter | JS endpoint AST mining fallback | | hatchling | MIT | https://github.com/pypa/hatch | Build backend |


Concept attribution (techniques we learned from, but did not copy code)

These patterns were studied for architectural inspiration. The implementations in novaverb were written from scratch but adopted concepts described in the upstream projects' documentation or papers. We name them explicitly because we believe credit for ideas matters, even when no code is copied.

| Project | License | What we adopted | Implementation here | |---|---|---|---| | LibreCrawl | Apache-2.0 | Write-behind batch buffer with flush_interval pattern for MariaDB upserts | /opt/novacrawl/novacrawl/storage/mariadb_writer.py (comment cites this) | | Crawlee (Apify) | Apache-2.0 | Adaptive renderer predictor concept (HTTP-first, escalate to headless when SPA detected) | /opt/novacrawl/novacrawl/runner.py (roadmap — adaptive router milestone W3) | | Colly | Apache-2.0 | Per-host parallelism via in-memory semaphore + politeness delay | /opt/novacrawl/novacrawl/frontier/host_limiter.py | | Photon | GPL-3.0 | Three-set URL dedup pattern (seen / queued / processed) | /opt/novacrawl/novacrawl/frontier/dedup.py |

GPL-3.0 attribution note: Photon's three-set pattern is a well-known crawler-design idiom present in many open-source crawlers; the implementation here was written independently from public documentation and does not include Photon source code. We name Photon because we believe credit for the pattern itself matters.


Frontend & build chain

| Package | License | Repository | |---|---|---| | Vite | MIT | https://github.com/vitejs/vite | | Tailwind concepts (we don't use Tailwind directly, but our design-token methodology is informed by Tailwind's atomic-utility pattern) | MIT | https://github.com/tailwindlabs/tailwindcss | | Material Symbols (Outlined) | Apache-2.0 | https://github.com/google/material-design-icons | Icon set used in admin + app UI | | Material Design 3 tokens | Apache-2.0 | https://github.com/material-components/material-web | Design-token methodology in resources/css/design/tokens.css | | Inter font | SIL Open Font License 1.1 | https://github.com/rsms/inter | Primary UI typeface |


Standards & specifications

novaverb's NovaBrain catalog implements detection rules drawn directly from these standards bodies. Citations on each brain reference the specific section / RFC / Recommendation; full primary-source quotes are reproduced in the brain catalog itself.

| Body | What we cite | |---|---| | W3C | HTML Living Standard, ARIA, CSS, Permissions Policy, Web Content Accessibility Guidelines (WCAG 2.2) | | IETF (RFCs) | RFC 9110/9111 (HTTP semantics + caching), RFC 9309 (Robots Exclusion Protocol), RFC 5646 (language tags) | | Google Search Central | Documented ranking factors, structured-data restrictions, indexing guidance | | schema.org | Type definitions referenced in JSON-LD validation rules | | sitemaps.org | XML sitemap protocol |

Each citation in the brain catalog declares its citation tier (A: international standard / B: de facto canonical / C: industry convention / D: community spec) so the customer knows the confidence behind each detection rule.


Inline source attributions

Specific code regions that adopted a concept from an external source carry an inline comment with the upstream license + repository link. The full list, generated by grep at release time:

  • /opt/novacrawl/novacrawl/storage/mariadb_writer.py — write-behind batch buffer (LibreCrawl, Apache-2.0, idea only)
  • /opt/novacrawl/novacrawl/frontier/host_limiter.py — per-host semaphore (Colly, Apache-2.0)
  • /opt/novacrawl/novacrawl/frontier/dedup.py — three-set URL dedup (Photon, GPL-3.0)

When a future engineer ports an additional technique, the standing rule is: add the inline comment AND update this file in the same PR.


Why we keep this file

Open-source attribution is not a courtesy. It is the contract every author of every package above asked for in exchange for letting novaverb use their work. We keep this file in the repository root + serve it at /credits on every novaverb deployment so it cannot be lost in a .gitignore mishap, never goes out of date silently, and is verifiable by anyone who clones the project.

If you spot a missing attribution, an outdated license, a renamed upstream project, or anything else off: please open an issue or email hi@novaverb.com. We will fix it in the next release.

— Novaverb Engineering

Source of truth: CREDITS.md in the novaverb repository root. Spot something missing? Email hi@novaverb.com.