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

Pierce & Ward’s Secret Sources, Business Advice You Can’t Afford to Miss, and More

Friday, April 19, 2024

View in your browser | Update your preferences ADPro “Minimalism is not my strong suit.” So says Emma Roberts, the muse behind AD's May cover story. (Celebrities—they're just like us!)

World Press Photo Contest, Speedometer 3.0, Anchor Position, Sliding Frame, Meta Llama 3

Friday, April 19, 2024

The 5 best design links, every day. Curated by a selection of great editors. Email not displaying properly? View browser version. Sidebar April 19 2024 The World Press Photo Contest Documents War,

Car UX, DevTools Tips, CSS Patterns, iOS404, Internet Cables

Thursday, April 18, 2024

The 5 best design links, every day. Curated by a selection of great editors. Email not displaying properly? View browser version. Sidebar April 18 2024 Steering the future: a new vision for car UX

Big Tents, Pistachio Palettes, and Other Late-Breaking Milan Discoveries

Wednesday, April 17, 2024

View in your browser | Update your preferences We've had a remodel! From now on, you'll be hearing from AD PRO in your inbox twice a week—once with a deep dive into trends to watch and subjects

163 / Dieter Rams inspired Framer components, America's national parks and more free resources…

Wednesday, April 17, 2024

Product Disrupt Logo Product Disrupt Half-Monthly Apr 2024 • Part 1 View in browser Welcome to Issue 163! I'm comfortable talking to a human on camera, but talking at the camera, not so much. The

Logo System, BCWA Identity, War Robots, 84—24, 19th-Century Atlas

Wednesday, April 17, 2024

The 5 best design links, every day. Curated by a selection of great editors. Email not displaying properly? View browser version. Sidebar April 17 2024 Logo System: Explore 400+ logo designs logosystem

Emma Roberts's Home: AD100 Firm Pierce & Ward Share Their Secret Sources

Tuesday, April 16, 2024

Plus, the best exterior house colors View in your browser | Update your preferences Architectural Digest AD PRO Logo exterior of two residential buildings painted with blue trim with a brick patio and

#452: Design Workflow

Tuesday, April 16, 2024

How to choose the right idea, navigate difficult conversations and communicate design. Issue #452 • Apr 16, 2024 • View in the browser Smashing Newsletter Iyi akşamlar Smashing Friends, Design workflow

Mario & Pareto, faces.js, Sleep vs Blog, Dark Mode, DOM Folding

Tuesday, April 16, 2024

The 5 best design links, every day. Curated by a selection of great editors. Email not displaying properly? View browser version. Sidebar April 16 2024 Mario meets Pareto mayerowitz.io Discover how to

Gap, Teenagers, Artistic Intelligence, Should Designers Code, CSS in RSCs

Tuesday, April 16, 2024

The 5 best design links, every day. Curated by a selection of great editors. Email not displaying properly? View browser version. Sidebar April 15 2024 Gap is the new Margin frontendmasters.com In 2020