BBC Consumer Contracts vs Pact
BBC Consumer Contracts
github.comPact
pact.ioSide by side
| Figure | BBC Consumer Contracts | Pact |
|---|---|---|
| Price from | Free | $115.42/mo |
| Free plan | Yes | Yes |
| Free trial | — | Yes |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 5 |
| Spec score · Contract Testing Tools | 8.1 (#8) | 8.7 (#2) |
| Integrations | The project uses the request HTTP client and Joi for response validation. | PactFlow's Bi-Directional Contract Testing integrates with OpenAPI and lists Cypress, Postman and Wiremock as tools for writing contracts. |
| Purpose | Consumer Contracts lets API consumers define executable JavaScript contracts describing the responses they expect from services. | Pact is a code-first tool for testing HTTP and message integrations with contract tests. |
| Security | The README shows SSL request configuration options, including client certificates and a strictSSL setting, but states no security certification or compliance claim. | PactFlow says it encrypts data at rest with AES-256, enforces TLS 1.2 or higher, and stores data and backups in AWS Sydney. |
Plans
Pact
- PactFlow StarterFree
- Pact open-source toolingFree
- PactFlow Team (yearly)$115.42 a month
- PactFlow Team (monthly)$127 a month
- PactFlow EnterprisePriced on request
In their own words
BBC Consumer Contracts
BBC Consumer Contracts is a free JavaScript package for executable consumer-driven API contracts. It describes the requests a consumer makes and the responses expected in return. Every contract requires consumer, name, request, and response properties. The package uses the request HTTP client and Joi schemas to check response status codes, headers, and JSON bodies. Optional before and after functions support setup and cleanup, using callbacks or asynchronous functions. Retry behavior accepts numeric or custom settings; the documented default maximum is zero. The consumer-contracts run command validates contracts recursively in a contracts directory or runs one named file. Programmatic callers can pass an array to validateContracts, which runs every contract instead of stopping at the first failure. Installation instructions cover global CLI use and local pnpm development dependencies. It requires Node.js 18 or later and pnpm 10 or later, and supports API and self-hosted use under Apache License 2.0.
Pact
Pact is a free, code-first tool for testing HTTP and message integrations with contract tests. Automated consumer tests create contracts describing concrete interactions between consumer and provider applications. Teams can then test each side in isolation against that shared contract, without deploying the entire system. Pact implementations are available for more than 10 languages, including JavaScript, Java, .NET, Go, Python, Ruby, Swift and Objective-C, Scala, Rust, PHP, and C++. Its CLI includes mock and stub servers, a provider verifier, a broker client, and a plugin CLI. The open-source Pact Broker shares contracts and verification results; teams can host and administer it themselves, and use its CI/CD workflows to check whether application versions can be deployed together. The verifier supports HTTP and asynchronous and synchronous messages, while plugins include gRPC, Avro, and CSV support. Documentation includes recipes for tools and scenarios such as GraphQL, Cypress, Kafka, and AWS Lambda. Pact is most useful when teams control both consumer and provider development. The free Broker is self-hosted, leaving its security, maintenance, and upgrades to its operator.