Aaron Edwards https://uglyrobot.dev Aaron Edwards personal site Thu, 19 Mar 2026 16:10:19 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed Aaron Edwards https://uglyrobot.dev/favicon.ico https://uglyrobot.dev All rights reserved 2026 <![CDATA[We finally hit $1M ARR in February]]> https://uglyrobot.dev/articles/1m-arr https://uglyrobot.dev/articles/1m-arr Mon, 02 Mar 2026 00:00:00 GMT

We finally crossed $1M ARR in February.

I wish I could say we crushed the original plan. We didn't.

We expected to get here about four months earlier, but growth went flat through most of Q3 and Q4 in 2025. Not dead. Not dramatic. Just... flat. That stretch forced us to get more honest about what was working, what wasn't, and where we were still operating like an earlier-stage company.

Why it took longer

The biggest lever was pricing, but it took way longer than I expected.

We spent close to a year planning it, testing options, talking to customers, and trying not to break trust in the process. This wasn't a quick "raise prices and hope" move. We wanted pricing that actually matched the value customers were getting.

When we finally rolled it out, it worked. That change pushed us over the line.

We grew up a bit

The pricing shift mattered, but it only worked because other pieces improved at the same time.

We put real effort into onboarding. Setup is clearer now, time-to-value is faster, and people are getting to useful outcomes earlier. That has helped both activation and expansion.

We're also maturing as a team and as a business. Bringing in growth leadership changed a lot for us, and I wrote more about that in No Longer a Solopreneur.

Moving upmarket on purpose

We removed our consumer-level plan and focused more on qualified businesses.

At the same time, we added more value to Standard and Business so those plans are stronger for the customers we want to serve long term.

We also tightened our sales process for qualified accounts. Better qualification, better discovery, cleaner handoffs. Less noise, more focus.

Agency partner program (early, but real)

We're still early here, but the agency/implementer partner motion is starting to come together.

A big part of this is giving partners better controls. Per-bot RBAC is one of those features that sounds small until you're managing multiple clients and teams. Then it becomes table stakes.

There is still a lot to build, but this channel is already showing promise.

2026 priorities

$1M ARR is a milestone. It isn't the finish line.

This year we're trying to push harder and build more leverage across the company, including a fuller team of AI agents supporting internal operations.

Our first AI "employee" already changed how we run parts of marketing and documentation. That alone has saved time and removed a bunch of repetitive work.

Current focus areas:

  • Sales systems for larger, better-fit accounts
  • Partnerships and agency growth
  • Hyper-personalization for key customer segments
  • Paid acquisition with tighter ICP targeting
  • Building authority in specific, high-intent niches

Thanks to everyone who helped us get here. Customers, partners, team, friends, all of it.

We're just getting started.

-Aaron

]]>
[email protected] (Aaron Edwards)
<![CDATA[My 1-Year SEO Journey: Lessons Learning Non-Technical SEO]]> https://uglyrobot.dev/articles/1yr-seo-report https://uglyrobot.dev/articles/1yr-seo-report Sat, 14 Sep 2024 00:00:00 GMT

As a founder, non-technical SEO was a new challenge for me. This post is my honest buildinpublic 1-year summary since getting serious about it. I'll share what worked, what didn't, and what you should focus on for your sites.

Content Marketing: A Mixed Bag

Blog posts statistics

My first step was integrating headless WordPress into my NextJS site and jumping into regular blogging. We published 90 posts this year, a mix of:

  • New product updates
  • Relevant articles
  • Case studies
  • Tutorials

Most posts were AI-written with varying levels of human editing. Quality varies in my opinion. The results? Mixed at best.

What We Learned

  • We get some traffic to the blog, with occasional spikes for timely articles (e.g., OpenAI announcements).
  • Growth is stagnant despite our efforts.
  • Most traffic goes to a small subset of posts on highly technical/niche AI topics.
  • These visitors likely aren't our ideal customers.

My Take: Content marketing feels like a waste of time unless your product is super niche with low-competition keywords. The effort-to-reward ratio just isn't there for most businesses.

Documentation: The Hidden SEO Goldmine

Documentation SEO impact

Documentation turned out to be one of our easiest SEO wins. Here's why:

  1. You have to write them anyway for your customers.
  2. They're great for SEO.
  3. Our DocsBot support chatbot crawls them daily, training itself to respond to customer questions.

Our Strategy

  • We regularly analyze which docs are ranking well.
  • We then optimize them further for keywords and add CTAs.
  • We use a dual approach for titles:
    • H1 headers are customer-focused
    • Meta titles are optimized for search clicks for potential customers

Pro Tip: Don't neglect your documentation. It's a multi-purpose asset that can drive traffic, improve user experience, and even be a source to train an AI support bot.

Alternative Pages: Comparing Yourself to Competitors

Alternative pages comparison

Creating "alternative" pages comparing your product to competitors is table stakes for any SaaS company. Here's our approach:

  1. We keep adding more competitor comparisons.
  2. We use a consistent template but customize all content sections with the help of AI.
  3. Each page features a comprehensive comparison table. This takes a lot of manual work to research, but it's worth it. And if you forget to keep it updated, it's not technically lying, right?

