The intro recommended jev-ultrafast, which was removed from the list, and missed Scrapling, which took its slot.
Co-Authored-By: Claude <noreply@anthropic.com>
The README split LLM Inference and Serving into Local LLM Inference and LLM Serving, but the intro still grouped MLX LM with vLLM and SGLang and said nothing about Ollama or llama-cpp-python.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro's lead and guide recommended dogpile.cache, which the list no longer carries, and never covered django-redis, which replaced it.
Co-Authored-By: Claude <noreply@anthropic.com>
Leaked secrets are a supply chain risk that dependency audits don't cover, so Supply Chain Security splits into Dependency Audits and Secret Scanning.
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: jev-ultrafast (no PyPI download signal; not published on PyPI): its README calls it an MVP and it needs a hosted API key, so the challenger slot goes to scrapling in the next commit. This overrides the Challenger Exception recorded 2026-10-02.
Co-Authored-By: Claude <noreply@anthropic.com>
Local runners (ollama, llama-cpp-python, mlx-lm) and production serving engines (vllm, sglang) answer different needs, and one use case could not hold both at the cap. The old page redirects to LLM Serving.
Co-Authored-By: Claude <noreply@anthropic.com>
The hero-rise fade-in started .hero-copy, which holds the LCP <h1>, at opacity 0, and Chrome ignores opacity-0 paints for LCP, delaying it by about 455 ms.
Co-Authored-By: Claude <noreply@anthropic.com>
`.results-note` carried an inner `max-width: 28rem`, which breaks the rule that `.section-shell` is the only width cap.
Co-Authored-By: Claude <noreply@anthropic.com>
Ruff 0.16 enables 413 default rules (up from 59), so make lint failed with 11 findings, and it treated website/ modules as third-party.
Co-Authored-By: Claude <noreply@anthropic.com>
Redirect stubs for renamed category URLs carried a robots noindex meta, so Search Console filed them under "Excluded by 'noindex' tag" instead of treating the instant meta refresh as a permanent redirect, and the old URLs' ranking was not passed to the new pages.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory nearly repeated its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory shared its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
Subcategory titles such as "JWT for Authentication" lacked searchable words, and their boilerplate descriptions never named the listed projects and said "1 projects".
Co-Authored-By: Claude <noreply@anthropic.com>
Every sitemap URL got the build date as lastmod, so all pages claimed a change on each daily deploy, and the sponsorship page used file mtime, which on CI's fresh checkout is also build time.
Co-Authored-By: Claude <noreply@anthropic.com>
The catch-all subcategory shared its section's name, so its page ("Code Analysis for Code Analysis") split the "python code analysis" query with the section page in Search Console.
Co-Authored-By: Claude <noreply@anthropic.com>
Group pages showed only tables, so visitors arriving from broad searches like "python ml library" got none of the which-one-to-pick guidance that each section's intro already gives.
Co-Authored-By: Claude <noreply@anthropic.com>
The NLP intro left gensim out entirely, so readers wanting topic models or word embeddings got no pick even though the README lists it.
Co-Authored-By: Claude <noreply@anthropic.com>
Its second sentence paired aiosmtplib and yagmail with their jobs in the same compressed two-pick frame the Admin Panels lead uses.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the audit and never mentioned django-mongodb-backend, which moved into ORM from Database Drivers.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added aiosmtplib and django-anymail.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added flask-restx and flask-smorest.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added prophet, statsforecast, and sktime.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and still recommended Keras as a main pick after its demotion to Second Tier.
Co-Authored-By: Claude <noreply@anthropic.com>