Balsamiq’s Internal Tools, and Why We Built Them

The latest news from Balsamiq:
A behind the scenes look at some of the tools we built to help Balsamiq run smoothly, and the motivations behind building them.
Trouble viewing?
View it online.
Building your own internal tools is almost always a bad decision. Almost. 😉
As a startup, your time and resources are very limited, so you should focus 100% of your attention on your own product. You should work on what makes your solution valuable to your customers, and not spend time rebuilding any software that you can buy off the shelf.

In principle, this strategy makes perfect sense. In practice, as it often happens, the strategy is: it depends. 😊  

Over the years, we’ve built several internal tools at Balsamiq. Today I’ll show you some of them, and tell you why we built them.
 

Olio - our CRM solution

For the first 2 years of Balsamiq’s life, our CRM consisted of a script on our website that created license keys, a report from our payment processor, a perl script to manipulate it a bit, and a large Excel spreadsheet to collect it all. We affectionately called this spreadsheet “the beans”. đŸ˜Š

As sales kept growing, I started looking around for a more scalable solution. At this point Balsamiq was still a tiny company of about 4 employees, but we were selling our little desktop app over 10,000 times a month.

This was 2010, and the software industry had already moved on to SaaS, so all the CRMs I found online were optimized for subscription businesses. To find something that could handle over 10k transactions a month, I looked at software used by supermarkets and fast food restaurants!

As you can imagine, there wasn’t much ready-made on the market. The closest thing I found was a combination of Salesforce + a number of very expensive plugins + large consulting fees to set them all up.

We couldn’t afford it, and, frankly, it looked terrible. Remember, Stripe didn’t even exist at the time.

So, my 5th hire (hi, Paolo!), was brought on board to build our own custom license key generation + customer database, which we named “Olio” (Italian for oil) …because it goes with our condiment theme, and because Olio is what makes the Balsamiq engine run smoothly. đŸ˜Š
 

Olio is over 10 years old now. Over the years it was improved to handle subscriptions as well as licenses, integrating first with PinPayments, and then with Stripe.

Several Balsamiq employees have worked on Olio over the years, and rarely full-time. It’s been fully rebuilt once, and it will probably be rebuilt again soon. It’s not the prettiest, nor the fastest, but it does its very important job for us, quietly in the background.

It now has over 1 MILLION transactions in its database. Each month, it processes an average of over $600,000 worth of transactions, and only costs around $450 to run, mostly in database costs.

You could say the main reason we built it was because nothing like it existed on the market.
 

Acetaia, our project management solution

At the end of 2016, with Balsamiq now 8 years old and 25-people strong, it became obvious that we needed a tool to keep track of all of the projects we were working on.

As this is a common problem to have, I was confident I could find a solution online. I looked into Asana, Notion, Basecamp, and others. I even trialed some of them for a while.

As I was trying them out, it became apparent to me that none of them was designed for a company like ours: remote-first, geographically distributed, flat, in which projects just appeared organically, and project teams were assembled from the bottom up.

What we needed most was a tool that showed us what each person was working on, without adding bureaucracy around it.

We also wanted a tool that could grow with us: not a tool that forced us to work in a certain way, but one that we could evolve to accommodate the way we work.

I prototyped something in a few days, and Acetaia was born.
 

An Acetaia, in Italian, is a balsamic vinegar cellar, it’s where balsamic is made. đŸ˜Š

It has helped us coordinate work on around 2,000 projects in the last 3 years, and costs less than $10/month to run. Maintenance is minimal, and we’ve improved it to follow our ever-evolving way to work with little effort.

Again, nothing quite like Acetaia existed on the market, but the main reason we built it was because we wanted full control over its features and roadmap.
 

CloudAuth, RTC, LBC - born out of costly mistakes

In three other occasions, we originally DID find something suitable in the marketplace, and decided to buy instead of building.

The first example was PubNub - a real-time collaboration solution to enable co-editing in our apps. We subscribed all the way back in 2013 , and it cost around $200/month to run. As our customer base grew, it grew to a still manageable $400/month. That all changed at the end of 2017. PubNub decided to change their pricing, and we were told our subscription was going to start costing around $1,600 a month! A 4x increase overnight. WHA??? Obviously, we immediately got on a call with them, and at the same time started looking for a replacement. We worked out a deal that made the offramp acceptable for us, and now run our own RTC cluster (based on socket.io), for about $400/month.

A similar story happened with Auth0 - we used it for Balsamiq Cloud to manage authentication, and at first it didn’t cost us anything, we were under their ‘freemium’ threshold for a while. Only 5 months after shipping, we passed that threshold, and we were slapped with an $850/month bill! Again, WHA???? 😊 We immediately started working on our own solution, which is now part of the app: we have full control over it, and it costs us very little to run.

Another similar story happened with Logmatic - a log-collecting solution we used for a few years. In this case the problem was not that they raised their price on us, but, sadly, they got acquired by Okta, which immediately forced us to migrate to their own, more complicated and expensive solution. Instead, we migrated to an in-house ELK Stack, which we now run for about $500/month.
 

The main reason for building all these tools was simple: managing costs.
 

Schedulinator

Lately, a new reason to build internal tools has emerged, and that is data privacy.

The GDPR legislation and the data breach scandals of the last few years have opened the world’s eyes to how much our personal data is shared and traded by businesses without us end-users even knowing about it.

How much the general population actually cares about it is still up for debate, but we decided to take it very seriously, and think it will even become a competitive factor for B2B companies in the future.

So lately we took a good look at our list of 3rd party vendors that process our customers' Personal Identifiable Information, and have actively started working on shrinking it.

One example is scheduling software. For years we used YouCanBook.me to schedule meetings with partners or customers. Recently one of our employees started evaluating Calendly because it offered a better booking UX for people. We started debating internally what to do: use both vendors (and thus have both listed in our Privacy Policy), or try to standardize on just one, knowing that we weren’t entirely happy with either of them, or…what else?

So I did a little internal user research on what features we actually needed, did some technical research on how hard this would be to build and run, did some wireframes, and voilĂ , Schedulinator 3000! was born. I’m good at naming, huh? đŸ˜‰
 
It doesn’t do everything those professional tools do, but it does everything we need, it’s super-easy to use, it costs pennies to run, and it only took about 2 weeks of work to build.

Most importantly, it doesn’t send your data to any third party vendor (other than AWS, which cannot be avoided these days), so now we get to have an even shorter Privacy Policy! Everyone* wins!

*Well, everyone except for our friends at YouCanBook.me and Calendly. 😞 I actually have a theory brewing that the push towards more data privacy could spell big trouble for smaller software vendors… 😬 let me know if you’d like me to discuss this in a future newsletter!
 

Other reasons for building internal tools

Building internal tools offers more than just full control over features, costs, and data privacy.

It’s a great way to experiment with new technologies (Schedulinator is fully serverless, for instance), it provides a wonderfully safe training ground for new hires, and it’s a great distraction for someone who wants to work on something different for a while - CEO included! 😉

If you open-source some of your internal tools, they can even become an interesting source of marketing.
 

When NOT to build

As I said at the beginning, your default strategy should be NOT to build. You must resist the sweet song of the NIH mermaids at all costs. đŸ˜Š

If what you find on the market is acceptable, customizable enough to suit your needs, backed by a company with a good reputation, and not too expensive, by all means buy it!

If you expect a high maintenance cost, or if it’s a technology that would be too hard or costly for you to replicate, enter your credit card info and hit that “subscribe” button!  đŸ˜Š

Just be careful who you buy from…switching later is very expensive.
 

In conclusion

We build internal tools in order to have full control over their features, cost, and privacy. We do it because it’s educational and fun, and sometimes we do it because we’re forced to by greedy freemium plans or acquisitions.

If you build B2B tools, keep this in mind: you’re not just competing with other businesses, but also with your customers internal tools. đŸ˜…

What happened at Balsamiq in December

We continue to improve our products…it’s what we do best! 😊 Here’s a summary of what we’ve done in the last few months.

We finally said goodbye to our vintage web app myBalsamiq. It was great to see many customers migrate to Balsamiq Cloud, which is growing at a very impressive rate.

On our website, we moved our blog from a subdomain to a subfolder. It sounds easy, but it wasn’t. We’re happy to have it all under one domain now, check it out at https://balsamiq.com/company/news/

As per our tradition, at this time of the year we do our “3% of profits” donations. This year we donated $52,800 to various worthy causes. This makes us SO happy.

UX/UI links for December

 
The Lawn Mower Eyetracking Pattern for Scanning Comparison Tables
“If the comparison table content is not informative and thoughtfully laid out, it can disrupt the lawn mower pattern and make users’ comparison tasks more difficult.”
-Kate Moran
50+ Practical UI/UX Design Tips
“Need to display some numbers on a dashboard? Try making them big and bold, with a smaller, lighter uppercase label. An easy, clear, and stylish treatment!”
-Erik D. Kennedy
Contextual Inquiry: Inspire Design by Observing and Interviewing Users in Their Context
“One of the greatest strengths of this methodology is that you get to see things you wouldn’t anticipate and uncover low-level details that have become habitual and invisible.”
-Kim Salazar
3 Ways Visualization Drives Collaboration, Agility and Inclusion
“Collaborative visualization quickly extracts different assumptions out of your and your colleagues’ heads.”
-Jeff Gothelf
Old Is Solid; New Gets Talked About
“There are times where it’s fun to try new stuff and tell people about it, and there’s times to reach for the technology you know so you can get stuff done.”
-Kilian Valkhof

That's it for this month!

So, what’s your stance on internal tools? What have you built, and why? We’re planning on publishing this on our website soon, and we’d love to include a few quotes from you, our inner circle.

See you next month, with our traditional and very popular “looking back” newsletter, with our 2020 revenue numbers! đŸ˜Š
Peldi for the Balsamiq Team
Tweet
Instagram
Website
Email Balsamiq
View in Browser  |  Update Your Preferences  |  Unsubscribe

Older messages

Balsamiq's Advice for Starting a Career in UX

Friday, December 4, 2020

The state of UX careers and tips for getting into it. The latest news from Balsamiq: The state of UX careers and tips for getting into it. Trouble viewing? View it online. UX isn't just about

How Your Requests Make Balsamiq Better

Sunday, November 1, 2020

How our customers' voices drive our product decisions The latest news from Balsamiq: How our customers' voices drive our product decisions Trouble viewing? View it online. If you've ever

How We Use the Whole Product Concept at Balsamiq

Sunday, November 1, 2020

The latest news from Balsamiq: A mental hack for founders, to convince yourselves to work on marketing projects instead of just coding all the time! Trouble viewing? View it online. “Winning the Whole

How we Prioritize Product Work at Balsamiq, Part 1

Sunday, November 1, 2020

A behind-the-scenes look at how we decide to work on product features, bugs, and chores. The latest news from Balsamiq: A behind-the-scenes look at how we decide to work on product features, bugs, and

How we Prioritize Product Work at Balsamiq, Part 2

Sunday, November 1, 2020

How do you decide which bugs, chores and features to work on next? The latest news from Balsamiq: How do you decide which bugs, chores and features to work on next? Trouble viewing? View it online. The

You Might Also Like

Breaking analysis paralysis: a guide to using data in product management

Wednesday, November 27, 2024

How to use data for product management ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Your UI is costing you—here’s how to fix it

Tuesday, November 26, 2024

The Everything Trap ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Sam Cochran Tours a Designer’s Delightful Home

Tuesday, November 26, 2024

View in your browser | Update your preferences ADPro Pizza Party A picture, so the saying goes, tells a thousand words. But images alone can't ever capture the full experience of a home, as I was

#484: Web Forms

Tuesday, November 26, 2024

Live validation UX, form design layout and interaction, placeholders, segmented controls, names, required and optional fields, measuring forms UX. Issue #484 • Nov 26, 2024 • View in the browser

Black Friday ‘24 Sale is here.

Monday, November 25, 2024

Limited to 300 coupon code redemptions only!͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌ ͏‌

2025 planning + one great marketing resource

Monday, November 25, 2024

Short week! Very short newsletter! 2025 planning is upon us... You know what would make it a little easier? A free 1:1 strategy session with us! You'll have the chance at just that by giving your

Accessibility Weekly #424: Prioritizing Web Accessibility Remediation

Monday, November 25, 2024

November 25, 2024 • Issue #424 View this issue online or browse the full issue archive. Featured: Using severity ratings to prioritize web accessibility remediation "So, you've found your

Enrique Allen

Sunday, November 24, 2024

In memory of our friend in the design community ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Behind the Design of Lauren Santo Domingo’s Ski House

Thursday, November 21, 2024

View in your browser | Update your preferences ADPro Peak Style When it comes to clients, says AD100 designer Andre Mellone, “my biggest nightmare is a person who says, 'Carte blanche, do whatever

2025 Interior Design Trends, Revealed

Wednesday, November 20, 2024

View in your browser | Update your preferences ADPro Image may contain: Furniture, Chair, Interior Design, Indoors, Home Decor, and Rug Inside Our Newest Trend Report “Design, like fashion, tries to