The generally side-effect free nature of Haskell code makes it convenient to test. Haskell programs can interact with the outside world — otherwise they would be useless — but these side-effects are only possible in the IO monad. It is still important to test this code that performs IO, but we found it much more […]


The Laravel framework and Pusher are a great combination. Laravel helps you build elegant applications and at warp speed; Pusher helps you add real-time features to those apps in a fraction of the time it would take to build using your own infrastructure. In fact, Pusher has emerged as one of the Laravel community‚Äôs preferred […]


Last weekend Hamilton and I made the trip to Stockholm to attend the Nordic edition of this year’s BattleHack. Suffice it to say, we were not disappointed. Matching Braintree‘s superb standards for hosting events, we were met with excellent food, atmosphere, and a remarkably high standard of hacks. The format of the proceedings was familiar […]


This article is part of Building Realtime Apps Tutorials series, updated on a regular basis. In this guest blog post David McGaffin, senior engineer at Codeship, talks about how they improved Shipscope, a Google Chrome extension that allows users to get Codeship build notifications; Codeship is a hosted Continuous Integration and Delivery service that speeds […]


It’s been a while since we released a major version of pusher-js. In this release we’ve completely removed the Flash transport mechanism – requiring the major version bump – and added a UMD wrapper to the built library making it easier to use pusher-js with modern JavaScript tools. Flash Fallback Removed Back in 2010 we […]


This article is part of Building Realtime Apps Tutorials series, updated on a regular basis. ReactJS has been an awesome development in the way we think about data-driven user interfaces. By eschewing the n-way data-binding we see in many other JavaScript frameworks, it provides a simple, unidirectional flow for handling state in client-side code. Whenever […]


Battlehack NYC was our one and only US-based event in the series this year and we were extremely thrilled to meet the amazing talented hackers of the Big Apple. And as usual with Battlehack, all our expectations were exceeded! Jamie and I spent a wonderful weekend in a stunning city. We made new friends, munched […]

BattleHack Stage

A whirlwind of impressive hacks, great food, friendly people, a frighteningly tall CN tower, and beer. Yes, Jamie and I recently got the chance to represent Pusher at BattleHack Toronto! Jamie is a veteran of previous BattleHacks (London and Athens), but for me it was my first one, so needless to say, I was very […]


Olga and I travelled to Venice over the weekend just gone in order to represent Pusher at the latest instalment of this year’s Battlehack, BattleHack Venice. This was my third time at a BattleHack event but it was Olga’s first. She’d read the previous Berlin, Tokyo, Athens and London blog posts and heard us extolling […]


Last weekend, Pawel and I were at BattleHack Berlin, our fourth involvement in the global hackathon series hosted by Braintree. Having heard from my colleagues about the BattleHacks in other cities, I expected the Berlin edition to take it one level higher; and Braintree did exactly that! They left no stone unturned in their quest […]


Tokyo was our third involvement as BattleHack 2015 partners. The first two – London and Athens – set a high standard. How would Tokyo compare? With 41 teams competing for the coveted Axe Trophies the Japanese edition was busy and exciting – but also very focused and organised. Braintree yet again proved they’re the perfect […]


Last week we headed over to Cardiff to attend and support our first DjangoCon Europe. Although the Welsh capital met us with stormy showers and blustery winds, the Django community proved to be warm and very welcoming. In this post I’m going to cover DjangoCon EU’s efforts around social responsibility and report on the talks […]