Photo: Toronto City Centre Airport
Scenes from the airport on May 24, 2011 before heading to New York.
Posted from Toronto, Ontario, Canada.
Scenes from the airport on May 24, 2011 before heading to New York.
Posted from Toronto, Ontario, Canada.
#hackTO the second happened this past Saturday (Sept 26, 2010), and like the first one, it was awesome. We got a fresh batch of APIs (though, some returning) to play with, way too much sugar, and a lot of new faces, but the formula was the same: 6-7 hours to hack together an app using one (or more) of the given APIs.
The pressure was on: as former champion of #hackTO, I had to defend my title. I decided to go big with an ambitious idea, not totally sure if I’d be able to finish in the given time. I had originally come up with the idea at the first #hackTO, but didn’t really have time to implement so I put it on my projects-for-the-future list. But this time around figured I’d give it a shot and so the WordPress InstaPaywall plugin was born.
Sadly, I didn’t reclaim my title but managed to score a third place entry. The judges apparently had a tough time deciding though, because there were a lot of really great apps developed.
Now, onto the plugin!
In its simplest form, the plugin lets you paywall your blog posts and make money by charging readers for full access to them. Paywalls are the new hotness these days and Freshbooks’ billing API seemed like a perfect fit for accomplishing this.
I think it’s important to note that I hate paywalls. I hate freewalls even more (yes, NYTimes.com, I’m talking about you!). But, it’s a model that some people think will work (and are betting their futures on), and it clearly is working for some. So, while it pains me to build something that contributes to the paywall madness — I would much rather see everyone take a Guardian-like approach; the world would be a better place if we did — it doesn’t hurt to sip the kool-aid every once in a while.
The plugin basically takes a modified iTunes-like approach: 1-click buying that you’re billed for at the start of the month.
It’s a bit difficult to run a demo, so I’ll just use screenshots instead.
Note: The plugin is a bit rough around the edges and not quite as good-looking or elegant as I would like, but what do you expect in 6.5 hours?
The plugin adds a new metabox to the Edit Post screen, which let’s you enable the paywall for any given post. Once enabled, you can specify the amount that you would like to charge for the post.
All users in WordPress get an associated Client entry created in Freshbooks.
All users in WordPress also get a Recurring Invoice entry created in Freshbooks. This is central to the application billing service in Freshbooks. This invoice is set to go out at the first of every month.
Whenever a user encounters a paywalled post, they’re shown a message indicating they can view the full content by paying a given amount. If the user agrees to pay, the amount indicated is added as an entry to their Recurring Invoice.
Charges for any given month add up. Users can view upcoming charges as well.
On the first day of the following month, Freshbooks automatically emails the invoice to the user (Freshbooks has snail mail support if you want to go old school — though, this wasn’t integrated). Then, thanks to the magic of webhooks (and a just-in-case cron job), the user’s invoice entries are cleared so they have a clean slate for the next month.
And then the cycle repeats.
My origin scope for the plugin was way bigger, but I just didn’t have enough time to implement everything. My main goal was to provide a three-pronged approach to paywalling to allow content creators the maximum flexibility. Some other ideas I had for payment models:
Other improvements and crazy ideas:
Like most of my work (e.g. WordPress projects), I’m always happy to openly release the course code. However, the code for InstaPaywall in its current state is way too “unclean” to be release-worthy. When I get a chance, I’ll clean it up and open it up to the world.
Update (2010-11-01): I recently found out about Flattr which is an existing micro-payment platform for content creators. Very cool!
Would love to see your code (in any state) as I just had a customer ask about the Freshbooks api for their site.