Benefits

  • While they can be hard to rank organically, they're excellent landing pages for Google PPC ads.
  • They train our AI retention agent to respond when someone is considering canceling to switch to a competitor.

Hack: Create an alternative page for your own product to capture users looking to switch away from you. Try to outrank your competitors' comparison pages, or even target it with PPC!

Programmatic SEO: Scaling Content Creation

Programmatic SEO results

We experimented with programmatic SEO using:

  • A custom script
  • Content template
  • Unsplash API for images
  • GPT-4 for writing with structured output json

The result? 300 landing pages for various industries. The hardest part was reviewing the output from the AI and making sure it was not hallucinating features or functionality that we don't have. Took a lot of context, prompt tuning, and reviewing to get good outputs.

Outcomes

  • Indexing took time (tip: launch gradually)
  • Most traffic goes to low-intent pages (e.g., "astrology chatbots")
  • 1.7k clicks isn't bad for the effort involved

Next Steps: We plan to identify top-performing pages and add demo chatbots to enhance user engagement.

Free Tools: The Tip I'm Scared to Share

Free tools SEO impact

Intent is everything in modern SEO. Our biggest win came from creating free tools for searchers that:

  1. Can't be instantly answered by AI (e.g., advanced calculators, checkers, converters)
  2. Give users exactly what they want with no friction (e.g., no signup required)

This approach has been a game-changer for our SEO strategy. Here's why it works so well:

  • High-Intent Traffic: We hit on several high-traffic, high-intent keywords, causing our traffic to explode.
  • Developer-Friendly: As a developer, I can create multiple mini-products in a day, especially with AI coding tools like Cursor and GitHub Copilot.
  • Quick Indexing: These tools are typically indexed within a week or two.
  • Backlink Magnet: Useful tools naturally attract backlinks, more so than content. This potentially increases our Domain Authority (DA), helping other pages rank higher.
  • Listing Sites: Launching these tools on Product Hunt, Hacker News, Reddit, etc. can generate additional backlinks from listing sites.

However, there's always room for improvement:

  • Some tools have low search volumes or need keyword optimization.
  • I should focus more on keyword research before building the tools, whoops.
  • We need to test new strategies to better convert these leads beyond a custom CTA. Example: Add to email series in exchange for more usage credits.

Looking Ahead

SEO is an ever-evolving field, and what works today might not work tomorrow. However, focusing on user intent, providing genuine value, and leveraging your unique strengths (like development skills for free tools) can set you apart. That's what a year of hard SEO work at DocsBot has taught me anyway!

Remember, SEO is a marathon, not a sprint. Stay consistent, keep experimenting, and always prioritize providing value to your users.

P.S. If you're interested in training an AI chatbot for your business to handle customer support, team knowledge access, customer retention, RFP completion, custom copywriting, research, and more, check out DocsBot AI.

]]>
[email protected] (Aaron Edwards)
<![CDATA[My Journey to $500K ARR: Lessons from Launching 8 Products in 6 Months]]> https://uglyrobot.dev/articles/500k-mrr https://uglyrobot.dev/articles/500k-mrr Tue, 02 Apr 2024 00:00:00 GMT

It took many trials, errors, and relentless perseverance, but I just reached $500k Annual Recurring Revenue (ARR) from all my projects combined! This journey shows the power of resilience, strategic positioning, and the magic of being at the right place at the right time. This post aims to share insights and lessons learned from launching eight products in six months, highlighting the importance of not giving up, putting oneself out there, and positioning yourself to ride the big technology wave when it comes.

The Struggle and the Breakthrough

The road to success was anything but smooth. I first launched Infinite Uploads back in 2021 after a year of work with a cofounder. Growth has been slow to flat for multiple years, and I didn't have the time or desire to put what was needed into it. But when the latest AI excitement started and the technology became available to build with, I began building new products furiously. I did not want to miss out on this wave. I launched eight different products in a span of just six months, but most were unprofitable or barely broke even. This period was marked by uncertainty, experimentation, and a relentless search for that one product that would resonate with the market. The struggle wasn't just about creating something valuable; it was about finding a fit in a market that's constantly shifting, especially in the world artificial intelligence.

Products That Didn't Quite Make It

  1. Infinite Uploads: The first product I launched, a WP cloud storage SaaS, was a good learning experience but never gained significant traction. I sold it in 2024 for about 3x ARR.
  2. Imajinn AI WP Plugin: The first AI image generator for WordPress that went viral on Twitter but almost no-one paid for.
  3. Imajinn AI SaaS: The intent was to build a SaaS using newly available DreamBooth AI model custom training targeted at B2B. It was a good idea, but the tech was not ready, and the market was not there yet.
  4. Imajinn AI Photoboot: I slighly pivoted marketing to target the B2C market with AI avatars and one-time payments, and made about $9k from it but consumer excitement was short-lived.
  5. AI Sneaker Generator: A fun project that generated AI-designed sneakers. This was meant to be a lead magnet for Imajinn AI SaaS, and still brings in a lot of SEO traffic, but few conversions.
  6. AI Children's Book: A fun project made with my wife and built on top of Imajinn AI SaaS, and my first try at ecommerce. Unfortunately, despite a lot of interest it's mostly only sold to friends and family. We did get featured in our local Dallas magazine and morning news TV show, which was fun.
  7. AI Product Photo Generator: A free project that makes product photos look amazing with AI backgrounds. This was meant to be a lead magnet for Imajinn AI SaaS, and still brings in a lot of SEO traffic, but few conversions.
  8. AI Couples Portraits: A fun project that generates printed AI portraits of couples. I built this to try to go viral for Valentine's Day, but despite spending a month on TikTok marketing and ads, it didn't take off. I sold like 3 ever.
  9. DocsBot AI: The breakthrough came with DocsBot in February 2023, an AI-powered chatbot creator with many use cases like customer support and internal knowledge access. DocsBot was the product that resonated with the B2B market, and it quickly gained traction. The product-market fit was strong, and the demand was evident. DocsBot became the cornerstone of UglyRobot, driving significant revenue growth and propelling me towards this $500K ARR milestone.

Making My Own Luck

Success is often attributed to luck, but there's much more to it. It's about making sure you are in the right place at the right time. It's about creating opportunities and being prepared to seize them. For me, making my own luck meant not giving up despite the setbacks. It involved putting myself out there, connecting with potential users, gathering feedback, and iterating quickly. I have learned a little bit more each time launching a new product.

Some Key Lessons Learned

  • Put yourself out there: Launching products is not just about building something great; it's about getting it in front of people. I learned the importance of marketing, community building, and networking to create buzz around my products. This was especially true for DocsBot, where I leveraged my network and connections to get the word out, and that eventually led to a viral tweet that brought in a lot of early customers.
  • Power of the MVP: The minimum viable product (MVP) approach was crucial in my journey. With each successive launch I became less and less of a perfectionist. I was also often able to addon to or resuse code from the previous one speeding up development. It allowed me to quickly test ideas, gather feedback, and iterate based on user responses. This iterative process helped me refine my products and find the right product-market fit. Still, even with DocsBot my MVP was too feature-rich. I could have been first to market with a simpler product. Instead I lost millions in marketshare to a competitor who launched a simpler product a few days before me.

Riding the AI Excitement Wave

The timing couldn't have been better. The release of groundbreaking image and language models captured the world's attention, creating an unprecedented excitement around AI. By positioning DocsBot and my other projects within this wave, I was able to tap into a growing interest and demand for AI-powered solutions. Unfortunately most of the B2C products simply brought in waves of "AI tourists" who were not interested in paying for anything, just trying the shiny new toys. DocsBot's success was being able to capture the B2B market by providing actual ongoing value.

Building a Solid Foundation

Achieving this milestone is just the beginning. My next goal is to reach $1 million ARR. With a solid foundation now in place to build on, including systems, employees, and marketing flywheels, scaling up seems much more attainable. I still have a long way to go, but the journey so far has taught me valuable lessons that will compound and guide me in the next phase of growth.

A robot celebration of $500k arr

Looking Ahead

As I look towards the future with an eye on the $1 million ARR goal, It's good to remember the lessons learned from those initial six months of product launches. As I continue on this journey, I remain committed to innovating, delivering value, and making my own luck every step of the way.

]]>
[email protected] (Aaron Edwards)
<![CDATA[DocsBot Week: Founder Mode, No Sleep, and 20+ Features Later]]> https://uglyrobot.dev/articles/docsbot-week https://uglyrobot.dev/articles/docsbot-week Thu, 01 May 2025 00:00:00 GMT "Remind me to never do a DocsBot Week marketing campaign again."

That's how I feel sitting here, one day away from wrapping up what has been the most intense product sprint of my life. Twenty-plus new features launched. Fourteen detailed announcement posts. Nine emails. A live stream kickoff that got cut short by a thunderstorm and power outage. Daily bug fixes. Countless UX tweaks. And not much sleep.

The Hardest Step

Developers often think shipping means merging code. But the real step-the one that turns half-finished PRs into an actual product-is polishing. It's the part where you take raw functionality, add UX, define purpose, and wrap it all with clear messaging. You have to turn a feature into a useful product.

That step is slow and painful, and right now it's mine alone. As founder and product manager, I'm the bottleneck. Some of these features were started by our devs over a year ago. DocsBot Week forced me to finally finish them, test them, and ship them in a form that makes sense to real users.

DocsBot Week announcement

Founder Mode

Every day was the same grind:

  • Review old PRs, finish edge cases, fix bugs
  • Decide the user-facing purpose and messaging for each release
  • Work with our marketing team to build docs, posts, graphics, and emails
  • Push live updates while mopping up problems from the previous day's launch
  • Watch usage, collect feedback, tweak the UX, repeat

It was a forcing function-one that finally turned dusty branches into polished features.

The Marketing Machine

Product alone doesn't move the needle. So in parallel, I had to direct the marketing engine: coordinating schedules, approving copy, lining up social posts, and making sure the story of DocsBot Week held together.

