Skip to main content

Detect tech stack and production-readiness issues from a live URL or GitHub repo. Zero config, one command.

Project description

app-auditor

Detect tech stack and surface production-readiness issues from any live URL or GitHub repo. One command, zero config.


Quick start

# Clone and install
git clone https://github.com/nometria/app-auditor
cd app-auditor
pip install -e .

# Audit a live URL
app-audit url https://vercel.com

# Audit a GitHub repo
app-audit repo myorg/myrepo

# JSON output
app-audit url https://myapp.com --format json

Usage

Audit a live URL

app-audit url https://myapp.com

# JSON output
app-audit url https://myapp.com --format json

Output:

URL: https://myapp.com
Title: My App
Stack: nextjs, react, supabase

Risks:
  • Supabase client: verify auth flow, RLS, and env key exposure in client.
  • Hosting on Vercel/Netlify: ensure env vars and serverless limits are documented.

Audit a GitHub repo

app-audit repo github.com/myorg/myrepo
# or shorthand
app-audit repo myorg/myrepo

Output:

Repo: myorg/myrepo
Detected: vite, react, supabase

Missing:
  ⚠ No Dockerfile found — containerization recommended for production.
  ⚠ No GitHub Actions workflows — consider adding CI/CD.

Suggestions:
  → Vite SPA: add Dockerfile and ensure server rewrite rules for SPA routing.
  → Supabase: verify RLS, auth flow, and env key exposure in client.

Set GitHub token to avoid rate limiting

export GITHUB_TOKEN=ghp_...
app-audit repo myorg/myrepo

Use as a library

from app_auditor import audit_url, analyze_repo_url

# Website audit
result = audit_url("https://myapp.com")
print(result["detected_stack"])  # {"nextjs": True, "react": True, ...}
print(result["risks"])           # ["Supabase client: verify RLS...", ...]

# GitHub repo audit
result = analyze_repo_url("https://github.com/vercel/next.js")
print(result["detected"])        # {"nextjs": True, "docker": False, ...}
print(result["missing"])         # ["No Dockerfile found..."]
print(result["suggestions"])     # ["Next.js: check output mode..."]

Detected stack signals

Signal Detection method
Next.js __next in HTML, _next/ paths, next.js in server header
Vite /assets/ + modulepreload in HTML
React react / reactdom in HTML or package.json
Vue v-bind or vue in HTML
Supabase supabase in HTML or repo file paths
Vercel vercel in HTML, server header, or vercel.json
Netlify netlify in HTML, header, or config files
Docker Dockerfile in repo tree
GitHub Actions .github/workflows/ in repo tree

Commercial viability

  • Free tier: CLI and library (open source)
  • Paid: API with bulk auditing, team dashboards, Slack notifications
  • Inbound funnel: developers debugging production issues → upgrade path to managed services

Example output

app-audit url https://vercel.com

URL: https://vercel.com/
Title: Vercel: Build and deploy the best web experiences with the AI Cloud
Stack: nextjs, react, vercel

Risks:
  • Hosting on Vercel/Netlify: ensure env vars and serverless limits are documented.

app-audit url https://supabase.com

URL: https://supabase.com/
Title: Supabase | The Postgres Development Platform.
Stack: nextjs, react, vue, supabase, vercel

Risks:
  • Supabase client: verify auth flow, RLS, and env key exposure in client.
  • Hosting on Vercel/Netlify: ensure env vars and serverless limits are documented.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

app_auditor-0.1.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

app_auditor-0.1.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file app_auditor-0.1.2.tar.gz.

File metadata

  • Download URL: app_auditor-0.1.2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for app_auditor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8edfeebe7514f0be0f0333f220ac06eebc10ec23ba5e7e772751715050f0f378
MD5 1ab890c34423797efa90e71568419714
BLAKE2b-256 90a5c85056e98eaad18896bd5cb826ee634ac1377ad89657ae65c4409a12dcbb

See more details on using hashes here.

File details

Details for the file app_auditor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: app_auditor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for app_auditor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4b4c25db83f0c10ddf12ff2cc78894f926fbbae8f79ac8d4c8e51b40334f07cd
MD5 238e8c6e72505a3bdef7219a64c97d98
BLAKE2b-256 1739eee62c070b23a82bee0ace831df38103c02d1d17a0946901657479fe8577

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page