Web starting up
So I am thinking of writing a Web application that can “make money”. I don’t quite believe in advertising or accumulating a community to sell on, so I need:
A way to take money Well there is Google checkout and Paypal, but why go through a third party?
I recall setting up a merchant account with a bank in Australia to take client’s money. It was very painful, but doable. I wonder how it is in England or Europe. Do you have to setup a business? I think so. What other paperwork? Taxes? Argh!
Manage users User accounts, reputations, discounts, rewards, subscriptions, tariff plans, direct debit, billing, all that. It’s complicated! Does any Web framework take care of that all? I don’t think I’ve personally used a system where I am completely happy with the way I get billed. Ok, I must say Flickr is doing a great job of extorting money out of me.
Marketing I need some referer sub-application to help let existing users tell their friends about this great Web application. Ok, sending a email from a user to that user’s friend is not terribly difficult to implement, though it can pose problems. For example I don’t want to appear spammy. Also users that do refer other users need to be rewarded. Ok, that may go back under the manage users, but it’s complicated. Ideally users can become your salesman, so you need a process to pay them money.
Mobile version OMG, had to throw this in there. A lot of companies seem to write Java ME apps for phones, which I think is nuts. I think one has to carefully test one’s Web application with mobile UAs. This might help with usability testing and what not. The Web application has to be simple (KISS), which it wants to be. But it might make my Web application very dull (e.g. no images).
Introspection The blog post The Pinocchio Problem resonated with me. For example, I have great difficulty keeping track of my Web applications. Are they running? Are they performing? Are they under attack? Who is using it? Who has used it? I am not comfortable with this at all in my applications. I recall we had a logging system in a previous job with this horrible Jboss application that had to be turned off (on the live system) as it was making the entire system so slow. Hilarious!
Deployment Which provider? Where? Bandwidth charges? Which system? Which version? What httpd? What programming language? What framework? How is going to scale? How are you going to do backups? What happens if it goes down somewhere? A backup in another data centre? This is all also, you guessed it, really complex.