Fourteen announcement posts and nine emails later, we had a full narrative arc. Each feature release built into the next. The content team worked fast and hard, but the weight of aligning product and messaging still sat on me.

Live Stream Chaos

We kicked off DocsBot Week with a live stream. It was going well… until Texas weather decided otherwise. Thunderstorm. Power out. Stream dead. Founder lesson: live streams suck.

We still got the launches out, but it reminded me why async content is safer than betting on live events.

Panic, Bugs, and Progress

Every daily launch came with last-minute bugs and unexpected UX friction. Feedback rolled in immediately, and I scrambled to adjust. Some nights I'd patch and re-deploy three times before the new features felt usable.

It was messy. It was stressful. But by the end of each day, we had taken another step toward making DocsBot a better product.

Looking Back

DocsBot Week more than flashy announcements. It was a forcing function. It took a year's worth of half-finished work and compressed it into seven days of actual shipping.

The result:

  • 20+ new features live
  • 14 announcements written
  • 9 emails shipped
  • Hundreds of bug fixes and UX improvements
  • A team stretched, but stronger

I don't want to run another week like this anytime soon. But it showed me what's possible when the deadline is immovable and the scope is brutal.

DocsBot Week feature summary

DocsBot Week is done.

If you haven't yet, go check out the full list of what we shipped. Better yet, subscribe and see how DocsBot can transform your customer support, team knowledge, and daily workflows.

I'll be sleeping for the next three days.

-Aaron

]]>
[email protected] (Aaron Edwards)
<![CDATA[I sold Infinite Uploads!]]> https://uglyrobot.dev/articles/infinite-uploads-aquired https://uglyrobot.dev/articles/infinite-uploads-aquired Mon, 09 Dec 2024 00:00:00 GMT 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. 🚀

]]>
[email protected] (Aaron Edwards)
<![CDATA[No Longer a Solopreneur]]> https://uglyrobot.dev/articles/no-longer-a-solopreneur https://uglyrobot.dev/articles/no-longer-a-solopreneur Wed, 01 Oct 2025 00:00:00 GMT No longer a solopreneur

Being a solo founder sounds freeing. You imagine full control, clear vision, and the ability to move fast without slowing down to align with anyone else. The reality is much heavier. Vacations never felt like vacations—I was still checking in on campaigns, assigning tasks from hotel rooms, and holding everything together even while trying to unplug. When big decisions came up, there was no one who truly understood the weight or the context to bounce ideas off. I could lean on friends or advisors, but it was still my call, my responsibility, and my sleepless night if things went sideways.

At DocsBot, our "team" until now has been my son, who I've been mentoring in marketing and entrepreneurship, plus a trusted bench of long-term contract developers and admins. They are all invaluable, but I remained at the center of every decision. Every project eventually funneled through me for approval, prioritization, or execution. If something stalled, it was because I hadn't nudged it forward yet. That kind of bottleneck is brutal when you're trying to build a category-defining product.

That changes now. I'm excited to share that @joshdailey is joining DocsBot as Chief Growth Officer, leaving WP Engine to join the future of customer support. Josh isn't just another hire; he's the person who can share the load, drive results, and own outcomes alongside me.

If you want to read more about the story behind this partnership, check out "From Treehouses to Tech: The Lifelong Friendship Behind DocsBot", a feature in The Repository highlighting how Josh and I went from building treehouses as kids to scaling DocsBot together. The piece dives into our long-running collaboration, the early experiments that paved the way for DocsBot, and why now is the right moment for us to team up again.

Why Josh?

Josh and I have history. We co-founded Infinite Uploads together during COVID (now acquired), where we learned how each other operates under pressure and uncertainty. We shipped product, handled support fires, and navigated growth during the strangest business climate imaginable. We were in the trenches together, and I know I can trust him when things get messy.

This summer he worked part-time with DocsBot, digging deep into the product, the workflows, and the customer journey so we could both be sure this was the right next chapter. He talked with customers, watched onboarding calls, and immersed himself in our roadmap. By the time we started talking seriously about a full-time move, we both already knew he was the right person—it was just a question of timing.

A few weeks ago he and his wife came to visit. We sat on the swing in my backyard and mapped out the details that would make him a true partner in the business: profit share, phantom equity, clear goals, and mutual expectations. We talked through how we'd make decisions, what success looks like at each stage, and how we can keep each other accountable. By the time the sun went down we knew it was time to make it official.

What changes for me

For me, this is both a relief and a turning point. I finally have a trusted partner to lead growth—someone to challenge and run with ideas, carry real weight, and care about the outcome as much as I do. It means I can take a real vacation without packing my laptop out of fear. It means the backlog of marketing experiments, strategic partnerships, and customer education initiatives no longer lives solely in my head.

It also gives me space to return to what I love most: building, strategy, and product. I get to spend more time working closely with our engineers, sweating the details of our AI stack, and shaping the experience that our customers rave about. Having Josh own growth means I can go deeper on the craft of DocsBot without sacrificing the company's momentum.

What changes for DocsBot

