Skip to content

Website: home page copy cleanup (redundancy, buried lead, undefined competitor names, jargon, inconsistent alpha/stat framing) #188

Description

@abdushakoor12

Summary

The home page copy (website/src/index.njk) needs an editing pass. Several spots are redundant, bury the lead, use unexplained jargon/competitor names, or are internally inconsistent. Concrete, source-grounded items below.

Items

  1. Hero restates itself. Headline (index.njk:35-38) is "The open-source / Python language server." and the subheadline's first sentence (:41) is "Basilisk is a complete, open-source Python language server." — the same claim twice. Tighten so the subhead adds information instead of repeating.

  2. Dangling em-dash construction in the subheadline (index.njk:44-45): "...In VS Code, Cursor, Zed, and Neovim — wherever you write Python. Strict by default. Built in Rust." Reads as fragments. "Strict by default" is the core differentiator and is buried at the very end; consider leading with it.

  3. British/American spelling inconsistency. index.njk:228 uses "modernise" while the rest of the page is American ("optimize", "color"). Use "modernize".

  4. Stat heading undercuts itself / format mismatch. index.njk:261 heading reads "144 of 146 tests passing. Target: 100%." while the adjacent stat block (:255) and comparison table (:375) show "98.6%". Pick one representation; consider leading with the 98.6% the rest of the section already uses.

  5. Unexplained competitor names on first mention. "Pyrefly" (benchmark target, index.njk:10 and elsewhere) and "ty" (comparison table) appear with no one-line gloss or link. A first-time reader can't tell what they are. Identify/link on first use.

  6. Jargon that assumes IDE-internal vocabulary:

    • index.njk:225 "Lightbulb-ready. Every diagnostic." — "lightbulb" is VS Code quick-fix UI jargon.
    • index.njk:191 "one-click enrichment fixes add the missing types for you" — "enrichment fixes" isn't standard terminology. Plain phrasing like "quick fixes add the missing annotations for you" reads clearer.
  7. Benchmark subhead is overloaded (index.njk:11): one sentence packs make-bench provenance, the Pyright comparison, the Pyrefly target, and the cold-vs-warm distinction. The cold/warm point ("warm edits re-check only the file you touched and its importers") is important and gets lost — split into separate sentences. "strictly less work" → "less work".

  8. Alpha messaging is inconsistent. A casual kicker "// basilisk — alpha" (index.njk:33) vs. a longer defensive "Basilisk is in alpha…" in the CTA section (index.njk:623). Land on one consistent, confident framing of maturity.

  9. "Profiling" is claimed but never shown. Listed in the meta description and CTA (index.njk:623-625) but no feature section explains it. Either give it a line or drop it from the headline claims until it has supporting copy.

Scope

Copy-only — website/src/index.njk (and _includes/benchmark-section.njk for the shared benchmark strings). No functional change. Keep positioning accurate (strict-by-default Python language server / type checker in Rust; Python 3.12; 100% PEP-conformance target).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions