How It Works

Blammo’s pipeline runs automatically on every push. Here’s what happens under the hood.

The pipeline

1. Clone

When you push code, Blammo receives a webhook from your VCS provider (GitHub, GitLab, or Bitbucket). It clones your repository at the exact commit SHA.

2. Detect

Blammo analyzes your project to detect:

  • Framework — Next.js, Nuxt, Remix, SvelteKit, Astro, or generic Node.js
  • Database — PostgreSQL, MySQL, SQLite, MongoDB
  • ORM — Prisma, Drizzle, or raw SQL
  • Environment variables — required vars parsed from your code

Detection is fully automatic. If the built-in detectors can’t identify your stack, the LLM fallback layer analyzes your package.json, config files, and source code.

3. Build environment

Blammo spins up an ephemeral environment for your app:

  • Docker (default) — builds a container with your app and any required services (database, cache)
  • Kubernetes — for Team plans, uses Kaniko for rootless builds and gVisor for runtime isolation

The environment includes your database, seeded with any migrations it finds.

4. Health check

Before testing, Blammo waits for your app to be ready by polling the health endpoint until it responds with a 200.

5. Discover routes

Blammo discovers every route in your application using framework-specific route discovery:

  • Next.js app/ and pages/ directories
  • Nuxt pages/ directory
  • Remix app/routes/ directory
  • SvelteKit src/routes/ directory

For unknown frameworks, it crawls from the root page and follows links.

6. Crawl and screenshot

Each discovered route is visited in a headless browser. Blammo captures:

  • HTTP status code
  • Response time
  • Console errors and warnings
  • Full-page screenshot

7. Capture evidence

Screenshots are saved for any route that returns errors, console warnings, or unexpected behavior. You see exactly what your users would see.

8. Interactive testing

On Pro and Team plans, Blammo’s AI explorer clicks through your app:

  • Discovers interactive elements (buttons, forms, links)
  • Tests common user flows
  • Records successful flows for replay on future builds

9. Report

Results are posted as a comment on your pull request with a summary table showing every route’s status, screenshots of failures, and any errors found.