For DocsBot, it's the start of a new chapter. Josh is already laying the groundwork for a growth engine that is systematic and scalable: better analytics, sharper positioning, tighter feedback loops between sales, success, and product. He has a knack for telling the story of why DocsBot matters in a way that connects with founders, support leaders, and operations teams alike.

The market for DocsBot is massive. We and our competitors have barely touched it. Today we already have customers ranging from banks in Venezuela and law firms in Saudi Arabia to massive Japanese tech firms and car washes in Texas. Every business needs an AI agent that brings instant, 24/7, multilingual knowledge access for their customers or their team. Our job is to introduce them to what DocsBot can do, and now we have the leadership in place to do it at scale.

I'm energized for this next season. With Josh leading growth, DocsBot is better positioned than ever to serve customers who want reliable AI support that actually understands their business. And on a personal level, I'm grateful to no longer be doing this alone.

Here's to building the future—with a partner.

-Aaron

]]>
[email protected] (Aaron Edwards)
<![CDATA[Raising Prices: A Scary Decision That Paid Off]]> https://uglyrobot.dev/articles/raising-prices https://uglyrobot.dev/articles/raising-prices Wed, 10 Sep 2025 00:00:00 GMT Three months ago, I pulled the trigger on something that had been sitting in the back of my mind for months: I raised prices for DocsBot.

DocsBot pricing plans

Not just a token increase either. I cut our lowest plan completely and bumped the price of our primary ICP plan by 50%. For a founder, it’s one of the scariest moves you can make. Your mind instantly goes to the worst‑case scenarios:

  • What if customers leave in droves?
  • What if growth stalls?
  • What if we miscalculated the value our customers actually see?

But I also knew that the lowest plan wasn’t serving our business or our customers well. It attracted the wrong profiles—ones that cost more in support than they delivered in value. Meanwhile, our ICP consistently told us that the tool was saving them thousands through AI‑powered customer service. So I decided it was time to test whether the pricing was truly aligned with the value we provide.

The Results

DocsBot metrics after the price change

Three months later, the numbers speak louder than any fear I had going in:

  • Active subscribers: –2.6%
  • MRR: +12.5%
  • Churn rate: –14.7%
  • ARPU: +15.5%
  • Customer lifetime value (cLTV): +35.4%

Yes, subscriber count dipped. But MRR rose. Churn improved. ARPU jumped. And lifetime value surged — which changes the entire growth equation.

The Grandfathering Strategy

We chose not to force existing customers to the new pricing immediately. That shift will come next year. But something surprising happened: about 15% upgraded on their own.

Why? Feature gating. We started rolling out new features only to customers on the new plans. It wasn’t about punishing old users, but about rewarding the ones aligning with where the product is headed. The result: natural, voluntary upgrades without pressure.

Soon, we’ll launch an early upgrade campaign alongside more gated features that add real value, making the decision to switch even easier.

Why It Worked

The biggest lesson here: the right customers don’t balk at higher prices if the value equation is obvious.

Our ICP isn’t buying “software” — they’re buying outcomes. If a product saves them thousands, a 50% price bump barely registers. And by shedding misaligned customers, we can serve our best customers better.

The higher cLTV also opens a new lever: CAC. With stronger unit economics, we can confidently spend more to acquire even better customers, knowing they’ll stick around longer and return more value.

My Takeaway

Making the decision was far harder than living with the outcome.

Pricing is emotional for founders. It feels like you’re putting a price tag on your worth. But ultimately, it’s about alignment. When you line up pricing with the true value you deliver, everyone wins: customers get results, the business gets healthier, and you as a founder can grow without the constant fear of fragility.

This was one of the scariest steps I’ve taken with the business. And it turned out to be one of the most clarifying.

]]>
[email protected] (Aaron Edwards)
<![CDATA[Selling Infinite Uploads?]]> https://uglyrobot.dev/articles/selling-infinite-uploads https://uglyrobot.dev/articles/selling-infinite-uploads Thu, 22 Feb 2024 00:00:00 GMT UPDATE: I sold Infinite Uploads in November 2024!

I believe the time has come. I've decided to consider the sale of Infinite Uploads, a unique cloud storage & CDN SaaS/WP plugin that integrates seamlessly with WordPress.

Infinite Uploads Dashboard

Launched by me and my co-founder Joshua Dailey (now at WP Engine) in January 2021 after almost a year of building during the COVID-19 lockdown, Infinite Uploads was born out of a vision to enhance WordPress users' experience by providing a simple unlimited cloud storage and CDN solution. Despite its potential for high growth and the unique features it offers, including a robust video encoding and hosting service, the time commitment to my most successful product, DocsBot AI, has led me to consider selling this venture.

Builder not a Marketer

It's been a remarkable journey since the inception of Infinite Uploads. I'm a builder and marketing is not my strength. Since the departure of my CMO co-founder over a year ago Infinite Uploads has just been on autopilot. This product has shown the potential to revolutionize how WordPress users manage their media content, and it pains me to see its potential wasted.

