FireFTP and FireSSH

Mime Čuvalo explains how following his principles and contributing to a larger movement helped him earn over $160,000 in donations from his apps.

Hello! Tell us about yourself and what you're working on.

My name is Mime Čuvalo (the name is from Croatia), and I currently live in California with my wife and 6-month old son. I work at Dropbox these days, having previously worked at YouTube, Google, and on independent projects like FireFTP, FireSSH, and The Rock Hard Times.

The independent business that I've been running for 10 years is FireFTP which is an addon for Firefox. It's a free FTP/SFTP client that opens in a separate tab in your browser. It's had over 25 million downloads, and in its heyday had a million average daily users. (These days it's a lot less since Chrome has become much more popular).

FireFTP has been successful mainly from its ease of use and simple UI design. It's charityware (inspired by Vim's Uganda donations) and gives >50% of donations to charity. It's made $160k over the 10 year period and the financial stats are openly available here at the bottom of the page.

How'd you get started with FireFTP and FireSSH?

I developed FireFTP back when Firefox was still known as Firebird or Phoenix, rising from the ashes of Netscape Navigator. It was the summer of 2004, and I was on my summer vacation right after graduating college with my fancy new computer science degree. It wasn't actually so fancy — I graduated from Ball State, which had a pretty terrible program, and I had to teach myself most things. You can see this by the initial commit of FireFTP — it was terrible. 😃

Anyway, I was bored and was super stoked to see the Firefox project rising. The groundswell of support was intoxicating back then in November 2004 when Firefox was finally released. It felt amazing to be part of the movement and to contribute to it. I had grown up reading HTML specs for my summer vacation and felt a part of something bigger than myself.

In September, a couple months later I released my work on Mozdev.org and posted an article to Slashdot (that's Hacker News 1.0 for you new geeks out there) and got a lot of traffic and interest that way. I'm amazed that people kept using it, because it was really, really buggy in the beginning. But the idea stuck, and I've been working on it.

It was pretty painful trying to develop it, because I was living in Zagreb at the time and was paying for the internet by the minute! Trying to download a Linux ISO to test on Linux cost me a bunch of cash, and there weren't really great download managers back then, so if it failed halfway through you were screwed.

Other challenges included an almost complete lack of documentation of Mozilla's platform — it was pretty tough. Plus, it's written in Javascript, which wasn't at all respected back then so it didn't have a lot of great tools, esp. to debug within the addon scope. The other main challenge was trying to make the app stable since uploading tended to cause the app to crash randomly. (See bad documentation note above — somebody eventually gave me a magic one-line fix which I would never have found on my own.)

The other challenge was trying to support SFTP. Initially I packaged PuTTy with FireFTP and did IPC to talk to that process — it was very hacky but it worked. It took a while before I decided to just rewrite the SSH protocol into Javascript that natively does SSH in the browser. That's the ParamikoJS project, which is a port of Paramiko. I built FireSSH as a "side project" to that as well, just 'cause. 😛

How'd you find the time and funding to build these apps?

I had ample time to work on it because it was my summer vacation. In addition, I had moved to Zagreb to get my masters degree. However, at the very last minute they decided my American bachelor's degree wasn't worth anything, and I got denied a week before school started. At the time I was really pissed at my school (FER in Zagreb), but it was really the best thing that could have happened to me, because then I just continued doing my independent work.

Rent in Zagreb was pretty cheap, so I just lived off my savings of working in libraries and computer labs during school. Because of my FireFTP work, it got me the visibility to get higher profile jobs like at YouTube. It was released completely free, and I didn't start asking for donations until a year later or so. After a while, I had to go back to doing a salaried job.

How'd you attract users to FireFTP?

Posting to Slashdot drew the initial traffic. After that, I've been continuously featured for 10 years on Mozilla's featured page — that's the majority of traffic I believe. There were no other marketing efforts besides that initial Slashdot post.

What's the story behind your donations?

FireFTP is charityware or "careware". It's free as in beer and free as in speech (open-source). When you first install the app a separate tab opens asking to give a donation. 50% of donations go to charity, and the rest went to paying my rent.

When I started asking for donations I was living in Portland, Oregon and my rent was $350/month since I was living with roommates (ahh, those were the days). The initial year brought in $14k and the following brought in $26k (after taxes and Paypal fees). Half of that went to me (so $7k and $13k respectively), so I could pay my rent that way.

I was inspired by my editor Vim which asks for donations that go to Uganda. And I was inspired by my parents who taught me to do right in the world, wherever I go. My family and I took care of orphaned kids from Sarajevo during our summers, so the donations went to that orphanage for many years. I used to send the kids gifts every week from the states — they were the best and were part of my motivation for working on FireFTP for as long as I have.

Here's the raw donation data:


Year
Donations
(after taxes and PayPal fees)
to Charity
(2005-2010 went to orphanages in Sarajevo and Vukovar)

to Self
2004 (no donations taken this year) $0 $0 $0
2005 (before having a post-install screen asking for donations) $1,000 $1,000 $0
2006 $14,280 $7,350 $6,930
2007 $26,835 $13,700 $13,135
2008 $25,043 $13,000 $12,043
2009 $20,341 $13,000 $7,341
2010 $21,610 $13,000 $8,610
2011 $18,361 $14,015 ($10,825 for Sarajevo + $3,070 for LGBT/Domestic violence) $4,346
2012 $14,764 $10,000 to LGBT rights, $3,000 to women's shelters $1,764
2013 $9,673 $5,000 to Domestic violence support $4,673
2014 $6,570 $1,300 to Domestic violence support / $2,200 to Plant Trees $3,070
2015 $3,501 $3,501 to Different Spokes $0
after 10 years of work $161,978 =$100,066 +$61,912

There are no expenses, just my time, which is super limited these days with my full-time job and child. It's hard to work on these projects anymore.

The biggest challenge to revenue these days is Chrome, honestly. I can't port FireFTP to Chrome, which I would gladly due if Chrome could support it. But Chrome doesn't believe in the local file system (just the cloud), so it'll never work on that addon platform. Plus, they're shutting down the app system in general, so FireSSH will have to be Firefox-only soon as well.

What are your goals for the future?

I would love for it to work on Chrome one beautiful day. Not too many other goals currently, because I'm time-strapped. Some better SSH performance would be awesome — I'd love to be able to use typed arrays for speed, but they've proven to be slower thus far ¯\_(ツ)_/¯

I definitely would love for the projects to support me financially, but raising a family in the Bay Area is pretty expensive and I'm not sure these projects would generate more revenue than they currently do.

Other goals would be to independent again but with a different project. I'm interested in getting back to my roots in ecology, combatting climate change. That's probably my next project. Other stuff I've messed around with is the Federated Social Web (an answer to Facebook's centralized, controlled social network) — I would love to continue working on that as well, but it seems that's been difficult in gaining traction.

