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/andpages/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.