Before the day was over, the app gained over a thousand new users, served 2 million requests, and crashed the server. Again. We burned through 24.5 hours of CPU time.
How was this possible? I haven't advertised the application at all. The answer is simple: users.
My users, my wonderful, generous users, were spreading the app by word of mouth. Enough people found it interesting and useful that the press people organically stumbled upon it. They found it useful enough to write about it. Rinse, repeat.
This is, of course, a double edged sword, as most things are. Or even a triple. Quadruple? I'm losing track of the edges at this point.
On the one hand, more users is awesome. I'm happy so many people are finding use in my application, and am flattered that so many of them think my code is worth using. It's really a humbling experience to see hits in Google Analytics from 678 cities across every continent but Antarctica.
But with users comes server load. Server load brings crashes. Impending crashes need to be reported to users, and I have no real established way of doing so. Except that nice, big database of 1600+ emails. I battled myself over the decision—I do not want to be spamming these wonderful users who have given me so much—but decided, in the end, that keeping them informed of absolutely critical things by sending an unsolicited email was better than letting the server crash, and having a thousand plus people wonder what happened.
That doesn't take the sting out of "dev sends emails without opt in." though. Understanding your users' disappointment in you doesn't change the crappy feeling you get.
I've even received complaints about the OAuth authentication screen. A shady app name (the Extension's ID) and the "insecure" (unregistered) connection combined to make users feel uneasy. Which is wonderful, because it means people are actually reading what they're agreeing to. And it should be more polished, I agree. I'm working on that. I was just totally unprepared to have more than a thousand users under a month after I launched.
But the complaints, accusation, and distrust—all understandable, if unnecessary—are far outnumbered by the positive feedback I've been getting. I've received ideas today that go far beyond what I've ever envisioned for the application, and that I'm excited to start implementing. I've received more donations (for greater amounts!) today than I have up to now, combined. I've had more thank yous and well-wishes, more people inquiring as to how they can host servers to reduce the load, and more inexplicably wonderful random acts of kindness from strangers as they spread the word, than I have experienced thus far. This is why I'm an Open Source advocate. The very email I was so criticised for, a user felt strongly enough about that he wanted to share it on Buzz as an example of a developer that cares.
Heck, even Bob emailed me, out of the blue, to congratulate me on the success.
So, I guess that's my lesson for the day: with success comes server strain, and with happy users come unhappy users.
All I can do is try to keep the servers up, try to make the best application possible, and do my best to keep as many users happy as I can.