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/ownmy-app/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.0.tar.gz (7.5 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.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for app_auditor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a198cd0420d9bb42200d9fa5d337f1779e6afb2b1c7a1b0d289756d0e42a1d38
MD5 14ec6da0f4d64ef4c4b4a6cb2bc05fdf
BLAKE2b-256 3de2c0bb5e6066f5f90d9a3dcc66e81fb6951c63c0728b87202347e42e4a76f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: app_auditor-0.1.0-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.13.9

File hashes

Hashes for app_auditor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cbf90a4b97986b8d1a1433d13b84c201a28ec2e16752766e5828371fd995f71
MD5 9d47b84e25ee537d23f79b07cb64c467
BLAKE2b-256 a47039ace21ea0b6669dd68f60afbb15ac3b47298c1286baf76238b5b1644a68

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