thehardwarestore.ai

where AI agents shop for the right tools

$ show lissy93/web-check

[account ↗] [repo ↗] APPLICATION ★ 35043 2879 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

This is a full-stack web application for performing open-source intelligence (OSINT) analysis on any website. The system runs 40+ checks encompassing DNS, SSL/TLS, HTTP security headers, mail configuration (SPF/DKIM/DMARC), social media presence, trackers, blocklists, threat feeds, carbon footprint, tech stack, and more. The frontend is built with Astro and React, featuring a reactive results view with a masonry grid, advisory panel, and progress bar. The backend is a Node.js Express server (also serverless-friendly) with individual API handlers per check, wrapped in a common middleware layer for error handling, rate limiting, and skip logic. The application is designed for self-hosting and supports deployment to Vercel, Netlify, Docker, Render, and Fly.io. It relies on many external sources (DNS, WHOIS, SSL Labs, HIBP, Google Safe Browsing, Shodan, etc.) and uses Puppeteer/Chromium for headless browser tasks. The codebase demonstrates a clean modular architecture, reusable UI components, and a novel analysis rule system that transforms raw data into structured findings with severity levels.

RATING9.5/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS40
VELOCITY1.00
OPEN ISSUES1
CLOSED ISSUES152
LAST COMMIT1 week ago
@astrojs/check (npm) ^0.9.10
@astrojs/node (npm) ^11.1.5
@astrojs/react (npm) ^6.0.5
@emotion/react (npm) ^11.14.0
@emotion/styled (npm) ^11.14.1
@fortawesome/fontawesome-svg-core (npm) ^7.3.1
@fortawesome/free-brands-svg-icons (npm) ^7.3.1
@fortawesome/free-regular-svg-icons (npm) ^7.3.1
@fortawesome/free-solid-svg-icons (npm) ^7.3.1
@fortawesome/svelte-fontawesome (npm) ^0.2.4
@ghostery/adblocker (npm) 2.17.3
@ghostery/trackerdb (npm) ^1.0.951
@sparticuz/chromium (npm) ^148.0.0
@types/react (npm) ^19.3.0
@types/react-dom (npm) ^19.3.0
astro (npm) ^7.3.2
cheerio (npm) ^1.2.0
chromium (npm) ^3.0.3
cookie (npm) ^2.0.1
cors (npm) ^2.8.6
dotenv (npm) ^17.4.2
express (npm) ^5.2.1
express-rate-limit (npm) ^8.6.1
framer-motion (npm) ^12.43.0
prop-types (npm) ^15.8.1
psl (npm) ^1.15.0
puppeteer (npm) ^24.43.1
puppeteer-core (npm) ^24.43.1
react (npm) ^19.3.0
react-dom (npm) ^19.3.0
react-router (npm) ^8.3.1
react-simple-maps (npm) ^3.0.0
react-toastify (npm) ^11.1.0
recharts (npm) ^3.10.1
svelte (npm) ^5.57.0
typescript (npm) ^6.0.3
wappalyzer (npm) ^6.10.66
whoiser (npm) ^2.0.0-beta.10
xml2js (npm) ^0.6.2
@astrojs/netlify (npm) ^8.2.5
@astrojs/sitemap (npm) ^3.7.4
@astrojs/svelte (npm) ^9.0.1
@astrojs/ts-plugin (npm) ^1.10.11
@astrojs/vercel (npm) ^11.0.10
@typescript-eslint/parser (npm) ^8.65.0
concurrently (npm) ^9.2.4
eslint (npm) ^10.8.0
eslint-plugin-astro (npm) ^1.7.0
nodemon (npm) ^3.1.14
prettier (npm) ^3.9.6
prettier-plugin-astro (npm) ^0.14.1
sass (npm) ^1.104.0
Files by Type (count)
TypeScript
92
TSX
69
Other (.png)
54
JavaScript
53
Other (.astro)
37
Other (.svg)
15
YAML
9
Other (.ttf)
6
Other (.woff2)
6
JSON
5
Markdown
4
SCSS
4
Files by Type (size)
Other (.png)
18MB
Other (.ttf)
523KB
Lock File
415KB
JSON
233KB
Other (.woff2)
204KB
YAML
188KB
TSX
175KB
TypeScript
148KB
JavaScript
137KB
Other (.astro)
83KB
Other (.svg)
33KB
Markdown
26KB

The LLM identified 4 files worth highlighting for reuse:

A pure function that takes raw mail configuration data (MX, SPF, DMARC, DKIM, MTA-STS, DANE) and produces structured findings with severity (pass/warning/issue). It demonstrates excellent separation of concerns, defensive parsing, and a reusable pattern for turning external data into actionable audit results. Could be extracted as a standalone library for email security auditing.

file: src/client/analysis/rules/mail-config.ts ↗ | tags: #pure-function #data-transformation #audit-rule

A configurable checker that determines whether a given check should be skipped based on environment variables (disabled checks, blocked hosts, private IPs, instance-level disable). It is self-contained (no internal imports) and implements a clean decision tree. Can be reused in any Express or serverless API that needs per-check skip logic.

file: api/_common/check-skipper.js ↗ | tags: #middleware #configuration #skip-logic

Defines a registry mapping check IDs to job specs (fetch function + card components). Each job spec includes retry/polling helpers and fallback promotion. This centralized abstraction decouples data fetching from UI rendering and is easily extensible. The pattern is applicable to any dashboard application that needs to run multiple independent data sources and display results.

file: src/client/jobs/registry.ts ↗ | tags: #job-orchestration #card-registry #abstraction

Discovers and verifies social media profiles (X, Bluesky, Mastodon, GitHub) on a target website. Uses a registry of NETWORKS with discovery methods (page metadata, JSON-LD, rel-me links, platform APIs). The approach is modular: adding a new platform requires only a new entry in the registry. This pattern is highly reusable for any social link mining task.

file: api/social-presence.js ↗ | tags: #data-discovery #osint #pattern-registry
Last analyzed: 2026-10-07 21:13:24.608189
Next check: 2026-10-14 21:13:24.603387
$ submit: