2008

2007

2006

2005

2004

From idea to profitable .com in 24 hours

▁ feb 19 2008

Picture 8.png

A while ago, I read an article called something like “Setting up a business in 24 hours”, alas my 30 second google search reveals nothing. Anyway, it was a fun read then, and over the weekend, I had a chance of giving it a whirl myself. Lets see how it went.

OK, first a little background. My girlfriend Katie is an indie designer, and she makes a boatload of beautiful things. She works nonstop. More importantly, she spends countless hours on various forums related to the subject.

She tells me that a lot of people are looking for some ways to advertise, and since they’re all indies, they also don’t want to shell out the big greens. That sounds perfectly reasonable. So here’s the idea: A site where people sign up for their own account, register their site/blog/whatever, receive a small snippet of HTML to include on that very page, and once we verify that it’s there, we activate their ads. The ads they add on the site will go into rotation then.

This rotation features a random picked ad from all the active ads. You can see how many clicks your ads have gotten and from where in the world they came, you can also see how many referrals you’ve made, i.e. how many times people have clicked on our ad from your page. Simple enough, yes?

So where to get started on this endeavor? We need 3 components: * A web interface * An ad server * Database * Cron jobs

I work with Django for a living, so that was an obvious choice for the web stuff. Django also has an ORM, so that gives us some database abstraction right there.

The ad server I chose not to write within Django, simply for the reason that this is the single most important component. We need as much throughput on there as we can get, so having the additional overhead of Django is not really cool.

So I decided that I want to write it in Erlang. First, though, I wrote a prototype in Python with CherryPy, which is just a simple web server framework, sort of. The ad server only does two things: record hits and spit out ads. And it does a heck of a job at it too. The database is just the models that Django decided to make for me, and I decided to host it on a postgresql db. That works very well.

The cron jobs; there’s only one. It runs every hour, and it checks whether the sites have our ad on their site. If they are previously activated and we don’t find it, we disable them and email them. If they weren’t activated and we find it, we activate them and send them another email. All very simple. BeautifulSoup does an excellent job crawling HTML pages that aren’t even valid XML.

OK, so putting all that together, writing the content, testing it out, doing some initial benchmarks to get a feel for how much we can handle, so I can anticipate when certain parts needs to be optimized? Took half a Sunday and some tweaking on Monday evening. But we are now live. We have over 30 members, and the ad server is purring like a kitten. People are figuring out how to use it, and I’ve already gotten hundreds of incoming hits to the site.

It’s fun to see all these unknown sites all of a sudden hosting your ads.

It’s been really fun to work on, and Katie’s been a great source of inspiration on this one (like most other things in my life.) She’s got the know-how and the inside scoop on these people, so we’ve been able to fill a market that was previously untapped. I hope it goes well! How is this profitable, you ask? Well, it will be in the future, but for good measure, we’ve made $1.31 in Google Adsense already. And that’s just a few hours in.

Check it out: Theindiego.com

← Previous: PostreSQL client in D  //  Next: So my Macbook died

comments

emh, 4 months, 2 weeks ago:

inspiring read. i’m constantly starting and stopping on half a dozen personal projects. nice to hear about someone execute one from start to finish. what did you do for hosting? at home? or did you find a decent hosting service that would let you run your erlang server?

Chris Kelley, 4 months, 2 weeks ago:

Very intelligent model. Love it, congrats on your quick start.

Al, 4 months, 2 weeks ago:

Jesper, In a different post if you’d like but I love to hear about the ins & outs of using Erlang in your particular use case, sounds very interesting. Al.

dmix, 4 months, 2 weeks ago:

Thats a great idea. My concern with ads, and the reason I so naturally ignore them, is that their most often completely unintresting-or what their selling has no value. If it was ads between similar sites in the same niche I would defiantly click on it. Mainly because I would have more credibility and its always good to have alternatives.

Jesper Noehr, 4 months, 2 weeks ago:

Al, I’ll make a note of it, and possibly write a little bit about it in a few weeks when I’ve had a chance to see how it performs under more stress.

Jesper Noehr, 4 months, 2 weeks ago:

emh: glad you liked it :) with regards to hosting the erlang, I’m not aware of any webhosts that let you do that these days, but I have some raw power standing in a servercenter here in Amsterdam, that I use for another personal project, which is far more demanding. I’m running Indiego on one of those at the moment, and the CPU usage is minimal. If/when this takes off, I’ll get a new dedicated box and move it over. It’s really quite a complicated setup (lot of caching/rewriting going on), so I’m gonna stick with a home-grown solution.

MGN, 4 months, 2 weeks ago:

-“But we are now live. We have over 30 members” How did you get your members? How did you get the word out about your site?

Jesper Noehr, 4 months, 2 weeks ago:

Bignis, My girlfriend has the pulse on the community, she’s very active on their current hangouts. She wrote a few posts in the forums and people came along. Btw, we have 98 members now!

powered by