Getting started
Get a test fixture running in under a minute. No signup, no configuration files — just create a subdomain and start scanning.
1. Create an instance
Go to passfail.no and type a name in the instance creator (e.g. my-test-site). This creates my-test-site.passfail.no with all tests passing by default.
Instances are auto-created on first visit too — if you navigate directly to any subdomain that doesn't exist yet, it will be initialized automatically.
2. Toggle tests
Visit your instance URL (e.g. my-test-site.passfail.no) and use the toggle switches to flip individual tests between pass and fail. State persists automatically via SQLite — you can close the browser and come back later.
You can also use URL query parameters for quick configuration:
# Fail specific tests
https://my-test-site.passfail.no/?fail=security-headers,csp-deep-audit
# Fail all tests
https://my-test-site.passfail.no/?fail=all
# Pass all tests (default)
https://my-test-site.passfail.no/3. Local development
For local testing without wildcard DNS, use the _subdomain query parameter to simulate any subdomain:
# Simulate "mysite" subdomain locally
http://localhost:4270/?_subdomain=mysite
# This reads/writes the same instance state as mysite.passfail.no4. Point your scanner
In Teste.no, create a target pointing at your subdomain URL. Run a scan and verify that the findings match exactly what you toggled. Each test slug corresponds to a Teste.no plugin slug:
# Toggle security-headers to fail → Teste.no security-headers plugin reports a finding
# Toggle seo-meta-tags to fail → Teste.no seo-meta-tags plugin reports a finding5. Use the API
You can also control instances programmatically:
# Get instance state
curl https://my-test-site.passfail.no/api/instance
# Update failing tests
curl -X PATCH https://my-test-site.passfail.no/api/instance \
-H "Content-Type: application/json" \
-d '{"failing": ["security-headers", "csp-deep-audit"]}'
# Delete an instance
curl -X DELETE https://my-test-site.passfail.no/api/instance6. Webhook testing
For PullPush E2E testing, use the webhook receiver endpoint:
# Basic webhook echo
curl -X POST https://my-test-site.passfail.no/api/webhook-receiver \
-H "Content-Type: application/json" \
-d '{"event": "test"}'
# Simulate a 503 error
curl -X POST "https://my-test-site.passfail.no/api/webhook-receiver?mode=error&status=503"
# Fail 5 times then recover (stateful)
curl -X POST "https://my-test-site.passfail.no/api/webhook-receiver?mode=recover&fail_count=5"
# View delivery log
curl "https://my-test-site.passfail.no/api/webhook-receiver?log=1"See the API reference for all webhook modes and parameters.
Instance cleanup
Instances that haven't been accessed for 30 days are automatically cleaned up. The last_accessed_at timestamp updates on every page visit and API call.
Next steps
- Test reference — all 31 tests with descriptions
- API reference — endpoints for instances, health, GraphQL, webhooks