It could be a huge strategic opportunity for the right buyer to compliment their existing plugin suite or WordPress hosting service. The opportunity for significant expansion is undeniably there. I'm confident a simple dedicated marketing campaign or cross-promotion could rejuvenate its trajectory, pushing MRR far beyond $2,000.

Infinite Uploads SaaS Dashboard

A Unique Opportunity

Infinite Uploads stands as a unique opportunity in the WordPress ecosystem. It's not just a plugin but a fully SaaS product with recurring revenue, a sizable opted-in email list of 6-7k, and a suite of features that set it apart, including:

Cloud Storage and CDN

  • A seamless integration with WordPress, allowing users to upload and manage files directly from the WordPress dashboard.
  • Unlimited cloud storage and CDN solutions, with no file size limitations.

Video Encoding/Hosting

  • GDPR-compliant, cookieless video hosting with no ads, tracking, or banners.
  • A highly customizable player for branding, with no filesize limitations for uploads or storage right from the WP dashboard.
  • Advanced encoding for compatibility across devices, with variable bit rate HLS streaming for optimized bandwidth usage and faster video delivery, all served from a CDN.
Video Upload block

Big File Uploads Plugin

The sale also will include the Big File Uploads plugin with its outstanding 256+ five-star ratings and over 90,000 installs. We aquired this plugin in 2021 and it has been a great addition to the Infinite Uploads suite as a free lead generator and our main source of referrals and email subscriptions.

Assets

Tech Stack

  • WordPress plugins - PHP, JS (partially jQuery, partially React), Bootstrap
  • Website - WordPress website with custom plugin, Divi theme, SaaS API uses WP REST API
  • We provision and interface with an S3-compatible object storage service
  • Our CDN partner provides CDN services for storage, as well as the Video encoding and hosting and player
  • AWS Batch on demand for long running jobs and crons like collecting usage stats, deleting files from cloud storage, etc. Jobs are written in PHP, packaged/deployed into Docker image via script ($2/mo AWS bill)

User Base and Revenue

Infinite Uploads MRR

Here are some key stats, as of February 2024. Once we open discussions and I know you're serious, I can provide more detailed financials and access to the Stripe account.

  • $2k MRR
  • $22k TTM
  • 94% Gross Margin
  • 17% YoY MRR growth
  • 8.1% Churn rate
  • 45.5% Trial to paid conversion rate

All of these numbers are with me putting in about 1-3 hours a month of support and no marketing.

Competitive Landscape

Our main competitor is WP Offload Media, which is a great product with 50k installs of their free version, giving some insight into the potential market. But WP Offload has seen a period of neglect, especially after its acquisition by WP Engine, which was primarily interested in Advanced Custom Fields (ACF) rather than enhancing WP Offload itself. This situation presents a significant opportunity for Infinite Uploads to capitalize on the gaps left by our competitors.

Additionally WP Offload is a freemium plugin, not a SaaS. It requires creating and properly configuring separate cloud and CDN accounts, where Infinite Uploads is a one-click solution. It also doesn't offer video hosting or encoding. There are a few other cloud storage plugins but none that offer the video hosting and encoding features that Infinite Uploads does. This positions Infinite Uploads additionally against products like VideoPress (Automattic), PrestoPlayer, Vimeo, and Wistia.

Valuation and Acquisition

Given these strengths and the plugin's quick growth potential, I'm seeking a valuation of around $75k as an asset purchase, hoping for an acquisition that appreciates the unique position Infinite Uploads occupies and its potential for rapid scale. I'm open to discussing the terms and structure of the sale, including a short transition period to ensure a smooth handover and continued growth. I'm also very open to creative deal structures and strategic partnerships that allow me to maintain a stake in the product and participate in its future success.

The Path Forward

For those interested in a SaaS product with strong foundations, immediate revenue, and significant growth potential within the WordPress ecosystem, Infinite Uploads represents an unparalleled opportunity. It's a chance to own a product that not only enhances WordPress functionality but also opens new avenues for revenue and user engagement through its advanced video features and large user base.

As I shift my focus towards nurturing DocsBot, I am excited to see where Infinite Uploads can go in the hands of someone ready to unlock its full potential. It's a bittersweet decision, but one that aligns with my vision for the future and the strategic focus required to achieve it.

For inquiries or to express interest in this opportunity, feel free to reach out. Let's discuss how Infinite Uploads can embark on its next chapter under your guidance, continuing to serve and expand its loyal user base.

if (interested_in_infinite_uploads) {
    reach_out_for_a_discussion('[email protected]');
    explore_the_potential_together();
}

I'm excited to see where this journey takes us. 🚀

]]>
[email protected] (Aaron Edwards)
<![CDATA[Finally SOC 2 Certified as a Solo Founder]]> https://uglyrobot.dev/articles/soc2-certified-solo-founder https://uglyrobot.dev/articles/soc2-certified-solo-founder Fri, 03 Oct 2025 00:00:00 GMT Finally SOC 2 Certified as a Solo Founder

I still remember where I was when I first thought: maybe SOC 2 isn’t just for big companies. I’d spent years pushing it aside — too costly, too vague, too “enterprise checkbox.” But this October, DocsBot is now SOC 2 Type II certified. You can see the announcement here: DocsBot is Now SOC 2 Type II Certified.