If you had to start over, what would you do differently?

I probably would've invested more trying to figure out a viable business model — maybe pro and free like Transmit?

The other thing would be community. 99.5% of the code is still written by me, and it hasn't really lived up to the open-source ideal of "build it and they will come". This is probably my failing, but the fact that there's no one else helping is part of the reason why it's hard to sustain the project.

What do you think your biggest advantages have been to help you succeed?

Having a simple UI was the best decision for FireFTP. It's meant to be a much simpler alternative to Filezilla and to other products out there. I wanted something that was dead simple and didn't overwhelm me with a 100 buttons that I didn't need. (You can see simplicity in my current work which is Dropbox Paper.)

The other thing that helped, honestly, was being featured by Mozilla for so long. That drove a lot of attention to it. It's a positive feedback loop — I built a good product, it was featured, which encouraged me to make it better, and so it stayed featured.

What advice would you share with aspiring indie hackers?

Definitely give it a go if you have time and the financial means.

Check out The Power of Taking Time Off which says (if you can) take every 7 years off and re-learn your craft. Re-learn why you fell in love with it in the first place. Work on some projects of your own. FireFTP was built in 2004 and then I built FireSSH 7 years later in my 2nd gap year.

I think this free time was tremendously instrumental in making me a better programmer since I had the freedom and time to mess around. But also tremendously instrumental was working with others and learning from them, so I would warn that going "full indie" might be a dangerous prospect since you would be working in a vacuum and maybe not growing as much as you could be.

See how you can take your code and give it principles. Are you in it for the money? Or are you in it to make the world a better place? Why not try to combine the two if possible? (You won't do much good for the world if you can't put bread on your table.) Working for Firefox was inherently principled mission — we wanted to spread open-source and defeat Microsoft's stranglehold on the Internet. Start with why you want to do something, and the "what" and "how" will follow.

Where can we learn more?

Subscribe for new interviews every week! 🤗

Courtland here! I regularly interview the indie hackers behind profitable apps and side projects like FireFTP and FireSSH. Enter your email below, and I'll send you new interviews when they're out. Feel free to unsubscribe whenever you want.

Share this interview:

Loading comments...