Developer tools · Open source · 2026 — now
A mock server that is done only when it matches the reference
Mockifyr, a self-hosted API mocking and integration sandbox in .NET. Every behaviour it copies is checked against a running WireMock before it counts as done.
- 63
- releases
- 1500+
- tests
- 15
- architecture decisions
Context
Enterprise systems depend on downstream systems you can't call from a test: billing, inventory, a partner's API, an SMS gateway. You mock them, and then you trust the mock. I wanted a mock server in .NET, with its own codebase, that speaks the protocols these systems actually use and can be handed to a partner as a sandbox. And I wanted a way to know it behaves correctly, not a feeling that it does.
Protocols
HTTP
gRPC
GraphQL
WebSocket
Email and SMS
Kafka and AMQP
Facades
In-process library
HTTP server
Admin API
Dashboard
Core
Match the request
Build the response
Directives: delay, fault, proxy
Storage
In memory
PostgreSQL
Redis
LiteDB
How "done" is decided
A feature that copies WireMock's behaviour isn't done when it looks right. It is done when the same requests produce the same responses in both.
The differential check
Where no reference exists, a real client drives the feature instead: a real mail client for SMTP, the official Twilio SDK for SMS, a real gRPC client for gRPC.
The decisions
- The core does no I/O. Delay, fault and proxy are directives the core returns; calls to the outside world happen at the edges. That is what makes the differential check possible.
- Tenants are in the model from day one. One process serves many teams or partners, each with its own stubs, keys and quotas. Adding this later would have meant rewriting the engine.
- Memory first, storage optional. Requests are always served from memory. PostgreSQL, Redis or LiteDB are written through when data has to survive a restart or be shared between replicas.
- Every decision is written down. Fifteen decision records and a parity document for each area of behaviour, including what is deliberately left out.
How I built it
I wrote it with AI. The AI never judged its own work: the architecture rule is that only the running reference decides whether a behaviour is correct.
Outcome
Sixty-three releases, one container image for amd64 and arm64, a Helm chart that runs on OpenShift, and more than 1,500 tests.
WireMock is a trademark of WireMock Inc. Mockifyr is an independent project, not affiliated with, endorsed by or sponsored by WireMock Inc. The name is used only to describe compatibility and testing.