Pushpin is a new way to build realtime HTTP and WebSocket services.

  • Pushpin has convenience libraries in many languages. Check out the full list here.

API freedom

Pushpin is a reverse proxy server that makes it easy to build realtime web services. What's unique about Pushpin is that its external interface is defined by whatever backend applications are running behind it. This makes it ideal for API creators, where control over the front-facing protocol is paramount. Think of Pushpin as the realtime equivalent of a transparent caching server like Varnish. Why this is important.


Pushpin works as a publish-subscribe service, so that backend applications can be written statelessly and not have to worry about managing client connections. Subscriptions are made using a control protocol between Pushpin and the backend applications called "GRIP". Clients participate in publish-subscribe without realizing it. Published payloads are entire HTTP or WebSocket frames, so you control exactly what clients see, down to the byte.

Works with any backend

Writing a realtime service normally requires using an event-driven framework. After all, you don't want individual client connections tying up entire threads. By delegating long-lived connection management to Pushpin (written in event-driven C++), your applications are freed to be written using any language or framework. You can even service WebSocket connections using an HTTP backend.

Joyful to use

Since Pushpin works as a reverse proxy, you can serve realtime and non-realtime endpoints from the same backend application. No more split worlds. Turning an HTTP request into a realtime connection is just a matter of responding with certain headers. Your usual web framework features will work through Pushpin, such as authentication and error pages.

See how it works »