Here’s how we got there — the mistakes, the hacks, the surprises — from my POV.

SOC 2 badge

The shadow of SOC 2

For a long time, SOC 2 was something whispered about in venture circles or huge SaaS orgs. It sounded like a standard for the security-obsessed, not for a scrappy solo founder or indie hacker.

I understood it should be about security. But it came from CPAs, not builders. In practice, it reads like a laundry list of “controls” — suggested security best practices — and the audit is about showing you did those things over time. Some controls feel outdated. Others are pure theater: checkboxes that don’t meaningfully improve security. You can even “modify” or weaken them if your context justifies it.

So I postponed. For years.

When I pitched to bigger clients, some didn’t care about security frameworks. They just asked me to fill out a Vendor Security Assessment / Questionnaire (VSA / VQA). Others wanted SOC 2 or walked away. I lost deals over “no SOC 2” more than once. But the cost of doing it often seemed bigger than the value.

Then our sales pipeline started growing. We got interest from enterprise-grade prospects. It was time to stop treating SOC 2 as an “optional extra.”


Choosing a path: Sprinto vs OneLeet

In my past life at WPMU DEV, I’d worked with Vanta. It’s polished but expensive and infamous for steep renewals. I didn’t want to get locked into that kind of surprise pricing.

I evaluated OneLeet (YC-founded, used by many early-stage startups) and Sprinto. OneLeet’s quote (after discounts) was around $6–8K/year. They said they’d hold prices flat for a few years. Reasonable, but still heavy on a lean budget.

Sprinto was cheaper ($4–6K). Less slick in UI and automations, sometimes quirky, likely managed from India. But their support approach is what sold me: whenever I hit a bump, they’d do a screenshare and walk me through the fix. That hands-on help is gold in compliance.

So I went with Sprinto.


Building from inside: roles, hacks, shortcuts

I wanted to avoid reinventing the wheel doing stuff by myself. So I enlisted my college-age son (studying business) to own policy writing, vendor agreements, training, subprocessor docs. He’s detail-oriented; I handled the tech, architecture, monitoring, tooling.

Because our team is small (a few employees plus contractors), adoption was manageable:

  • Everyone signed policies, did annual training, installed device monitoring.
  • Background checks: we had one new hire mid-process so I paid $29 for their check. For overseas or contractor roles, we set exclusions in policy where checks were unworkable.
  • Many controls default to “manual pen test.” That’s expensive. Rather than skip, I used Astra’s Pentest-as-a-Service (a few hundred dollars). Not perfect, but it gave me a report I could show in sales conversations and satisfy part of the requirement.

Infra side:

  • We rely heavily on IaaS (Vercel, Firebase). That means a lot of infrastructure security is outsourced.
  • I use GCP’s built-in security and monitoring tools, GitHub Dependabot, cloud logging, etc.
  • I’m the technical gatekeeper (I approve all code). That control is odd for SOC 2, which expects peer reviews. Instead of hacking out the control, I set up AI-based code review (OpenAI Codex + Cursor). I documented screenshots, the logic, the process. Auditor accepted it. Yes — AI reviewed my own code.
DocsBot Trust center

The timeline, audit, and surprises

  • March 2025: I started planning and asking around.
  • June: signed with Sprinto and kicked off.
  • By end-August: controls mostly in place.
  • To get Type II, you need at least a 90-day monitoring window.
  • I solicited two auditor quotes. One was a better communicator, simpler process, far cheaper. We ended up paying $1,200.
  • Audit began. Auditor got access to Sprinto, asked ~6 clarifying questions or asked for more screenshots, and within weeks finished the review. Because we had some controls in place earlier, they even backdated them.

What I thought would drag to end of year finished early.


The moment of triumph

When they told me “you’re certified,” I felt weirdly relieved. It wasn’t just validation. It was removing a barrier I’d loathed for years.

Now we’re live: DocsBot has a trust center (hosted by Sprinto), where clients can sign NDAs and access audit reports and security artifacts. You can read the official announcement here: DocsBot is Now SOC 2 Type II Certified.

Ongoing cost will probably settle around $5–6K/year (Sprinto + auditor renewal). That’s a price I’m comfortable paying for sales confidence.


Reflections (what worked, what I’d do differently)

What worked

  • Choosing a compliance partner who helps you instead of leaving you lost in checkboxes.
  • Delegating policy and paperwork to someone else (in my case, my son).
  • Using mid-tier hacks (Astra pentest, AI code review) to satisfy controls without going full “enterprise budget.”
  • Automating monitoring through platform tools (GCP, Dependabot, etc.) so less manual overhead.

What’s weird / still murky

  • Some controls feel like theater (you’ll do them because they’re on the list, not because they’re threat-driven).
  • You can argue or modify control severity in your context. The control framework isn’t absolute.
  • Auditors vary hugely in style and price. The right auditor can drastically reduce friction.
  • Renewal pricing is a gamble. That’s where many compliance platforms squeeze you.
]]>
[email protected] (Aaron Edwards)
<![CDATA[WordCamp US 2024: Connections, Insights, and a Dash of Fun]]> https://uglyrobot.dev/articles/wcus-2024 https://uglyrobot.dev/articles/wcus-2024 Mon, 23 Sep 2024 00:00:00 GMT

