Documentation

Passfail.no is a controlled test fixture for the Teste.no web monitoring platform. It provides 31 toggleable tests across 9 categories that let you verify scanner behavior in both pass and fail states.

How it works

Each test fixture controls one aspect of the HTTP response — headers, HTML content, structured data, API behavior, or root file responses. When a test is toggled to “fail”, that aspect of the page intentionally breaks in a way that the corresponding Teste.no scanner plugin detects and reports.

1

Create a subdomain instance

Visit passfail.no and create an instance like mysite.passfail.no. Each instance has its own isolated test state.

2

Toggle tests

Flip individual tests between pass and fail. State persists automatically — no need to keep the browser open.

3

Point your scanner

Configure a Teste.no scan against your subdomain. The scanner sees real HTTP responses with real broken signals.

4

Verify findings

Check that your scan reports exactly the findings you toggled. Iterate on scanner plugins with instant feedback.

Architecture

Passfail.no runs on Next.js 15 with the App Router. Middleware intercepts every request to resolve the active subdomain and apply header-level fixtures (security headers, CORS, CSP, cookies, cache). Page-level fixtures (HTML content, structured data, forms) are controlled by React server components. API endpoints are standard Next.js route handlers.

Technology stack

Framework

Next.js 15 (App Router)

Database

SQLite (better-sqlite3)

Styling

Tailwind CSS

Deployment

Standalone + systemd + Caddy

TLS

Wildcard via Cloudflare DNS-01

Multi-tenancy

Wildcard subdomains (*.passfail.no)