Skip to content

Add a comparison with nmap, Angry IP Scanner and Advanced IP Scanner to the landing page - #472

Open
fstubner wants to merge 29 commits into
mainfrom
feat/landing-compare
Open

fstubner wants to merge 29 commits into
mainfrom
feat/landing-compare

Conversation

@fstubner

@fstubner fstubner commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Adds a "How NetsCLI compares" section to the landing page, between Features and Install: 11 rows, four columns, with a one-paragraph note under it. It replaces the 25-row docs page in #470.

Where it comes from

  • Compare.astro is copied from product-site-template, where nvx's comparison section was generalised, so a later template sync sees the same file on both sides.
  • One deliberate difference: the note drops the template's max-width:62ch, which squeezed a two-sentence note into a narrow column under a full-width table. nvx made the same change. It can go back to the template on the next sync.
  • types.ts, sections.ts and index.astro get the same wiring the template has.

The rows

  • They're ordered by the question a reader asks: where it runs, how you use it, what it finds, what you get out.
  • One row NetsCLI loses on purpose: UDP, OS and version detection, which is nmap's reason to exist.
  • Remote actions (RDP, shutdown, Wake-on-LAN) are covered in the note instead of a row, because they're remote management, not scanning.

How the cells were checked

  • Each cell was checked on 2026-09-24 against the project's own documentation and source: nmap 7.991, Angry IP Scanner 3.10.0, Advanced IP Scanner 2.5.4594.1.
  • NetsCLI's column was checked against this repo's code.
  • The reason for every cell that isn't obvious is a comment in compare.ts.

Checked locally

  • astro check reports 0 errors, and the build succeeds.
  • axe finds 0 violations on / in both themes.
  • The contrast sweep and Lighthouse pass on all 14 routes.
  • At 1366px the table fits with no sideways scroll; at narrower widths it scrolls inside its own container, as nvx's does.

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Site preview: https://pr-472.netscli-site-preview.pages.dev

Built from f107f3b with NETSCLI_PREVIEW=1 — noindex, and analytics disabled so it does not report into netscli.com's numbers.

Production is unaffected: netscli.com is served from GitHub Pages via pages.yml, which is manual-only.

@fstubner

fstubner commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner Author

0312c5d splits UDP, service versions and OS detection into separate rows in the table. Two of those cells describe features from #474 (versions) and #475 (UDP), so this should merge after both. Otherwise the live site would describe features that aren't in any build yet; the site deploys on merge, while the features only ship with 0.3.4.

@fstubner

Copy link
Copy Markdown
Owner Author

0312c5d was followed by a93fc24. The netscli cells for Service versions are now Common services and for OS detection Hints, reflecting #474 and #476. Merge order still applies: after #474, #475 and #476, and after 0.3.4 is out.

…to the landing page

Compare.astro comes from product-site-template, where nvx's comparison
section was generalised, so the next template sync sees the same file on
both sides. One change: the note under the table drops the template's
max-width:62ch, which wrapped a two-sentence note into a narrow column under
a full-width table -- the same fix nvx made. It can go back to the template
on the next sync.

The rows are ordered by the question a reader is asking (where it runs, how
you use it, what it finds, what you get out) and every cell was checked on
2026-09-24 against each project's own docs and source; the sources and the
reasoning behind each non-obvious cell are in compare.ts. Two rows are ones
NetsCLI loses: UDP/OS/version detection, and the note says what Advanced IP
Scanner is for. Remote actions went into the note rather than a row, since
they are remote management, not scanning.

This replaces the 25-row docs page proposed in #470.
The tint (nvx's version, from the template) read as a highlighted run of
cells rather than as the product the table is about. The column now gets a
1px accent border on all four sides; border-collapse gives the left cell a
tie, so its right edge survives next to the neighbouring hairline.
… ask

The earlier rows were mostly things only netscli has (MCP, JSON, DNS records,
mDNS), which read as narrow and cherry-picked. Nine rows now follow the
questions in the order a reader asks them -- does it run on my OS, how do I
use it, does it find and name my devices, what's open, can I go deeper,
what else is built in, can I get results out, what does it cost -- with a
short phrase per tool, so nmap's depth and Advanced IP Scanner's remote
actions are credited in their own rows and the note under the table goes.

Also: no lead under the heading (it only listed what was compared and which
versions; those stay in compare.ts's comment), netscli's cells in the body
colour with only the header green, and answer cells wrap, since short
phrases unwrapped pushed the table past a 1024px window.
The phrase-per-cell version was accurate but too much to take in. Ten rows
of ticks, with a word or two only where a tick would mislead, and three rows
that go to the other tools (UDP/OS/version detection for nmap, remote
actions for Advanced IP Scanner, open source for three of four). Rows every
tool ticks are left out.
The dashes competed with the ticks. They now sit at 40% opacity and are
aria-hidden, with a visually hidden 'Not offered' in the same cell, so the
information doesn't depend on a glyph that is now deliberately faint.
With UDP scanning (#475) and announced service versions (#474), netscli no
longer loses the whole 'UDP, OS and version detection' row, only OS
detection. Three rows now: UDP port scan (netscli and nmap), service
versions (netscli from banners, nmap by probing, Angry IP Scanner for web
servers via its Server-header fetcher), OS detection (nmap only).
With #474 asking Redis/Valkey and Memcached and reading MySQL's greeting,
'From banners' undersold it: 'Common services'. With #476's inspect OS
hint, the OS detection cell becomes 'Hints' rather than a dash; nmap's
packet fingerprinting still gets the tick.
@fstubner
fstubner force-pushed the feat/landing-compare branch from a93fc24 to 42f7148 Compare September 26, 2026 11:01

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant