Category Archive: Programming

Fixing our email issues

Wednesday, February 3rd, 2010

Subscription billing is a pain and we’re trying to make your life easier by simplifying it for you. Well, it turns out that email is also a pain and we’re turning to someone else for help.

Recently, there’s been a high amount of email support requests. We spool mail locally from our web application to Postfix, then deliver it out to the internet. Well, it turns out that a large amount of that email was getting dropped. Watching the postfix mail logs was a bit disheartening after seeing numerous mail servers refuse to chat with our email server. We have SPF records setup, reverse DNS, and deliver mail from a dedicated IP address — it turns out that that’s still not enough.

To our customers: I’m sorry we didn’t figure this out earlier. We haven’t done a good job delivering our billing emails to your customers. Right now, we are evaluating multiple ways to improve the email delivery rates for the emails we send to your subscribers on your behalf. There should be an immediate uptick in the delivery rate for your emails today. And over the next couple weeks, we’ll determine the best way to reliably deliver your emails with the correct domain keys, SPF records, etc so that they work even better than if you were to send the emails yourself.

To other start-ups: I hope you read this and then realize that running your own SMTP server on dedicated, non cloud-based servers can still be problematic. I thought that because we’re not in the cloud, we don’t need someone else to handle our emails — looks like I was wrong. To remedy the situation, we’re now evaluating SendGrid (shout out to another CEO named Isaac). I’ve heard great things about their service and I’ve been comparing email headers all evening. It looks like their product is doing a fantastic job handling bounced emails, invalid email addresses, ISP feedback loops, domain keys (something we didn’t have setup), SPF, and everything else. Their web UI is a little rough around the edges, but so far it looks promising. Assuming their product lives up to its marketing material, it will help us dramatically improve our email reliability.

We’re not email experts and we don’t have time to build it out ourselves — (this sounds so familiar, right?).

Once again, a big thanks to everyone for being patient as we improve our email issues.

.NET Client Library for Subscription Billing

Monday, January 25th, 2010

As a .NET developer, I am excited to announce that Recurly now has a C#.NET client library well under way!  We polled our customer base and found a large number of our customers are powering their websites with ASP.Net, but they don’t have many options today when it comes to simplifying their subscription billing.

Our REST API is pretty easy to consume, yet without an open-source .NET client library to start with, we found that our clients’ integration times took an extra day of effort.  So we started our own.

This lightweight library uses fast-forward only XmlTextWriters and XmlTextReaders along with Stream readers and writers so you can be assured it’s fast.  It also works great in .NET 2.0 and above.  And finally, it is strongly typed and boasts a wide range of explicit exceptions to help you handle errors.  The library is about 85% completed today and will be finished very soon.

So if you’re looking for a simple to use, subscription billing service to power your ASP.Net websites, check out Recurly and our open-sourced C# library.

Ruby Client Library now available

Sunday, November 22nd, 2009

Today, we’re excited to announce the release of our Ruby client library for Recurly.  The library is available as a Ruby gem (via gemcutter.org) or plugin.  Please see the Ruby client documentation for install instructions.

With the Ruby client, just a few lines of code are required to start creating new subscriptions in Recurly from your Rails web app.  We designed the API to simplify the most common API requests about subscriptions.  To that end, this client library makes it incredibly easy to:

  • Create a subscription and account at the same time,
  • Create a subscription for a new or existing account,
  • Cancel a subscription,
  • Refund a subscription (full or partial),
  • Update an account’s billing information (and validate the new card number or collect a balance, if there is one),
  • Query subscription status (active, past due, free + plan information),
  • Upgrade or downgrade the subscription
  • And more…

In the near future, we’ll include a fully functional subscribe page example.  (The PHP client library has a great example already.)  In the meantime, every function of the client library is demonstrated by unit tests.

Check out our client documentation and the code.

PHP Client Updates

On a related note, the PHP client has also been updated today.  It now has support to lookup the current subscription status for a user.  And, it can perform upgrades and downgrades with a single function call.  Please see our documentation for more information, or grab it from gibhub.

As always, if you have any questions, drop us a line in our support forums and we’ll get back to you soon.

Cheers,
Isaac


Links