The year was 2008. After spending 3 years as an interaction designer in a telecom startup I felt lost.
Doing the same routine job over and over again and seeing little influence on the product made me doubt I’m ever capable of creating something worthy.
I spent most of my “spare” time (that’s something between late conference calls and sleeping) reading design books and thinking about possible ways to apply my newly gained knowledge to solving practical problems. Some of these thoughts ended up in (rather lame) articles about interaction design, design tools and other things a naïve 27-year old designer wanted to share with the world.
By pure accident (and many things in our world happen by accident) one of the articles got the attention of Oleg, a Ukrainian developer who had dropped his job as a software developer and had been looking for new ventures.
We talked about shareware, its problems, a lack of really good apps and agreed on creating a small app to make the world better and earn a couple of bucks in the process…
A few months earlier I got my first Mac, a used G4 Mac Mini with 512 MB RAM and a painfully slow 80 GB hard drive.
Buying it cost me a significant part of my savings and didn’t look like a great investment, especially compared to much more affordable PCs…
On the other hand, the Mini turned out great for designing things, browsing The Internets and listening to music.
The software quality and its creators’ attention to details made me envious.
Everything worked great until I got the low disk space warning. No big deal, I got an external drive and moved cold data there, but it didn’t solve the problem. Soon I had a bunch of USB hubs for external drives alone. And there didn’t seem to be an easy way to clean up this mess…
So why not make a utility to manage disk space on a Mac that looks cool and is easy to use?
I presented the idea to Oleg and he was very sceptical about it, especially as it required buying a Mac and sounded rather nerdy. Anyway, after a few experiments with other concepts we decided to try my disk space visualisation idea to see how well it goes.
So on a cold December in 2008 a product later known as DaisyDisk was born.
My passion for data visualisation made me spend many sleepless nights in search for a good way to represent the contents of a hard drive. When talking about static data, it’s easy to cite Tufte or other smart books and cite fancy articles which have little in common of what your real users will look at.
After a few attempts we ended up with Sunburst, a visualisation method, invented by John Stasko, Max Howell and Steffen Gerlach. Even though all three tried to apply this kind of visualisation to a hard drive’s contents, it didn’t see much use in commercial software.
“Come on, it’s a natural choice.”
I really wish someone could have told me that 11 years ago. But in 2008 I’d just found Scanner and some forks of Max’s Filelight. I knew nothing about John’s experiments and most of my data visualisation knowledge has been related to putting some scientific multidimensional yada-yada on paper. Wrapping icicles around a central circle was the last thing I would have thought about.
Ok, let’s create a dynamic Sunburst map and make a product based on it. It’s so simple!
The very first experiments not only revealed that building a visualisation could be tricky, but testing our map algorithm on real world data sets almost always resulted in a mess.
And the mess didn’t mix well with our idea of nice and user friendly software…
If you take a look at the first internal betas of DaisyDisk (we tried different names: DiskScanner, DiskSpace and so on until Oleg suggested “DaisyDisk” due to the map’s similarity to a field daisy) you wouldn’t believe it has something in common with the current product: it was rough, sketchy and extremely buggy.
As time passed by, Oleg cleaned up the code and we updated the UI with the disk space map on the left and the labels on the right.
That scheme worked really well as it allowed one to see disk space in different dimensions: a visual map, a sorted list or both. An addition of a breadcrumb control at the top helped to easily navigate the deepest areas of the file system.
The map was significantly reworked and not only got reasonable petal sorting, but a color wheel-based colouring where petals of the same level inherit the color hues from its parent which greatly improved visual navigation.
Now the map’s design looks obvious:
- It has 5 main rings as this is the optimal number for real-world data
- 5 small external rings make finding deeply hidden data much easier without cluttering the rest of the map
- All rings have the same size, variable size only works on paper
- No gaps between the rings
- Size-based sorting is a must: it significantly improves the visual scanning speed
- Consistent hue-based coloring: otherwise you’ll get lost in a minute and your map will look different with each new scan
- There must be thresholds
- And you must be able to display lots of tiny objects taking significant space…
But it’s only “obvious” because we literally spent months designing, redesigning and testing new prototypes over and over again…
Most of my “ingenious” ideas didn’t survive actual testing and numerous “improvements” to the map were tested and discarded as useless
We experimented with interface animations since day one and the “blossom” transition you see while browsing the map turned out to be the best way to create a visual link between different levels of the folders.
The final animation, suggested by Oleg, was not only more elegant and subtle than other alternatives, but quickly became DaisyDisk’s signature.
We loved the app and spent countless nights polishing little details and making it better with each iteration. However, people around did not share our optimism about the project’s future.
I presented the early version of DaisyDisk to my friends and colleagues and most of them assured me it looks nice, but doesn’t solve any real problems to make a purchase… so screw it!
The year was 2009. I quit my interaction design job and concentrated on making DaisyDisk the dream product I always wanted to create.
Working as part of a small indie team really affects the way you look at things. There’s no one else to blame for your failures, but no one can take away your victory as well. The sky is the limit and each and every decision costs you money. Your own money.
DaisyDisk version 1 didn’t have any significant commercial success and I had to rely on freelance projects to make a living.
Leaving a well-paid job for a project that doesn’t earn you enough to buy food sounds like a stupid idea, but it didn’t stop us 10 years ago.
We stayed hungry and foolish…
Press and bloggers preferred to ignore a young no-name team’s product and mentions on Apple.com looked cool without leading to actual sales.
Things changed in 2011 when DaisyDisk 2 debuted in the Mac App Store and quickly became one of its bestsellers. Even though the majority of indie Mac developers were very sceptical about the new App Store and its steep commission, it worked great for us, quickly generating the majority of the revenue.
Maintaining two versions of the product led to some technical difficulties, but we decided to let our customers migrate from the Mac App Store to a standalone version free of charge.
A customer is (almost) always right.
Being a customer-focused company could be a hard choice, especially if you’re a small team and see how money is made in software: you make crap, invest in marketing, silence negative reviewers, pay to get press praises and keep the costs low.
But it was our company and we wanted to provide the best experience possible.
A few examples:
DaisyDisk had a demo version that never expired.
You could use the app as long as you wish if you don’t mind a couple or “Nag” screens or need an in-app file deletion (you can delete the files from Finder). Even if you cannot afford the app, you may still legally use it free of charge. And there have been countless legal ways of getting the app with a significant discount or without paying a dime.
No “one single copy per Mac”, no “call to activate”, no thousands of “you can’t do this”, no bullshit. You paid us money — you use the app on all the Macs you own. Just don’t be a jerk.
We offered free technical support to both customers and users. Me and Oleg have personally replied the emails for many years and you could always get a response from the app’s actual developers, no matter if you made a purchase or not.
It’s not some freaky registration-requiring/robot-checking form hidden in the depths of the site: there’s a simple in-app feedback component and the whole team’s Skype IDs are available on the product’s page.
Remember, that we’re talking about a $10 utility. Nowadays you are unlikely to get a reply when purchasing a $100 product :(
The company had a very forgiving anti-piracy policy. DaisyDisk continued to work even after finding compromised keys and we never put “protection” above customer experience.
We created an account on one of the popular warez resources and started honest discussion about app piracy, its effects on developers and the product itself. So, instead of wasting money on “piracy prevention” or playing cat and mouse games with software crackers we developed good relations with the community and some of these folks became our customers and supporters.
Upgrade and store migration policy is more than fair: you’re not “punished” for late upgrades and we never forced anyone to update their version of the app.
There’s more: you could have purchased DaisyDisk 3 for your brand new MacBook Pro and receive a free, complementary license for DaisyDisk 1 to run on your PPC Mac Mini.
Planned hardware obsolesce sucks, but planned software obsolesce has no excuses. Running any Mac with OS X 10.5+? We got you covered.
As a result, we didn’t have to spend money or marketing or “sponsor” positive press reviews. We surely earned less than we could have by doing “normal” business, but we got enough for a decent living and didn’t have to wait for the nearest food shop discounts in order to have two meals a day.
The eye (in the sky)
The famous “eye” icon was designed by my colleague, Ekaterina Prokofieva back in 2008.
I wanted the app’s icon to reflect its sci-fi feel, so a UFO-like, circular object with a colorful map sounded like a good idea to me. But after a few sketches Ekaterina came up with the brilliant idea of a futuristic eye.
Oleg and I had some concerns about having an eye-like icon in the Dock: it could have scared some people off, but our further experiments did not confirm this theory.
Thus the eye. Not just an eye, the hi-tech eye. And its material and look reflected the design changes of Apple’s own hardware: plastic to aluminium.
In the middle there’s an unofficial DaisyDisk 1.3.6 MacHeist app icon by Wolfgang Bartelme. Wolfgang didn’t like the default plastic icon and suggested one of his own. This icon was never used anywhere else, so only MacHeist folks have seen it.
The icon of DaisyDisk 2 had a clearly visible grain. It was also carefully disassembled and turned into a living scan progress indicator as well as an entertaining effect in the About window. The app’s icon turned from a merely static image into a live part of the app’s experience.
In order to get this particular icon we had to wait several months. The result of hard work, tension and countless fixes, it stayed true to DaisyDisk’s version 3 design: solid and brutal.
The app icon is part of a system, as “the eye” may appear in different contexts and have multiple “personalities”: normal, suggesting upgrade, cracked (hint: the text is not random), demo and purchased.
DaisyDisk version’s 4 app icon is more of a circular screen than an eye. It looks natural as a scan progress indicator and 3 circles are also part of the updated “Collector’s” design.
The new look should have been supported by the company’s other apps like DaisyMonitor, a DaisyDisk’s companion that was never released.
The tiny details
DaisyDisk’s design process was anything but rational: we worked out a lot of tiny details which could have been easily skipped, but created a subtle feel of polish and care.
For example, DaisyDisk has just one single modal dialog reminding you that scan results will be lost if you close the app:
Let’s have a look at the disk list
- The mounted disk list, usage gauges and icons are updated in real time: the data are always correct and relevant.
- Volumes of the same disk are always grouped.
- DaisyDisk knows when it’s best to scan disks in parallel or wait.
- Disk capacity is not 100% accurate, but often reflects its marketed capacity.
- There’s a special algorithm for forming lines like “encrypted Time Machine volume”.
- Disk usage gauge color uses a tricky algorithm that goes far beyond green-yellow-red.
- Unless grey, the free space gauge inherits the color from the gauge.
Now the scan results:
- Scans performed with administrator rights have clear visual clues so they’re not confused with “normal” scans.
- DaisyDisk displays space actually taken by the file (won’t dive into details here, it could be messy).
- Files and folders on the map are clearly distinguishable.
- There are virtual objects like “large collections of tiny files”.
- Gigabytes, megabytes and kilobytes are clearly visually distinguishable and you won’t easily make a mistake with order of magnitude.
- You may preview full names of files and folders with any name, even something like “damn its the last fix i promise final re final 2 monday finalfinal.pdf”.
- Invisible files are visible, as are zero-sized files (they’re marked as just 0 without bytes or kilobytes).
- Pointing a sector highlights a corresponding list item and vice versa.
- And the highlight animation is crafted to play fine with people who cannot stop the mouse pointer for a second.
- The app won’t let you “accidentally” delete a system-critical folder, one has to be a really resourceful idiot to trick the algorithm.
- DaisyDisk uses a special algorithm for removing “stuck” files.
- When you delete at least 5 gigabytes of files, DaisyDisk tells you a small fact like “This data could take more than 2.5 packs of DVD-Rs”: some customers had fun altering the messages and tweeting them.
There are also a few easter eggs you could have discovered (or missed) yourself.
Every new version of DaisyDisk became a solid improvement over its predecessor, receiving an updated UI to match the latest version of OS X as well as a new set of features. With some effort on our side these new features didn’t bloat the product. Quite the contrary, DaisyDisk became cleaner and easier to use with each update.
Year 2008 • DaisyDisk zero
Fortunately you’ve never seen it :) The app’s UI resonated with its users’ mental model, but the visual design and overall UX were far from perfection.
Year 2009 • DaisyDisk 1
The very first public release of the app.
A single window with a translucent HUD, a few subtle animations, a ripple effect and QuickLook that required using undocumented API. Version 1.5 featured an updated, “unibody” design to match new Apple’s hardware plus Oleg’s new disk analysis engine.
Year 2011 • DaisyDisk 2
A brand new, opaque, hardware-inspired design with decluttered disk plates, simultaneous disk scan and a long-awaited in-app deletion.
Scanning multiple disks at once is really handy for IT professionals, but trying to scan multiple volumes on the same hard drive simultaneously would only result in time loss as the drive’s head would have to jump back and forward. DaisyDisk recognised the user’s attempt to perform a parallel scan of multiple volumes and used smart scheduling in order to speed up the process. UI vs UX, huh?
Finally, a file deletion dialog…
Why waiting so long for a simple file deletion dialog?
That’s the question I’ve been answering for some time. Other apps got it simple: just put the [Delete…] item into the menu and let Finder do the job.
Meh… Come on, we haven’t spent years in sweat and tears polishing the experience just to apply the easiest solution.
We wanted to make real in-app deletion with the best UX possible and in order to do that we had to control the whole experience. It’s easier said than done.
How do you mark files for deletion? Can you select multiple files? What if you delete the wrong file? How can you be sure the files are deleted? There are too many ifs…
I spent weeks searching for a right solution until one of my pals said a magical word, “petals”.
Petals? That’s ingenious! The disk space map is a daisy, the folders are petals and one may tear off the petals and collect them! So in order to delete a file or a folder you just drag and drop it into The Collector to mark for deletion. “Tear” and “heal” animations required some programming efforts, but we nailed it.
Collected items remain intact until you hit [Delete]. You can always preview any item or remove it from the list. You always knew how much free space you’re gonna get. Magic!
Designing The Collector (or “thermometer” or “dick” as some people referred to it) has taken some time. It’s a multi-state component that should take quite a few “what ifs” into account:
- what if the volume is read-only?
- what if you cannot delete the files?
- what if you need to stop the deletion?
- what if the user tries to delete one of the system files?
Each one required designing multiple scenarios, checking edge cases, applying fixes and polish…
My favourite state is the non-modal confirmation: there’s no stupid “Are you sure you want to Delete the files? [Yes]/[No]” dialog, but a 5-second countdown to let you fix the mistake. Enough to prevent most accidental file deletions, but not 100% idiot-proof. Life is pain :(
A small touch: the About DaisyDisk window features an animated icon along with a movie titles-like list of contributors.
We’re thankful to each person who helped us make great software and listing these people in a plain text file hidden somewhere in the Resources folder would be a sign of disrespect.
These people are stars, so grab your popcorn, lean back and enjoy…
Year 2013 •DaisyDisk 3
Another major engine update and a facelift to head the latest UI trends.
Redesigning the app’s UI for retina displays is a tricky task. It’s especially tricky if you’re the first one doing it: getting used to points instead of pixels, recreating each resource anew and double/triple-checking everything.
Everything had to be done in Photoshop (it was 2013), my least favourite UI design tool. I haven’t touched Photoshop since then.
The app has completely turned dark: the title bars, the buttons, and all other GUI elements are custom-designed and heavily tweaked.
50 shades of grey, anyone? There are more details packed than ever. The app got a serious, pro and somewhat aggressive look.
Skeuomorphic design at its best, huh.
Year 2015 •DaisyDisk 4 • EOF
Version 4 became a turning point for the product: a brand new look, tons of under-the-hood changes, a 10x faster scan engine.
The app had been burned to the ground and created anew. It no longer aggressively stands out, but tries to blend with the environment of a newly introduced Mac OS X 10.10 Yosemite.
My first attempts to combine the aesthetics of iOS and Mac OS X often resulted in some weird looking UIs.
Adjusting one’s mind from focusing on microtextures and highlights to simple shapes and subtle changes has taken some time, but the results were worth the wait.
Using Sketch app for UI design has greatly reduced design iteration time even though it kept crashing 10 times a day.
Trading Photoshop for Sketch allowed us reduce the internal graphics’ size by 50% (we replaced most bitmaps with vector graphics), quite useful for a disk space saving app.
Unfortunately, the redesign and engine update have taken too long and some interesting features like cloud scan or moving/offloading files didn’t make it to the final product.
DaisyDisk 4.0 was released in September, 2015.
In December the app was featured in Apple’s “Best of 2015” Mac App Store list, just like DaisyDisk 3 in 2013 and DaisyDisk 2 in 2011.
The press and Mac community loved the update, sales skyrocketed, but the invisible tension within the team had crossed a point of no return. We were no longer a small, indie group of think-alikes trying to make the best Mac app possible…
In 2015, 7 years after starting my initial work on DaisyDisk, I left the company and concentrated on building other products and helping startups.
But that’s a completely different story…