How Squall reviews an app

Review steps

  1. Permission

    Anything not named in the signed permission is refused.

  2. Secrets in history

    Two scanners read the full code history. A key proven live is rated High.

  3. Flawed packages

    Shows the version that fixes each one.

  4. Code analysis

    Rules for your language and framework.

  5. Site settings

    Security headers and the content security policy.

  6. Where your data goes

    Every host the app can reach and what it stores in the browser.

  7. Changes on a preview

    So a fix cannot break the live app.

  8. Hostile input

    Crafted inputs run offline through the app's own parsing.

  9. Account settings

    Read-only checks on the accounts that publish your app.

  10. A person decides

    Each unproven item is confirmed or cleared with a reason.

Rules

Permission first
Nothing is touched without a signed permission naming it. Third-party services are only observed.
Read-only
Squall changes nothing in your code, deployment or accounts.
No disruption
One request at a time. No load testing or fuzzing.
No people
Nothing is aimed at your staff.
Every run recorded
Each run logs the request, the permission and the outcome.
Private
Findings go only to you. Nothing is published.
Not certification
Does not replace regulator-required testing or certification.

The report

Each finding has its proof and its fix. The report also lists what passed and what was not covered.

Tools

Your code is never uploaded to a scanning service.

Secrets
TruffleHog, Gitleaks
Flawed packages
OSV-Scanner
Code analysis
Semgrep Community Edition
Browser sessions
Playwright with Chromium
Traffic proof
mitmproxy
Built by us
The permission gate, the runner, the report and the run log.
AI
Anthropic Claude helps the reviewer read findings. The checks use no AI.
Services
Okta for sign-in. Cloudflare for the connection and email. GitHub for hosting.

Shipping soon?