I sold Infinite Uploads!

I’m thrilled to share how I just sold Infinite Uploads, the first SaaS product I built with my co-founder Joshua Dailey. This wasn’t an easy decision, but it was the right one to focus on my main business, DocsBot AI. Here’s the full story.

Infinite Uploads Dashboard

Finding the Right Fit

Infinite Uploads was born during the COVID lockdowns, built to provide WordPress users with an easy, unlimited cloud storage and CDN solution. While the product has great potential, my time has been consumed by other more successful products like DocsBot, leaving little room to grow Infinite Uploads as it deserves.

So beginning of last year I started looking for a buyer. I wrote a detailed post announcing my intentions, and made it brutally honest, sharing all the numbers and challenges. I wasn’t super aggressive about trying to get the best value possible out of it. Instead, I wanted to find the right fit and someone who would appreciate and grow Infinite Uploads. I really wanted it to be in the hands of someone who I knew would take care of it and help it come to fruition in an amazing way because I think the product has so much potential. It just wasn’t something I had the time to focus on.

I shared on Post Status Slack and Twitter/X with all the big WP players and got a few leads but nothing came of it. It was either too small for them or too expensive for the single developer buyers. Ultimately it was via my X followers that I found a buyer. I began discussions with Blake Whittle of ClikIT. I had some wavering on if I should sell, and he was very patient with me, but ultimately I decided to go for it. The main sticking point was he did not have the cash up front for my asking price.

At WordCamp US, I connected with Blake. After doing an escape room and hanging out, I walked him through everything, he made an offer, and shortly after, we signed a Letter of Intent (LOI). Now the first thing anyone always asks is, Oh, how much did you sell for? How much money did you make? And I always hate when they don't provide those numbers. So I will say that I did post my asking price on my original post. And the offer was pretty close to my asking price (3x current flat ARR/net profit) but involved about a 40% down payment and a seller financing portion that would be paid out monthly over 3 years with no contingencies. After discussing with my wife, I signed the LOI, and Blake’s team began drafting the asset purchase agreement.

Structuring the Deal

Since Infinite Uploads is part of my holding company, UglyRobot LLC, we opted for an asset purchase rather than a full business sale. This included the code, IP, domains, customer base, social accounts, and other assets. The initial contract needed adjustments, including clear terms for payment delays or defaults on the financing. Tools like ChatGPT o1 helped flag potential issues and ensure clarity.

We also worked through IRS reporting requirements, which included preparing IRS Form 8594 (Asset Acquisition Statement Under Section 1060). This form is required for both buyer and seller in an asset sale to allocate the purchase price among the sold assets. Allocating assets properly is critical, as it can significantly affect tax outcomes for both parties. For example:

  • The buyer may need to capitalize certain parts of the purchase over years (e.g., goodwill or IP), which aren’t immediately deductible.
  • The seller may have parts of the sale taxed as ordinary income (e.g., software support contracts) versus capital gains (e.g., goodwill or IP).

This often-overlooked step is a key part of the negotiation and can have long-term financial implications.

Due Diligence and Documentation

After finalizing the agreement, we set a closing date of November 25th. I created a shared Google Drive for a "data room" to upload all necessary due diligence files, including:

  • P&Ls and financials
  • Recent invoices for costs
  • Stripe reports
  • Proof of ownership
  • Documentation on Big File Uploads acquisition
  • SOPs and updated code documentation

Closing Day

On November 25th, it all came together. Blake wired the down payment, and we skipped escrow to avoid hassle and costs, given our trust. We scheduled a live meeting with his team to transfer everything, including:

  • Domains and DNS
  • Cloud accounts
  • Stripe account
  • Other key assets

We encountered one minor DNS outage due to incomplete records in Cloudflare but resolved it quickly. A tip for future sellers: use separate accounts for your products to make ownership transfers smoother.

Announcements and the Future

The acquisition was announced by ClikIT and covered by WP Tavern. It’s exciting to see the product getting attention and heading into its next phase of growth.

Reflection

Now that I’ve sold my first business, does this officially make me an entrepreneur? While it wasn’t life-changing money, I’m thrilled with the outcome. Blake and his team are passionate about Infinite Uploads, and I’m excited to see the product grow under their care. Customers will benefit from better support and updates, and I’ll get to focus more on my main projects.

Infinite Uploads is entering its next chapter, and I couldn’t be more optimistic about its future. 🚀