Your browser is no longer supported! Please upgrade your web browser now.

Harvest Ending Support for Internet Explorer 7

We’re announcing a change to our browser support policy. Starting January 2, Harvest will no longer support Internet Explorer 7. If you are still using IE7, please install a modern web browser to use with Harvest (such as Chrome or Firefox). You have a month and a half to upgrade, but we hope you’ll do it today (it’s free! it’s easy!).

We believe this change will benefit all of our customers. IE7 was released five years ago and is two major releases behind the latest version of Internet Explorer. IE7 offers limited (at best) support for many of the modern web browser features that applications like Harvest rely on. Right now, we’re employing hacks and crutches to make IE7 usable for only a small percentage of our customers, and removing these will improve the speed and performance of Harvest for everyone.

IE7 is a terrible browser for the modern web and it’s holding all of us back. Every hour spent hacking a fix is an hour that could have been spent building something awesome.

Harvest’s New PDF Engine

Update: We’ve now added a Snail-mail Friendly option to move the client address to the left for the envelope window. You can find this option, hide columns, and company logo in a new Appearance tab on the Invoices and Estimates configure pages.

Today we’re announcing a significant upgrade to our invoicing and estimate platforms: a new rendering engine for the PDFs you send to your clients.

The new engine, which is built with wkhtmltopdf and Liquid-based templates, renders PDFs based on HTML and CSS. This is really exciting, because it allows us to use more flexible and simple code to create them. This means we can have the exact same code for invoice and estimate PDFs as we have in the app, which means they now have the same design and options.

What’s New

Implementing this allowed us to make some other features available on Invoices and Estimates:

  • PDFs now have the page number at the bottom (and an option to translate).
  • You can now hide the type, quantity, and/or unit prices columns.
  • If you have a company logo uploaded, but still want your invoice to say “Invoice” on the page, you now have this option. You can turn it on where you uploaded your company logo in the configure section, and then change the title in translations (i.e. – you’d rather have “Tax Invoice”). The same applies for estimates.
  • We’ve added quick access to your Web Invoices and Web Estimates.
  • The new PDF engine is also able to render many more languages. See an example of some languages below:

The biggest win is that we now have the flexibility we need for adding features to our invoices and estimates in the future. Any change will automatically work in the app and as a PDF.

We hope this new PDF engine makes your Harvest experience even better.

Teams At Work: Creating a South Park Episode in 6 Days

South Park has long surprised me at how they continuously create intelligent material year after year (first episode aired in 1997). Even more impressive is how quickly the show can work in recent events to its social commentary. Current events that happened a week before can easily find their way into an episode the following Wednesday.

60 Minutes recently went behind the scenes with Matt Stone and Trey Parker, the creators of the show, to find out just how they do it. It all starts with a brainstorm session on Thursday morning and results in a completed episode, ready to air, the following Wednesday.

The 5-minute segment below shows the process of how Matt and Trey’s tightly-knit team go from idea to finished product in just 6 days.

Read more at 60 Minutes

Harvest is Hiring – Spread the Word

Dear Harvest customers and fans,

This quarter, the Harvest Team has spent 3,214 hours on new features, system improvements and customer support. We launched two major features, with three more coming this month. We have also carried out several infrastructure upgrades to make Harvest even faster and more reliable.

But we want to do more. We want to make Harvest an even more useful and powerful service for your business. To do that, we need peoplesmart, talented, humble, and hard-working folks to join a small team that makes a world-class business application. More specifically, we’re looking for two Rails Developers (junior or seasoned), a Ruby Systems Dev, and an Account Manager.

We need your help to spread the word. If you know of any talented folks that fit the bill, please let them know that Harvest is hiring. You can also help by passing the word to your friends and colleagues on Twitter or Facebook. Please help us build our team, and we will make Harvest even better for your business!

Thank you,
Shawn, Harvest Co-Founder

How Harvest Is Made, Part Two

Last week I wrote about how developers at Harvest deploy code and own the responsibility of keeping our software quality high. Today I’ll touch on the tools and process we currently use to collaborate, stay in touch with customers and glean feedback from our infrastructure.

Developer collaboration

Harvest developers are seldom in the same building, let alone the same state or country. We work as a distributed team, yet we collaborate extensively. All of our code is hosted with GitHub, which makes this collaboration simple. For those familiar with Git:

  • Developers work in feature branches off the master branch, and master is always assumed to be deployable by anybody at any time.
  • Developers use GitHub Pull Requests all the time, and significant deployments are peer reviewed in this way prior to deployment.
  • Continuous Integration server constantly tests our code, and reports concerns to the team.
  • Development takes place locally, but we have multiple production-similar staging environments for testing and QA.

Infrastructure collaboration

We strive to have no ‘walls’ over which features or releases are thrown between team members. We share the responsibility of creating and supporting our software. As the ‘systems guy’ at Harvest, it’s important to me that every developer has the ability to manage systems configuration. It’s also important that if problems arise, the team who responds to these problems is not a siloed operations team, but includes the developers who wrote the code which is running in production.

