Looking back at 2014
Hello again friends of Balsamiq!
As usual, this is going to be a very long post.
We're doing great. We're executing on our vision, one step at a time. Most of what we did in 2014 was behind the scenes, and will be released in 2015 (we're SO excited). Revenue grew about 4.5% (not bad considering our last official release was in March), and profit margins remain very healthy. Our micro-multinational finally feels mature, with all the processes and benefit programs we'll need for a while. Customers are gradually migrating from Desktop to myBalsamiq, as expected. Support load and competitive pressure are both low, so we can afford to stay focused on gradually moving to native platforms and other hard-to-do product improvements.
Interested in all the details? Let's dive in!
We only had one official release of Mockups this year, on March 13. With it we introduced bracketed text links and iPad and iOS7-styled controls. We also did 3 small bug fix releases, but overall, the 2.2 codebase has been mothballed since about April, when we shifted our focus to...
These two steps (code refactoring and UX improvements) were meant to happen separately, but sometime in April we decided it made more sense to do it all at once. It took about 10 months, but it's all done. We are planning on opening up a public beta of Balsamiq Mockups 3 at the beginning of February, and starting work on the native editors in earnest right after that (we'll start with iPad and Android versions first).
UX changes in Balsamiq Mockups 3
The main change is that we are finally moving from a one-mockup-per-file to a one-project-per-file model. The new file format is called BMPR (pronounced bumper) and it contains all of the mockups, assets and symbols for a given project. Super-easy to share, and designed for the future (it will also contain mockup revisions, branches, comments, and more).
Mockups for Desktop 3 is able to import and export your existing BMML files, but BMPR is its primary file format. BMPRs are based on sqlLite, which allows us to automatically save every change as you make it.
The editing UX is much more mature: you can open multiple project windows at the same time, and we have adopted a "3 column" UI which is very common for authoring tools: the list of resources is on the left, and properties are on the right. The annoying floating property inspector is finally a thing of the past! 🙂
We also made the full-screen presentation experience much more powerful, and greatly simplified creating and working with Symbols.
In the process, we fixed over 750 issues between bugs and feature requests. The app is noticeably faster and able to handle large projects without much trouble.
Balsamiq Mockups 3 is going public beta on 2/2/2015, stay tuned on our Product Blog for the download link!
The road to native
We soft-launched (or are about to launch) 3 incarnations of this native viewer:
- a native OSX BMML QuickLook plugin: read more and try it out here. We are going to make this work in Yosemite and understand BMPR files soon.
- an HTML+SVG viewer inside of myBalsamiq, in the single mockups view. This will ship publicly in a few weeks.
- a native linux renderer (uses Node.js and Canvas to output bitmap files) to be used by myBalsamiq for creating thumbnails and PDFs. This will replace our current hacked-together and error-prone solution of running a cluster of Mockups for Desktop linux clients.
The viewer supports skins, links, custom icons, assets...the works!
2014 was a good year for myBalsamiq, our beloved web app.
Just like for the Mockups editor itself, most of the work happened behind the scenes. We actually shipped 25 releases of myBalsamiq (all without any downtime of course). We added the ability to specify a secondary billing administrator, we added more events to the mockup-, project- and site-history streams, we added the ability to restore deleted mockups, made several performance updates and added features to help our sales support team extend trials quickly. We also worked extensively with security experts, making your data safer every day.
Behind the scenes, we rearchitected how we save mockups in the database (we migrated the BMML data out of RDS and into S3), we merged custom editor code with our main browser-based Flash editor, started using Docker and Vagrant to develop and deploy different components of our web app, made the app work with our new Buy Page, gave our administrator UI a new look and feel and started React-ifying the front-end code.
2015 will be the year in which we finally start investing more in myBalsamiq. By the spring, we should have 3 full-time developers on it (incredibly, we've only had Luis work on myB full-time until now).
The focus for 2015 for myBalsamiq is to integrate the B3 editor (trickier than it sounds), to offer yearly subscription plans, and to revamp the UI to make it much faster and streamlined (moving to React). This will also help us simplify the server-side code, which will finally start having some real JSON APIs. You just wait, it will be great. 🙂
In 2014 we simplified our plugin business by discontinuing two low-performing products, which ended up being less painful than we expected.
In 2015 we will continue to work on streamlining Mockups for Confluence and JIRA, by moving to the Atlassian Connect architecture and trying to migrate as many of our customers to Atlassian Marketplace as possible.
Mockups for Google Drive remains our best-kept-secret, which makes it the ideal test-bed for new and exciting things. In 2014 Mockups for Google Drive was the first product to adopt the BMPR file format, the first plugin to fully support Symbols, and the first to get real-time collaboration in the editor! In 2015 it will also be the first to offer Stripe-based subscriptions (the final step in migrating all of our payment processing to Stripe), followed by myBalsamiq.
For 2015, our plans are to bring Balsamiq Mockups 3 to all of our plugins...and we will finally have feature parity between all of our product versions!
Automated testing continues to be a very important part of our development process, allowing us to confidently deliver high-quality releases in a short amount of time.
Our main growth area for 2014 was around security testing. We have learned a ton and put it all in practice, with the help of some security researchers who wrote to our email@example.com address.
Keeping your data safe is a never-ending effort, but one we enjoy doing. We cannot go into too many details, but rest assured that your data is even safer now.
We continue to write new tests as new features are developed, and continue to make sure our testing bots run smoothly and quickly.
Operations is another of those areas that "is never done", but that we enjoy nonetheless. 🙂
In 2014, we quickly dealt with both the Heartbleed and Shellshock vulnerabilities. We upgraded our build machine, streamlined our AWS usage and even created our own private Docker registry.
We are very proud of our uptime reports: our websites pretty much never go down (yay for static sites on S3!), and myBalsamiq had 99.97% uptime (not bad, but we want to do even better in 2015!).
We improved how we build our static websites, swapping our Hammer workflow with one based on grunt. We also put balsamiq.com, media.balsamiq.com and uxapprentice.com behind a CDN, which makes them fast all over the world.
- We created The High Five page to give recognition to people who do something awesome.
- We set up a bunch of redirects for old broken links.
- We created an "active project counter" for the myBalsamiq home page: we host over 116,000 projects right now!
- We updated our AdWords tracking code, and published a few landing pages.
- We created short help.balsamiq.com URLs for common help articles.
- We revamped our Customers page with a chart that's always up-to-date. Did you know that we've sold Mockups over 350,000 times so far?
- We updated the copy on balsamiq.it, our italian-language mini-site.
- We added a nice completion certificate to UX Apprentice, and worked on making it possible to localize it.
- We published 6 blog posts on our UX blog:
- Improving the Experience of Our Support Website
- Behind the Scenes of Our Documentation Process
- Mockups Tips for Getting Unstuck
- Creating Project Templates and Examples for Polished UX and Bootstrap Projects
- Using Balsamiq Mockups with Pattern Libraries and Frameworks
- The first wireframes are "version 3"
- We published 7 posts on the Life @ Balsamiq blog:
- We published 8 posts on the Champions blog:
- Jon Matthews on Using Mockups to Clarify Your Ideas
- Dan Olsen on Becoming a Lean Product Ninja
- Sean Rosensteel on the Journey from v1 to v2
- Nick Pettit on Learning for Life
- Fred Schebesta on the Risks and Rewards of Innovation
- Mike Kulakov Shares His Mockups Tips and Tricks
- FHI360: Mockups Making a Difference in HIV Prevention
- John McGarvey on Why Writers Should Wireframe Too
- We kept the docs up-to-date, and added a few articles:
- We re-arranged and simplified our Sales FAQs, a monumental effort.
- We completely rebuilt our Buy Page, turning it into a React-powered single-page application. The shopping cart is all within our website, with a fancy automatic lookup of US ZIP codes thanks to a public US Postal Service API, and payments are processed by Stripe. We said goodbye to E-junkie and PayPal...you served us well, thank you.
In 2015, among other things, we plan on switching balsamiq.com to be HTTPS-only: the GOOG says it's time.
Admin, Finance and More
The main focus of our admin team in 2014 was to implement our new let's compete locally on benefits policy across our different geographical locations. For our LLC, this meant switching to a new 401(k) provider, new medical benefits plans that also cover family members and a new life and disability insurance. Similar improvements are about to kick off for our Italian, French and German employees.
Other than that, we worked on the many little and big projects required to make a distributed micro-multinational work smoothly: we streamlined how we work with our accountants and payroll providers, we kept up with our local tax registrations, set up a new company nexus in Utah, we revamped our expense reimbursement forms, we updated our liability insurance and passed our PCI compliance audit, we learned about COPPA and made some changes to make sure we comply with it, we improved how we do international wire transfers, updated our transfer-price documentation, organized an amazing company retreat and several mini-retreat and get-togethers. We also formalized a bit how we organize retreats and picked a location for our 2015 company retreat: we rented a small castle in the Loire Valley in France at the beginning of June! 🙂
We also upped our contributions to our Donations (now 3% of profits) and Profit Sharing programs (now 15% of profits), trained in first-aid and fire-fighting for office safety, updated our office safety compliance documentation, rented another garage, made business cards for everyone, and welcomed Francesca to the Balsamiq family!
We also invested part of our cash reserves, finally putting our money to work.
We continued to improve our Company Handbook, and we'll be sharing more of it in 2015. For now, I just want to mention three new policies we started in 2014 that are working out really well:
- We started to have quarterly 1-1 catch-up meetings between each employee and myself. The goal of these meetings is to take a step back and think more long-term than what we usually do.
- We started a Professional Development program: we encourage each of us to take half a day each week during regular work hours to learn something new or improve something we already know.
- We started a Time Off to Exercise program: we encourage each of us to take half a day each week during regular work hours to do some physical exercise.
On the financial side, we created an internal dashboard to help us track sales. Below are a few of the charts for 2014.
Here you can see revenue growing nicely, even if we haven't focused on it. Note that these numbers are not 100% accurate, but pretty close:
Here's a count of transactions: we're handling about 10,000 transactions each month these days...not too shabby! 🙂
Here's a chart showing where our customers are. Australia is over-represented because of our Atlassian Marketplace sales, which we don't break down:
Here you can see that Desktop sales have slowed down while myBalsamiq sales just keep growing (as expected). Plugins are pretty steady:
Here's another chart, showing how revenue is gradually migrating from Desktop to SaaS, as expected:
We are at about $370,000 in revenue per employee, which is high. We plan on hiring one or two programmers in 2015, which will help us go even faster. Interested?
Conferences, Interviews and Press Mentions
We attended the following conferences:
- Clojure eXchange 2014, London
- Microservices Meetup, Amsterdam
- Enterprise UX Meetup, San Francisco
- Business of Software 2014, Boston
- JS Conf 2014, Berlin
- Atlassian Summit, San Jose
- JS MVC Meetup, Amsterdam
- AtlasCamp, Berlin
- JSDay, Verona
- You in UX Web Conference
- 99u Conference, NYC
- React 2014, London
- WebRTC meetup, Amsterdam
- Joy of Coding 2014, Rotterdam
- Interaction_14, Amsterdam
- Strange Loop 2014, St.Louis
- Leon spoke at a HCI class at Purdue University (video)
My interview for the ConversionAid podcast was surprisingly popular, here's the link: How Balsamiq Bootstrapped Its Way Into a $6M Business.
Press mentions around the web are too many to count, but here's a little sample of some of the most interesting articles:
- Balsamiq 101: Wireframe quickly & effectively
- How do we use Asana, Balsamiq and Google Docs to manage BizTalk360 development, test and release process
- Product Development Using Asana and Balsamiq
- TheNextWeb: 4 steps to starting a Web business without knowing a thing about coding
- 18 Tools To Improve Your Marketing Campaign’s Success
This year is going to rock: 2014 was for building, 2015 is for shipping! 🙂
As always, things will take longer than expected, there will be ups and there will be downs, and we'll learn A TON in the process. Bring it on, we're ready! 🙂
Thanks for reading this super-long post.
If anything in this post surprised you or sparked your interest, don't be shy and add a comment! I'd love to answer any questions you might have.
We hope 2015 brings you and your families health, happiness and success.