Lessons from DropDAV

Dropbox was the first really great way to synchronize files across computers. DropDAV was the first great way to bring Dropbox files into iOS apps.

I built the biggest software business in New Orleans history from my mom’s garage over the course of a few weeks then launched it into a tsunami of good luck (plus some drizzles of bad luck), watching it grow to hundreds of thousands of users and tens of millions of uses, before selling it in 2019.

Apple released the first iPad in 2010, featuring its flagship suite of productivity apps Pages, Numbers, and Keynote. iOS wouldn’t support file transfer between apps for several more years— and this was all so very long before iCloud storage was reliable— so in the beginning users had 3 options to get files into or out of their iPads: connect a USB cable to iTunes, email yourself attachment versions, or via a little known file transfer protocol called WebDAV.

I was an avid Apple customer at the time and I bought an iPad the very first week it was on sale in the Spring on 2010. All through that season, through the summer and into the fall, I felt the pain of the iTunes USB cable transfer dance— and I simply couldn’t feel the pain of the email to self attachment dance because the files were larger than my email provider’s attachment limit. Moving files between iPad and Mac was so annoying that eventually I stopped.

Whatever it was about iPad, the siren’s song was too irresistible and when I picked it back up, going to load the file I wanted to edit into Pages I noticed with fresh eyes the WebDAV Server file transfer option. I’d seen the word before in the options of FTP clients over the years, lending it a vague familiarity that turned into a few hours of research. It was a stateless transfer protocol, a superset of HTTP, and there were open source implementations of the server available to take for a spin. After some fiddling, I got one running and was moving files on/off iPad with just a few taps— wow! this is great!— only problem is, my files weren’t living on a WebDAV server.

Drew Houston launched Dropbox on YCombinator’s Hacker News site in 2007 and I became a user right away. I used it to organize my entire life throughout college, it tirelessly synchronizing my files between the svelte Macbook Air I brought into the world and the powerful iMac that only left my dorm room once a year when it was time to move. I was excited about iPad’s promise of desktop-class productivity in more mobile settings, and for me personally delivering on that promise meant connecting iPad’s amazing new apps to my life’s work living in Dropbox.

The very first lab bench quality version of this was an open source WebDAV server running on an old ubuntu desktop in my mom’s garage, configured to overlap the WebDAV file storage with the location of a third-party Dropbox client written for linux. It took hours to get setup, but it worked ok. My mom had dedicated IP address at home for work— a supreme rarity back in those days— so I was free to use iPad to get at my Dropbox files anywhere I went through this rat’s nest of cobbled together open source projects.

And oh boy did I ever— it was readily apparent magic from the very first time outside of testing I wanted to edit a file from Dropbox and after just a few taps there it was running in Pages on my iPad. I can still feel the grin on my face all these years later. This was obviously the future we were promised and I should figure out how to share this with other people.

The first problem was I couldn’t figure out how to run that third-party Dropbox client for linux multiple times to support multiple accounts on one machine, I just lacked the linux-fu. Which was fine, in hindsight, because I suspect my mom’s home internet service provider would’ve quickly shut off her service for using the amount of bandwidth DropDAV users consumed in the first month after launch— but that’s skipping ahead in the story slightly— plus, the whole idea of the linux Dropbox client was it synchronized your whole Dropbox to the linux machine and that would mean DropDAV would need to re-host 100% of users’ Dropbox data, which would be a total nonstarter from both privacy/security and hosting cost perspectives.

I spent the week after Thanksgiving exhaustively exploring the open source WebDAV server I was using, absolutely infesting the code with debug log statements and strategically deployed errors that crashed with rich payloads of in-flight request data. Once I understood how it handled the request-response cycle, I felt confident I could write a new WebDAV server that instead of making the relevant calls to file system running on the server’s hard disk would make similar calls to the Dropbox API.

At the time I was 21 years old, I’d been child-programming for about 15 years, I’d majored in computer science at Duke University, and a few months prior graduated a year early because I wanted to get out of the classroom to get busy building businesses. Which is all to say, I had zero professional software development experience, not a job, not an internship, not even a classmate in industry I could call up for advice because all my friends were smart enough to stay in school as long as they were welcome there in the Gothic Wonderland. I took you the long way on this fact to emphasize how absolutely clueless I was about reading API documentation, much less at implementing an API client that wouldn’t get me hell-banned by Dropbox’s gumshoe devops team.

I really was learning to build software as I went, which meant the pace of iteration was crucial to my making progress, and thus compiled languages were not an option. I owe an enormous debt to Apache for a dynamic web server that could reload PHP programs practically as quickly as hitting save on the source code file, so I could write some broken code, tap a button on my iPad, see the broken code’s log output and make a guess about a fix before repeating the cycle and testing a new possibility all in just a few seconds. If you’ve never developed commercial-scale software and you’re thinking “okay buddy literally everyone knows computers are fast”, please join in repeating after me in your head now: Dear Apple, it’s 2023, literally everyone knows computers are fast why in the good lord’s name are you still requiring software developers use a compiled language that’s really only practicable in your worst-in-class Xcode IDE???

For a brief moment in time, a few years around 2010, writing software for the web was as straightforward as taking a stab at the source code, hitting save, hitting refresh, reading the logs, rinse, repeat. That meant I could essentially reverse-engineer the closed-source WebDAV client Apple built into iPad’s iWork productivity apps by sheer twenty-one year old brute force.

And brute force, I did, over the first 3 weeks in December 2010, mostly working overnight when there were fewer distractions afoot, listening to WWOZ’s late night programming and under the watchful totally-not-sleeping-just-now gaze of my pet dog, I wrote a new PHP WebDAV server that made calls to the Dropbox API instead of calling down to disk. I slap-dashed together a customer portal with PayPal payment buttons. I stuck a finger in my mouth, plucked it out, and decided DropDAV should cost 30% of whatever a Dropbox user is paying Dropbox— then years later turned red as a beet hearing one of Dropbox’s first employees tell me a story about the price of Dropbox itself being arrived at essentially using the finger in the mouth technique.

As I mentioned, I’d been an avid Apple customer, so the week before Christmas 2010 I emailed the editors of a few Apple blogs I’d respected for years. Though Apple had already sold millions of iPads by that point in its first year, there weren’t a ton of new iPad apps launching all the time, so most of those editors featured DropDAV among the homepage content of their blogs on Christmas morning when millions more people unwrapped an iPad and went looking for tools to get the most from their new device.

I don’t remember many moments from inside the depths of the Lamplighter Lounge, open 24/7 on the main commercial thoroughfare in New Orleans’ most populous suburb, and a few blocks from my mom’s garage. The brute forcing took a toll, and I coped at the Lamp with my friends most nights. I was there at the end of 2010 talking to my friend Jody, she asked “so you made like an app?” I said “sorta, it’s more like a service, it’s for Dropbox..” she didn’t know what that was but she cared enough to ask “so are people like using it?” and I said “yeah, like a thousand I think” neatly rounding up the roughly 700 users I’d counted earlier that day. “No fucking way, show me” she bristled.

I was using Shaun Inman’s delightful Mint analytics tool and it loaded slowly on my iPhone 4’s 3G connection. It kept loading even as we’d lost interest in the number. But I’ll never forget glancing back at the screen and seeing the big font— I needed to reduce the font size a few weeks later so the number could still fit on the iPhone screen— **1,997**. I lifted the phone to show her and we both exclaimed holy shit. I hit refresh in case it was a bug or something and by the time it loaded again it was up to 1,998.

The first half of 2011 was a whirlwind of support emails and press coverage, both often in languages I pushed Google Translate to its limits so I could understand and respond. I don’t use non-Latin characters in my filenames and my testing failed to discover that DropDAV completed crapped the bed anytime a non-Latin character crossed its transom. It turned out PHP was a very, very bad choice of programming language for supporting non-Latin characters and the Dropbox API client for PHP simply couldn’t cope with those alphabets. But the Dropbox API client for Python could do it, so I re-wrote the WebDAV server to cache all incoming requests in Memcached, then make an exec call to invoke a Python script with the Memcached storage location of the request so that Python could parse the non-Latin characters, make all the calls to Dropbox, then store the Dropbox API responses back in Memcached for the PHP WebDAV server to pick back up and serialize in the handful of custom formats I’d hand-tuned for various popular and idiosyncratic WebDAV clients (starting with iPad’s iWork apps). Look all I can say is people will do crazy things to get access to international markets and in those months I was lucky enough to both go crazy and understand happily why I had.

As the second quarter of 2011 came to a close and DropDAV’s user population breached the upper five digit numbers, I started to understand why Dropbox— the beloved center of my computing life— was nowhere near going public. I’d been a paid Dropbox user for years, and I’d thought well hey I’m just a kid surely real adults are all paying for Dropbox. Predictably in hindsight, my statistically significant subset of Dropbox’s users counted 98% on the free plan which was totally fine for Dropbox’s venture capital, but it was the problem keeping me, just a kid living in his mom’s inadequately climate controlled garage, from moving into my own (much colder!) space with summer in Louisiana rapidly settling into the calendar.

The prospect of raising prices was complicated by the existence of another WebDAV-to-Dropbox service, hilariously also named DropDAV but registered on .net vs my .com, that had launched a few days before I did, that was totally free of charge, flawlessly supported all the characters of languages on Earth, and was a tiny bit more reliable than my version by virtue of hosting the service on Heroku vs the homemade pile of servers I had running. Unfortunately for other-DropDAV, one of the reasons Heroku was so solid was its decision to forbid file transfers larger than 1 MB, which meant files way smaller than the 5 MB email attachment limit that partially drove me to write DropDAV in the first place would crash and burn. I was competing against a free, internationalized, more reliable competitor that even had the same brand name, and, holy smokes, I was going to win on account of their hosting company’s ban on files of any material size! Anyone in this life who tells you their success isn’t a large product of sheer dumb luck is a fucking liar, man.

After weeks of hand wringing, I decided to re-price DropDAV at $5 per month, after a 14 day free trial, and $20 per year for any user affiliated with an academic or non-profit institution. I sent an email to the ~60,000 free users letting them know their 14 day free trial had begun and they’d need to add a credit card to their accounts if they’d like to continue using DropDAV beyond the trial’s end. I was visiting my grandmother in North Carolina the weekend when all those trials ended. More than a thousand people replied to the email letting them know the free trial was over. Somehow the percentage of those emails that were, erm, not very very angry, was worse than Dropbox’s free rider numbers. My grandmother was genuinely flabbergasted that thousands of people had emailed me to unironically simultaneously assert explicitly DropDAV was not worth paying for and implicitly worth complaining— with a smattering of violent personal threats— to me about. She left me in stitches sardonically musing about the failure of imagination she’d suffered in not sending nasty letters to companies selling goods she treasured at prices like treasure.

Tens of thousands of customers didn’t convert after the trial. But most did, so I moved into the nicest riverfront building in the hippest neighborhood in New Orleans. A bunch of my neighbors worked in clubs, arenas, and stadiums, they played for the Saints and the Pelicans (then Hornets), and one went 7x platinum rapping with A$AP Rocky and Cardi B. I worked from home until I got fed up with weekly internet outages being hand-waved away by Cox’s customer service reps who happily told me the “large number of people stealing cable in your ZIP code break the system”. Reader, if there’s just one thing you take away from this story I hope it’s Cox is a bullshit racist company whose continued operation is a national embarrassment, shame on you FCC, shame on you FTC.

DropDAV kept growing for years, long after I’d run out of ideas for how to make it a bigger business. In an effort to reduce the number of things on my mind distracting me from building Roll, in early 2019 I sold DropDAV for an undisclosed sum to a software private equity investor, after several months of roadshow in a competitive process.

I ran some database queries before handing over the keys to the business. DropDAV had been used by more than 100,000 people, who combined to enjoy (I hope!) the service more than 50,000,000 times. 21 year old me brute forced the biggest software business in New Orleans history into existence in a handful of the very first weeks of my software career, from a way too hot garage guided by the (honestly measly) management offered by my pet dog Delilah.

Anything is possible.