To this end, we use Chef to transform our systems configuration into a collaborative effort. Every component of our infrastructure is controlled by Chef. This means that technical team members can view and modify production configuration and roll out systems changes. The beauty of Chef is that everything is protected by Git version control and enhanced by the power of Ruby.
Continue reading…

Quality Assured, Since 2006

Among the many principles we abide by at Harvest, one of the most valued for our product is Quality Over Quantity. All of the features and updates we deploy at Harvest go through rigorous quality assurance testing, and every Harvester participates. And we deploy a lot. Using the product ourselves assures that we are releasing a feature that is easy and accessible for our users, as well as catching and fixing any bugs that may have creeped into the code.

After the last few rounds of QA testing, we felt we needed to induct our quality assurance testing into Harvest history and celebrate our love for our product. And what better way than with more Harvest T-shirts!

Thanks to our internal illustrator, Kim Ku, for the drawing of the tractor – an idea we’ve been experimenting with lately. Another thanks to the font designer, Simon Walker, for donating his wonderful font Matchbook.

How Harvest Is Made

You may not realize it, but almost every day there are improvements being made to Harvest while our customers are using it. Transparency is a core value here at Harvest, and I’d like to take you through a little of how we work behind the scenes, in a series of slightly technical posts.

The new Harvest Status page

We’ve just released the beta version of a tool we will be using to promote transparency between Harvest operations and our customers: the new Harvest Status Page. Bookmark this tool to keep track of how Harvest is performing at any time.

Balancing priorities

I’ll briefly walk you through the software release process we follow, and in a subsequent post I’ll talk in more detail about the tools and methods we use. If you are familiar with DevOps and the concept of continuous deployment you’ll recognize these in our workflow.

Context determines your opinion on software deployment. Our customers naturally prioritize software stability and the addition of new features as quickly as possible. Customer acquisition, avoiding outages, using cool new technology, and striving for elegant robust code are a few other priorities held by my Harvest coworkers. A natural tension can exist between these priorities. How does Harvest balance this and retain our core focus on a good customer experience?

The simplest answer is: We take small steps quickly through collaboration.

Release cycle and deployments

What may be of most interest to customers is how we deploy new code to Harvest. Harvest changes almost every day, usually multiple times per day. In the time it took me to write this blog post, two different developers deployed five production releases of Harvest. Some might be concerned that a process like this promotes poor quality software. In reality, like many other companies, we have found that this iterative, constant change promotes high quality software, exposes and resolves unexpected issues quickly and allows a distributed team to work on different features concurrently. This means, in a nutshell, that when developers deem code ready to go to production, it goes to production. No artificial release schedule governs Harvest software rollout. There is also no manager whose job it is to ensure our software quality because that is the common responsibility of every person committing code at Harvest.

100% bug-free software is an unrealistic goal, but we strive for a bare minimum of issues by having structure in place to address problems quickly and efficiently:

  • All significant code changes are peer reviewed before deployment. In the next post, I’ll talk about how we do this.
  • Every developer, designer and sysadmin at Harvest is able to (and does) deploy production code.
  • Mondays tend to be the busiest traffic day of the week at Harvest, so we rarely release big new features on Mondays. Same goes for late on Fridays, when bugs could linger over a weekend.
  • We have an internal QA process and production-similar staging environments, where we perform extensive testing when required.

Some deployments warrant special care, such as releases which involve database migrations changing large datasets. Certain database operations could produce a poor customer experience while deployments roll out. We have in the past, and will continue to deploy these releases at times of lowest customer impact, although Harvest’s global customer base reduces this window constantly. We have a maintenance mode which we can employ to take Harvest offline briefly if we need to.

If you have seen Harvest in maintenance mode and we didn’t notify you, our customer, prior to this deployment, we made a mistake and you can be sure that the team is working on the problem with urgency. It happens, but we think Harvest’s uptime speaks to how infrequently this occurs.

Obviously, when it comes to software which has a third party review process, or runs on customer desktops, such as our iPhone App and the upcoming Mac App, our process to roll out change is a little different to the core Harvest software that runs on our own servers.

If this post was too technical (or not technical enough), the one thing I hope you will take away from this is: Harvest software changes all the time in small increments. This concept of continuous deployment isn’t new or revolutionary and it may not work well for every company, but it allows us to strike a balance between stability and agility and keep forward momentum as we build a fairly complex suite of software.

Next week I’ll touch on the tools we use to review code, communicate as a team and keep on top of our infrastructure performance. If there is something you’d like me to specifically discuss, let me know in the comments or directly at

Will Broccoli and George W. Bush Play Key Roles in the 2011 World Series?

It’s late October, so that means that baseball’s World Series has begun. I, like many Harvesters, am an avid baseball fan, and I’m looking forward to watching the culmination of a long season. When the playoffs began, the New York Yankees and the Philadelphia Phillies were the odds-on favorites to make it to the Fall Classic, but both teams lost in the first round. After some exciting league championship series there are only two teams remaining, and I want to give you a quick World Series preview (Harvest-style).

