w3bs.AccountStart building
PACKAGES / Profullstack

saasrow

Command-line client for the saasrow.com software directory: search it without an account, and manage your free listings and API keys.

ThreatCrush · No malware found
INSTALLw3bs install saasrow.com/saasrow

No w3bs yet? curl -fsSL https://w3bs.org/install.sh | sh

Get started

What to type once it is installed.

  1. w3bs install saasrow.com/saasrowInstall saasrow and track it for updates
  2. saasrow search "analytics" --pricing-model free --limit 10Search the software directory without an account
  3. saasrow search --alternative-to NotionFind alternatives to a product
  4. saasrow loginSign in with a one-time code mailed to you
  5. saasrow listings create --name "Acme Analytics" --website https://acme.example --description "..." --category AnalyticsSubmit a free listing for review
  6. saasrow keys create "CI deploy"Create an API key (also works for the MCP server)

Every option: saasrow --help · docs ↗

Malware scan

ThreatCrush found no malware indicators in saasrow 1.2.0. The other findings below are ordinary code-review notes, not malware.

Scanned
2026-11-01 22:56 UTC · threatcrush 0.13.30
Files
398 (installer + github.com/profullstack/saasrow-web)
Findings
2 high · 11 medium · 2 low
15 other findings (not malware)
  • high
    outbound request to a non-constant URLsource/public/sw.js:21js-ssrf-outbound-request · CWE-918
  • high
    outbound request to a non-constant URLsource/src/lib/edgeProxy.ts:69js-ssrf-outbound-request · CWE-918
  • medium
    unescaped HTML renderingsource/src/components/JsonLd.tsx:13js-unescaped-html-sink · CWE-79
  • medium
    regex with nested unbounded quantifierssource/src/lib/emailMarkdown.ts:43redos-nested-quantifier · CWE-1333
  • medium
    regex with nested unbounded quantifierssource/src/lib/emailMarkdown.ts:302redos-nested-quantifier · CWE-1333
  • medium
    unescaped HTML renderingsource/src/views/Admin.tsx:1811js-unescaped-html-sink · CWE-79
  • medium
    unescaped HTML renderingsource/src/views/BlogPost.tsx:168js-unescaped-html-sink · CWE-79
  • medium
    unescaped HTML renderingsource/src/views/EmailBroadcast.tsx:412js-unescaped-html-sink · CWE-79
  • medium
    redirect to a non-constant destinationsource/src/views/Featured.tsx:279js-open-redirect · CWE-601
  • medium
    unescaped HTML renderingsource/src/views/NewsPost.tsx:137js-unescaped-html-sink · CWE-79
  • medium
    redirect to a non-constant destinationsource/src/views/SoftwareDetail.tsx:160js-open-redirect · CWE-601
  • medium
    regex with nested unbounded quantifierssource/supabase/functions/_shared/emailMarkdown.ts:43redos-nested-quantifier · CWE-1333
  • medium
    regex with nested unbounded quantifierssource/supabase/functions/_shared/emailMarkdown.ts:302redos-nested-quantifier · CWE-1333
  • low
    Hardcoded Credentialsource/__tests__/lib/webhooks/supabaseStore.test.ts:11secret-generic-credential · CWE-798
  • low
    Hardcoded Credentialsource/cli/test/cli.test.mjs:309secret-generic-credential · CWE-798

Badge for your README

ThreatCrush: No malware found

[![ThreatCrush scan](https://w3bs.org/api/packages/saasrow.com/saasrow/badge.svg)](https://w3bs.org/packages/saasrow.com/saasrow)