Just got back from WordCamp US (WCUS) last week, and wow, what an experience! My wife and I decided to make the trip together this year, and it turned out to be an incredible journey both personally and professionally. Overall, we spent about $1,450 for the two of us to attend. We opted for a cheaper hotel a few blocks away from the main venue, which worked out great. Plus, we enjoyed free meals from all the after-parties and socials—can't beat that! We also snagged plane tickets on sale back in March, so planning ahead definitely paid off.

Pre-Event Preparations

Before the event, I wanted to make the most out of my time there. I booked around 20 meetings ahead of time. How? I used an X post with a calendar link—TidyCal is a cheap lifetime deal from AppSumo that's been super handy. I also DMed many X connections and even ran a sub-$20 X ad targeting WordCamp keywords. This strategy helped me line up meetings with WordPress business owners, @docsbotai customers, YouTubers, podcasters—you name it.

The Marathon of Meetings

The first day was intense—back-to-back meetings that were pretty exhausting for an introvert like me. But it was worth it. I also had about 10 impromptu meetings just by bumping into acquaintances from previous WordCamps, X followers, and floor introductions. The WordPress community is tight-knit, and it's amazing how many connections you can make in such a short time.

Valuable (and Sometimes Painful) Feedback

One of the highlights was getting valuable feedback on DocsBot from customers. Some of it was hard to hear but essential for improvement. I walked them through how to enhance AI support responses and expand usage across more products and use cases like pre-sales, retention, and copywriting. I also gathered a number of reviews and case studies that I can use for marketing. This face-to-face interaction is something you just can't replicate online.

Networking and Potential Partnerships

I had some exciting conversations about potential partnerships, including one with a big WordPress host that shall remain nameless ;-). Learned some influencer marketing tips from YouTube's craylormade, which was enlightening. I also asked many pointed questions about what marketing channels are working for fellow entrepreneurs and B2B sales. Probably will be able to book two or more podcast appearances from the connections this week.

A Significant Milestone: LOI for Infinite Uploads

I've been in talks for much of the year with someone interested in acquiring Infinite Uploads, my first WordPress SaaS. We even did an escape room together, which was a fun way to get to know each other better. Came away from the trip with a Letter of Intent (LOI)—we'll see how that works out, but it's a significant step forward.

Personalized Gifts with a Twist

I wanted to bring gifts but didn't want to do the usual swag. So, I trained a Flux AI model on their online images to generate fun pics of them in various styles, including their products and the WordPress logo. Printed them out to hand out—it was a great laugh and even got some shares on social media!

Katie Keith

Fun Moments and Personal Connections

Picked up my annual favorite shirts at the Gravity booth and chatted about my trademark struggles with Carl Hancock. it's amazing how just following each other on X opens doors—you feel like you know the person already. Got to wow Mark, the founder of WordFence, with a demo and talked AI. Love geeking out and building these relationships you could never achieve via cold outreach.

Attending Sessions

Believe it or not, I only went to three sessions:

  1. WPAI to see what my fellow AI fanatic @jameslapage has been working on.
  2. Gravatar to support @ronnieburt with some well-planted questions.
  3. The Brand session to get some unofficial legal advice on my trademark issues.

Each was valuable in its own way, and I'm glad I chose quality over quantity when it came to sessions this year.

Quality Time with Old Friends

Hung out all week with some of my favorite old @wpmudev coworkers. Bought way too many shoes at the Nike store with my best bud Joshua Dailey. Also, I never want to see another Voodoo donut until maybe next year. It's these personal moments that make the trip memorable beyond just business.

WordCamp US 2024

My Wife's Role and Support

My wife got to learn and practice her DocsBot elevator pitch and was a great support throughout the event. She came away with a renewed interest in helping more with the business. I'm determined to turn her into the next great B2B AI influencer!

The Takeaways

Overall, WCUS was a huge success. I think it's a much better investment than sponsoring a small booth where you're stuck all week. If you can be super strategic with your time to connect as much as possible, the ROI is incredible. In-person connections are more valuable than months of work on social media; combine the two for some amazing synergy!

For $1,450, I Came Away With:

  1. Probably 2+ big customers and likely much expansion revenue.
  2. Lots of feedback on my product to guide its development.
  3. Potential influencer partnerships/affiliates.
  4. At least two podcast bookings.
  5. An LOI for the acquisition of my first SaaS!
  6. New marketing ideas to implement.
  7. And lots of friends and ongoing connections.

Moving Forward

Now, I just have to do better than last year at following up, closing deals, and keeping up the relationships! The real work begins after the event, and I'm excited to see where these new opportunities lead.


Thanks for reading! If you attended WCUS, I'd love to hear about your experience. Feel free to reach out on X @uglyrobot.

]]>
[email protected] (Aaron Edwards)