National League Champion: St. Louis Cardinals

The Cardinals aren’t supposed to be here. Just to make the playoffs, they had to benefit from one of the worst collapses in baseball history. They beat the Phillies and the Brewers, even though they were supposed to lose. They’re supposed to lose in the World Series too, but these games rarely go the way they’re “supposed to.”

One thing to look for: People in St. Louis put provel on their pizza instead of the traditional mozzarella. What other odd substitutions do they make in the “Gateway to the West?” If they win it all, will they forgo the traditional champagne shower for a broccoli bath?

American League Champion: Texas Rangers

The Rangers lost last year’s World Series to the San Francisco Giants, but they are back for a second go around. Have you ever seen one of those movies where a lone warrior goes on an epic quest for revenge? How do you think a whole team of bat-wielding Texans will fare against a flock of birds?

One thing to look for: Former Rangers owner George W. Bush (our 43rd president) is a frequent attendee of Rangers’ home games. He once thought about joining in an all-out brawl against my beloved White Sox (though he ultimately exercised better judgement). If things don’t go his Rangers’ way, will he storm the field with his dukes up?

The winner?

The teams have already met for games 1 & 2 with each claiming a victory. Heading down to Texas, they’re tied 1-1 and it’s anyone’s guess as to who will pull this off. Anything can happen, but you can bet Harvesters will be keeping a close eye on the results.

Drawings in this post were done by Harvest’s own Kim Ku.

Do You Have a Favorite Brand?

If you’re like most people I meet, your favorite is not a Business to Business (B2B) brand. Generally speaking, it’s the rare B2B brand that inspires deep passion or devotion. That’s why when I was introduced to Harvest, and I discovered its passionate base of users, I knew that this was a company I wanted to be a part of.

As a long time B2B marketer who formerly worked at a huge company, American Express OPEN, I am excited to introduce myself as the newest member of the Harvest team. I have dedicated the better part of 10 years getting to know the small- and mid-sized business space. Specifically, I’ve spent a large chunk of my time meeting business owners, behind the mirror at focus groups, planning live events, creating content, and running and analyzing marketing campaigns targeted at business owners. I love this customer segment. I think you guys are inspiring. And I’m excited to keep working on solutions that make your lives’ easier.

About me: I’m a mother of two children, married to a tech entrepreneur, and I’m an avid business idea machine (business apps, healthy baby food, you name it). The reason I joined Harvest is simple: I wanted to work with great people on an amazing product that people love. As a marketer, Harvest has something else to get excited about: a creative and committed user base that has helped make this company what it is today, and is continuing to shape and promote the business. Just look at what people are saying about @harvest on Twitter and you’ll see what I’m talking about.

And here’s why: the reason the product is great becomes apparent on day one of working here – we all use it. To track EVERYTHING. I know how much time I’ve spent in meetings since I got here, how much time I’ve spent on emails, even how much time writing this blog post. I’m proud to share that in my first 5 weeks here I’ve only spent 7.9 hours in meetings. I did that each day at my last job. Turns out, when you track your time you spend it more productively.

Help this new girl out: if you were me, what would you do to spread the word about Harvest? What would inspire you, personally, to tell your friends and colleagues about Harvest? What tools do you need from us? Please let me know in the comments below, or email me directly at I’m excited to hear what you have to say and to get to know you all better, and thanks for using Harvest!

OAuth 2.0 for the Harvest API, Plus a New SDK

At Harvest, we have a ton of pride in our smart and creative users. The ideas you bring to life on top of our Harvest API are always surprising and inspiring. OAuth 2.0 and our new JavaScript SDK are two great tools coming into beta today, and we can’t wait to see what you do with them!

OAuth 2.0 is an industry standard for API authorization, used by Facebook, Google and others. With OAuth 2.0 you won’t need to store the passwords of Harvest users to build an integration. That means more security for Harvest users, and less liability for integration authors. You can learn more about the specifics of OAuth 2.0 and our implementation in the updated API authentication docs.

Our new JavaScript SDK is inspired by the ease of using Facebook Connect. Build integrations in pure client-side JavaScript, without thinking about Cross-domain requests and the details of OAuth 2.0. We’re already using it to add timers to our bug tracking and support tools. It’s a great way to bring Harvest to your other web apps.

  • Add timers to your bug tracking software in only HTML and JavaScript.
  • Import open invoice amounts from Harvest without using server-side programming.
  • Pull reporting into JavaScript to generate custom visualizations and charts.

Again, the best place to learn more is our new JavaScript SDK documentation.

Getting Started

If you’re a user or partner interested in working with our new API authentication and SDK options, make a request for OAuth credentials on this form, or drop us a line at for more information. While in beta, we’re going to issue credentials manually, and that form is the quickest way to get set up. you can sign up for OAuth credentials right from within your account. Go to Manage > Account Settings and click the OAuth2 Tokens button to get started. If you’re not a code-slingin’ type of person, just know that we’re giving developers the best tools available for the next generation of Harvest integrations.

Your comments and feedback about these API additions are important – please do get in touch!