A Happy Milestone

Since I started using e-junkie almost 9 months ago (has it been that long?), I have gotten three automated emails every time someone purchases from me:

1)  Copy of the payment receipt from Paypal or Google Checkout

2)  Copy of the IPN information, from e-junkie

3)  Copy of the customer’s registration email

That worked pretty well for a long time, and I always had a brief catch in my breath when I saw Thunderbird downloading “1/3 mails on the server”.  However, with the numbers of sales I’m getting this month (26 at last count on the 20th — keep in mind 30 is my best month ever), it was starting to get a little excessive.  Not that I mind every other email I received telling me that I had money, but it was getting harder to spot the mails which actually required action from the ones which were just for my reference.

So I turned off one of the three notifications.  If my sales go up about 25% more, I’ll be going down to one email per transaction.

Comments Off

Kalzumeus — The What, The Why, and a bit of The When

Picture this: you’re a young doctor, 32, recently married to your med school sweetheart.  Life is pretty hectic, what with being constantly tied to a beeper, carrying a cellphone so you and your wife can murmur sweet nothings in each others ears when not on call, and you having all the distractions of normal every day life.  Also, earlier this year you purchased a nice little house in the city to rent out to folks for some passive income, with eventual designs of using it to build up a little equity and maybe give something to the child you expect to be having one of these years, and then it hits you:

Being a landlord sucks.

Every first of the month you get to have even more thrown at your plate, and it is by and large busywork.  You have to check your mail to see if your renter sent you the check.  If they didn’t send you the check, you have to contact them fairly quickly to request that they send you the check, assess a late fee, field the phone call whining about the late fee, explain to the renter that just because their back door is a wee bit off its hinges that doesn’t mean they get to live rent-free, try to remember to call the handyman to fix that blasted door this week, get the check a few days late, drive to the bank, and wonder why on earth you took out a $200,000 mortgage to buy yourself a minimum wage job. 

There has to be a better way, you think.  Why can’t this be as easy as your wife’s hobby selling those Beanie Babies on eBay?  Deal with any questions or disputes by email, get an email from Paypal when the money arrives, no checks in the mail, no runs to the bank, no forgetting to mail the Beanie because there is a big announcement on your eBay dashboard on your computer saying “Hey, you haven’t mailed the Beanie yet”.

Kalzumeus makes being a landlord as easy as selling Beanies on eBay.

(Note: Kalzumeus is a codename and will eventually be the name of my LLC.  The actual product name is quite boring, was chosen mostly for SEO, and will be announced later when that website has some content on it and, ideally, a functioning demo.)

One of the nice things about Kalzumeus being a web app is that features can be added to it fairly easily.  At release Kalzumeus will support:

  • Landlords and renters logging into their accounts.
  • Landlords adding properties, residences, and renters to the system.
  • Landlords billing renters, with automatic repetition, in a very flexible fashion.
  • Billings for rent, parking fees, what have you.
  • Renters paying their bills online through Paypal.  All the landlord needs is a Paypal account, the computer handles the rest.  No messing with buttons.
  • Email notifications of rent due.
  • Automatic bill payment for most renters.  (My systems are more flexible for automatic rebillings than Paypal’s are.  I can, for example, bill someone on the 1st Monday and 3rd Thursday of every month.  I don’t know why you’d want to do that, but “1st and 3rd Friday”, for example, is a typical paycheck schedule and landlords like being able to bill people immediately after they get their paychecks.)
  • Roommates.  (This was a low priority feature, but it was free with an architectural decision, so it made it into the first release.)

What I eventually want to add:

  • More payment options for landlords to choose from.
  • Automatic paper dunning letters.
  • Expense/work order tracking.
  • Reports.
  • “Click this button to print out the stuff your accountant wants from you.”  (Depreciation calculation and all that jazz.)
  • Export to Quickbooks, CSV, etc.

Is this a big market?

There are fifteen million landlords in the United States, according to Intuit.  The most common number of properties owned is one.  (Cue the “If I could get 1% of that market…” song.  Now all I need is a venture capitalist and I’ll have all the ingridients for a funding round.)

Who are the competitors?

On the one hand, we have property management companies, which charge a figure anywhere between 6 and 10% to stand in for you in all or most interactions with tenants.  There are also services which will do ACH (Automated Clearing House) deductions for landlords, which are a way to automatically withdraw set amounts of money from someone’s bank account, for approximately $10-15 a month plus $2 per renter.  Some of these services also provide online reports, although the functionality is fairly limited.  Finally, there are many, many companies which offer “property management software”, which is basically integrated accounting packages set up for landlords.  One I have a lot of respect for is LandlordMax, run by a fellow uISV.  (Before anyone asks, I don’t see him and I as really being in the same niche.)

Why go into a market that crowded?

Because the vast majority of my competitors sell chainsaws and there are a lot of landlords who really need butter knives.  Much of the property management software is geared at professional property managers, including folks who have strong accounting backgrounds and are managing hundreds or thousands of units simultaneously.  I think there is a whole lot of overkill going on for folks who are at the “I’m not so much a landlord as I am a teacher who happens to own a house which I rent to people”  side of the market.  Additionally, the pricing models for many of the existing solutions totally ignore the needs of small landlords, probably because they are not nearly as lucrative as large landlords. 

Pricing Model

I am thinking of doing one month of free trial and then billing folks $X per month.  I have not decided on a final X yet, but am thinking $10 or $15 puts it in line with many of the successful small business web applications.  If folks want to prepay for a year I’ll give them two months free.  The wild card is Paypal costs, which for many of my customers are going to run at essentially 2.9% of their monthly rents.  That is a lot of money for just processing payments (comparable with running credit cards yourself, a heck of a lot more than using an ACH service).  At a $650 average rent in the US, that works out to about $19 in Paypal charges on top of whatever I charge.  I am cautiously optimistic that if I make it easy to use I can justify a price premium from some landlords over ACH payments, which are not exactly easy to set up (contracts need to be signed, faxed, etc), and am extraordinarily confident that for folks who are looking to accept credit cards I can do a bang-up job.

I am also thinking, eventually, of offering a separate $99 a month account type targetted at professionals (management companies and the like).  They’ll be able to create logins for the property owners, who can check the website at any time and see “Ooh, yay, I’m making money”.  That will require a bit of rearchitecturing so it is slightly down the road.

The Shoestring Factor

I have already booked most or all of the prelaunch costs.  While I don’t have my tab in front of me at the moment, they came to a little less than $250 last time I checked.  That includes a year worth of hosting with Textdrive prepayed.  (Just over $10 a month, even counting the setup fee.)  If my hosting plan is inadequate for keeping a Rails application running, which I have been hearing conflicting reports about, I’ll get one of their medium accelerators (basically, a slice of a server) for about $65 a month.  Currently, my break even number of customers is one.  If I end up buying the accelerator, that will put the break even number at between 5 and 7.  (Bingo Card Creator, by comparison, is profitable from the first customer every month to the last.)

Where is the end-game for this?  I don’t know.  My goal for the intermediate term is 300 (paying) customers, and I’m hoping to have say 80 to 100 by the end of the year.   (I generally like to set small and achievable goals and scale up from there.  My first goal for Bingo Card Creator was $200 a month in sales.  Hit that and kept going…  working on $1,000 a month now.)  As scary as this is to say, 300 paying customers would be enough for me to quit my dayjob.  (I love being a uISV.  If you’re doing some sort of advertising funded social networking site, you can have hundreds of thousands of users and still be losing money every month to your massive hosting and infrastructure costs.)

Marketing

Blog, SEO, and AdWords to start out, more as time permits.  I’ve been looking at the market for a couple of months and while “property management software” is an absolute bloodbath I am fairly confident that I can SEO very well for other queries, like “pay rent with credit cards”, “online rent collection”, and the like.  I don’t need or want to compete with the largest players on their own turf — for the moment I’ll be quite happily picking and choosing crumbs dropped from the table.

Demo / Ease of Use

I’m working at having a mostly full featured online demo for the software, part of my usual quest to get folks to the shiny bits as quickly as possible.  I also have no-hassle, no download, no credit card, “Give your email address and get started” account creation.  There are plenty of examples you can find of Web 2.0 companies who do Actual Business Processes without requiring 30 minutes of forms to get started.  I am practicing the most sincere form of flattery with regards to the design of my own signup process. 

In my timer tests (something I often did with Bingo Card Creator — time how long it takes from hitting the download free trial button to when the cards come off the printer), I can sign up and have automatic billing working for a renter in 90 seconds.  We’ll see if I can’t shave some more off of that when the interface is more complete and AJAXified.  For example, I want you to be able to do the most common types of rent (monthly on the 1st, monthly on the 1st and 15th, etc) with about two to three clicks while adding a renter.

Legal

I am not decided on whether I will have a lawyer draft the terms of use or not.  I’m leaning towards “not” — the application can’t kill anybody, and a quick glance around the world at my various competitors shows that companies with Serious Money On The Line are quite happy to just have generic “If you bill your renter for a gazillion dollars and get taken to court, that is Your Problem” disclaimers.  The privacy policy is already drawn up, and looks very similar to the Bingo Card Creator one: we use cookies to track X Y and Z, we don’t sell your information, we won’t spam you, any questions feel happy to ask.

So when will this be publicly released?

I will happily show this as soon as I can without embarassing myself.  Since it is currently black text on a white background with the default Rails stylesheets for errors and much navigation is still accomplished by manually keying in the proper URLs, the app is not quite ready yet.

At the moment, the business logic for the first shipping version is about 80% complete.  The billing system still has yet to be implemented, and I have yet to write the systems for sending reminder emails, etc.  The interface, on the other hand, is only about 15% complete — things link to the right pages most of the time, but I will have to redo most of the views so that they look nice and pretty in Multiflex-3.  I also want to hand-edit the Multiflex-3 WordPress theme so that clicking from the product blog to the product site is a totally seemless experience, which by necessity involves a bit of headache since WordPress is PHP, the product site is flat HTML, and the application is Ruby on Rails.  Yay for getting to tweak the same template three times.  (I might eventually make the static pages served by Rails, but for the time being I know that new Rails apps can be a bit tempermental and if I should cause the app to die I would like people to be able to access the front page and send me a letter about it.)

Of course, since I’m currently winding down my employment contract with the day job and actively searching for a new one, the schedule could get changed at any time.  That is another reason why I don’t want to have a site in front of potential customers until I can have reasonable assurances that I have time to act on things that potential customers tell me.

My Capsule Impressions of Ruby on Rails

How am I finding Rails?  Elegant, but not easy.  I will need to do a refactor or three over the codebase to standardize the way I do some things before I release.  The amount of existing code which can be leveraged for my project is pretty low but when it does exist its amazing.  (You should see the graph libraries.  Wow.)  On the other hand, the community is growing rapidly and as a result the average level of skill in the community (and hence on forums, etc) is not quite so high yet. 

Test driven development has proven to be a lot like going to the gym — I didn’t enjoy starting it but the results are easily visible at the annual physical.

Since my interface is not in anywhere close to its final form yet I haven’t been AJAXing everything in sight, but I have identified a few places where there are major, major wins for user experience using it.  I was also able to replace graphs generated on the server with graphs generated on the client (using a clever bit of Javascript whose name eludes me at the moment), which moves the performance of the application from “fast relative to my projected needs” to “stupidly fast relative to my projected needs”.

Comments Off

Stats in Pretty Pictures

Images may be truncated by WordPress.  Feel free to click them to see the whole thing.

I had been planning to post these on my first year anniversary but somebody asked for them early so here they are.  Same disclaimers as normally: these were prepared for a blog post, not the IRS, and I did not exactly go to the extra mile to ensure their accuracy.  (They understate my July to December expenses as reported to the IRS by about $80, which I think is an artifact of cash accounting for the IRS and accrual accounting for the blog posts I grabbed most of this info from.  For example, when I pay for 12 months of service in advance to the IRS that all gets expensed in that tax year but in my blog posts I break it out on a per-month basis.) 

Keep in mind that the Google tracking, despite being mechanized, still depends on me not borking the tracking code, which I used to do on a semi-regular basis.  That is the main reason I’m not showing conversions on the graphs here. 

Actual totals:

Sales: $6,333

Expenses: $1,720

Profits: $4,613

Visits: 63,429

OK, pretty picture time:

 Bingo Card Creator Year One Profits

 Visitors:

Visitor timeline for Bingo Card Creator

Both Slashdot and the Joel on Software mentions were of my blog, not of my product site, but they resulted in a few clickthroughs to the main site.  (Incidentally: the blog gets about twice as many hits as the product site.)  You’ll note that the dog that didn’t bark is “Why is Patrick not seeing a trough of visitors (and sales!) now that school is out for summer, much like he saw troughs at Christmas, Easter, and every single US public holiday?”  Thats a good question, and I’m mulling some potential answers, but we’ll know more about them in about 2 weeks.

Notes on December: I don’t have a blog post for stats in December so I guesstimated my expenses by hand with a cursory glance at my credit card statement and Paypal account.  The sales stats are accurate — thanks, e-junkie.  Again, you’re not the IRS, so please don’t audit me.  It is in the right ballpark if I take the number claimed on my schedule C and subtract out the months I do have exact numbers for, remembering that my quixotic accounting standard screws up that comparison a bit.

Notes on June: Its the 14th of June as I posted this, and I did the uberscientific “multiply sales and expenses by two” to estimate income for the month.  That was probably overly aggressive for both numbers.  Ask me in two weeks.

Comments Off

May 2007 Stats

Capsule summary: treading water with the end of the school year, but see my next post about how summer is being much better to me than I expected.  (I was expecting sales for June to be barely enough to cover my AdWords campaign.  They are already over half of May’s.  Traffic has gone up.  The explanation is probably going to be of interest to you… but my hands are aching so it won’t be given today.)

Sales: 22 (with 10 CDs — note that that e-junkie cart change made ALL the difference!)

Gross sales: ~$600

Expenses:

Paypal: ~$10

GoDaddy: $7

e-junkie: $0 (usually $5, but they tossed me the month free when a system glitch caused me to have to manually process 3 orders.) 

AdWords: $52

AdCenter: $11

CrazyEgg: $9

SwiftCD: $49

Total Expenses: $138

Total Profit: ~$452

 I’ll talk traffic trends next time.

Comments Off

Programming Productivity Up By 10%… Yowza

Direct AccessI have tried expressing my love for Direct Access before.  Really, its hard to describe until you’ve tried it.  However, Andrea was smart enough to include an automatic logging feature in the newest version, which demonstrates exactly how much time it saves you.  (Memo to self: scrape user accounts for Kalzumeus, generate similar ROI-proving eyecandy, and put at the top of the Upgrade Your Account screen.  Its brilliantly simple salesmanship.)  For me, that number is scary.  Lets focus on yesterday, shall we.  Here is a shot of Direct Access on my home computer, which was on yesterday from 7 PM when I got home to 2 AM.  Of that, 3 solid hours was programming time, after doing battle with SVN fruitlessly for far, far too long. 

During programming time, I’m typically opening folders and programs left, right, and center.  Copy this to there, grab the backup of that, nuke those sources, where the heck was my Rails API reference, need to open Thunderbird to retrieve my SVN password, that sort of thing.  Apparently I do this more commonly than I had thought:

Direct Access Stats

I generally estimate 20 seconds to accomplish any random opening from staring at my IDE window.  For example, to get to the Rails API, that would generally be Start -> Internet Explorer  -> Google (my home page) -> Rails API -> I’m Feeling Lucky.  (Why type as opposed to using my bookmark?  Faster, less requirement for right hand, gets autocomplete.)  Given the need to take my hands off the keyboard and the lingering pain in my right hand, thats a good twenty seconds.

Well, thats a bit shorter, isn’t it. 

rrrTAB (used to be railsTAB, but I found myself typing it a lot) gets me a command shell opened to my Rails application directory.  sshTAB gets me a Putty window set to automatically log into the server I’m most frequently using.  All the power of the command line and autocompletion… from anywhere.  Bwahaha.  You can keep your OS X, vim, and bash, I’m puttering around in a deliciously iconoclastic Windows XP… at Unix sysop speeds.

I also love the autotext for hammering out boilerplate code… that turns out to be a heck of a lot less useful in Ruby than it was in Java, though, since a) I write less boilerplate and b) I’m not sufficiently well versed in the boilerplate to have prepared it as a macro yet.  In Java, on the other hand,  I know I will have to do intconvertTAB again, writing out a try-catch block to surround a very prosaic String to int conversion. 

try {

replaceMe = Integer.parseInt(cursorStartsHereAfterIHitTab);

} catch (NumberFormatException e) {

// Handle if string was passed by user, safe to ignore if string came internally.

}

The third time I type the same freaking snippet out it goes in Direct Access with a memorable abbreviation.   I have twenty of them for Java now, and a few for Rails, mostly for migrations and to act as quick references for syntax. 

You wouldn’t think shaving a few seconds here and a few seconds there would really matter that much, but the stats don’t lie.  A 165 minute programming session was a 180 minute session purely thanks to Direct Access.  Not bad.  I really wish they hadn’t forced me to uninstall my copy at work — “Well, Patrick, you see, we have a new security policy…”  Suit yourself, boss.  I get paid regardless of whether I’m being productive or not at the day job.  When I’m the boss, heck, time spent clicking is time spent not doing more important things.

If you don’t have something like this… get it.  Really.  Its a no brainer. 

As usual, product placements on this blog are 100% uncompensated.  I like it, I use it, it saves me time and money, I blog about it.  I do not solicit, accept, or envision folks giving me money for anything other than the products I sell.

Comments Off

Spending Money, Incurring Headaches

Kalzumeus is getting to the point where I want to start periodic deployments to the Internets to test it (yes, yes, that DOES mean I’ll be able to announce it publicly, sometime this month if development doesn’t hit snags), so I went shopping for a hosting service.  I eventually settled on TextDrive, which appears to have a decent reputation for Ruby on Rails hosting.  $124 later I was the proud owner of a new “startup” hosting package for a year.  I’ll be spending another $120 or so later to get a certificate for the domain but for now I don’t have any data that needs https so its a waste.

Sidenote: Its a wonderful age we live in where you can buy 95% of the tools you need to run a business for less than $10 a month.  The founder of Textdrive, a guy named Jason who clearly has some chops in the provisioning enterprise class server deploments department, reckons you should budget 10% of sales for infrastructure.  So, for example, if you plan on getting $10,000 a month in sales your monthly server/colo fees/electricity/etc bill should be about $1,000.  This may well be true for larger installations, but I’m pretty sure you can get by on about $30~$50 a month for $10,000 in sales as a uISV with some care given to app selection.  I’ll break down the math for you some other day, after I have an app and benchmark numbers I can point you to, to demonstrate that I’m not shooting smoke out of my hindquarters.

Anyhow, yesterday was a comedy of errors.  These are 100% my doing — I bit off a lot more than I could chew with technologies I do not have a full conceptual understanding of yet.  Example: I spent three hours trying to manhandle my local SVN repository onto the server.  The textdrive docs got me set up with a new repository in 3 minutes, but actually importing the information to it was a constant battle with Netbeans.  I eventually lost my most recent work to corrupted settings (“What do you MEAN I only have 3 class files?!”) after twiddling stuff with text editors, and had to cleansweep my local copy of everything, then restore from the local repository.  Then I got out Cygwin (bless you, Cygwin), killed all the .svn directories, deleted and remade the remote repository, and imported the newly-checked-out-locally repository into the remote repository.  One more open of Netbeans later and I was done.  Blaaaaah.  On the plus side, both Kalzumeus and Bingo Card Creator now exist safely outside of my hard disk.

Incidentally: its far, far simpler to set up hosting with GoDaddy than it is with TextDrive.  The difference in the level of control you get for TextDrive is night and day though.  I’m eventually going to have both Apache and Lighttpd running on the server, Apache proxying everything and making sure the /blog/ folder goes to WordPress, with Lighttpd putting things to the Rails application.  Try that on Godaddy… if you dare.

Then, despite the fact that it was running rather late, I wanted to get some actual coding done rather than losing a night just to wrangling with tools.  Again, 100% due to my own negligence, I lost a lot of time debugging why a transaction wouldn’t work.  Well, OK, 98% to my own negligence.  You see, Rails takes an awful lot of syntatic shortcuts which are deeply meaningful but documented in, I kid you not, exactly one throw away line in The Book.  And, unfortunately, the emphasis on “create code whose intent is crystal clear” gets lost in some of these shortcuts.

Example: build vs new vs create.  One throwaway line will teach you that create actually creates the object in your database while build/new just create it in memory, a sort of Key Distinction when you’re deciding “What do I need to guard with a transaction block?”  And, for more fun, build and new are interchangeable… except when they’re not.

@user = User.build #OK

@user = User.new #OK, same as above

@new_friend = @user.friends.build #OK

@new_friend = @user.friends.new # No new method on friends!  Whoops!

@new_friend = @users.friends.create # Works, but note different database behavior!

Anyhow, I will soon be establishing a blog at kalzumeus.com (you could visit there now, but its a fairly boring “coming soon” page that was autogenerated).  That will be getting most of my future programming/business oriented and professional development posts.  This way I can keep the blog for the actual product site focused on the customers rather than on myself or an interest the customers don’t share (“helping uISVS make money”).  I won’t be abandoning this blog in the near future, though.

Comments Off

Ranking For An Arbitrary Organic Search Query

This was posted on May 30th, 2007, Japan time. If it is after June 5th where you are, I predict that I’m pretty high on Google for the search arbitrary organic search query. I know this mostly by construction — I looked at the results before writing this post, observed that the competition is very weak for that query, used those words in my title, and will easily leapfrog over the weak competition.

What does that have to do with microISVs? Well, indulge me in a little meandering around the world of SEO for a moment. Roughly a fifth of my traffic at Bingo Card Creator comes from obvious and highly competitive search terms like “bingo cards” or “bingo card maker”. You know how many people have a substantial monetary interest at being #1 for bingo cards? Plenty of them, and most aren’t selling to elementary school English teachers, if you catch my drift. (Ironically, most of us who actually rank highly are. Go figure.)

Then I get another chunk of traffic from less obvious search terms, which I know because I know my niche well. Dolch Sight Word Bingo, for example. The amount of people searching for that won’t make me rich but they easily justify writing a page about it, which pays off month after month.

Then I get a huge percentage of my organic search traffic, about 60-70%, from arbitrary organic search queries. The majority of them are never repeated by another person, which gells with Google’s observation that 50% of search queries are unique (that is a “remembered factoid”, treat it with a grain of salt). Some are simple typos, many of them are natural language searches (“how can i make a bingo card for a third grader”), and then the rest are just unique because they’re… unique (“kasmir pulaski day spanish bingo” — yes, by the way, Bingo Card Creator will meet your needs). I like to mentally think of these as snowflake queries — every one is unique but if you look at a lot of them at once they certainly look a good deal similar.

I have actually been looking at snowflake queries and doing some work based on them. I’ve been doing some minor optimizations to my website for months, gradually including more content (which has a tendency to grab snowflake queries just because educated writers use synonyms and from Google’s perspective third grader != third grader != grade three != beginning English student) and adding in specific vocabulary which I wouldn’t use naturally but which my searchers do for whatever reason. For instance, some people call bingo cards “bingo boards”. Who knew? Certainly not me, as I went through my entire life without hearing that usage, but my search logs do not lie. This is the reason “bingo boards” is now bolded on the front page of my website and sprinkled on a few of the sub pages.

However, I had a bit of a brainstorm recently: this sort of optimization is nice and demonstrably effective, but what would happen if you took it to the next level. The trigger for this was when I wrote the blog post Increase Your Software Sales, I mentioned that it would rank pretty highly for “increase software sales”, which would be a nice thing if I cared about that keyword. When I said that, it was mostly a minor boast which I thought of little importance in the scheme of things. But it sent me to thinking:

1) Hey, wait a second, I can rank for a snowflake query with a really trivial amount of work. Put query in title, use in body text, don’t spam, done.

2) I have pages and pages of snowflake queries. Many of them have strong commonality in either words or theme.

3) These queries make me money. Snowflakes account for more than half of my organic search conversions.

And this got the wheels of my head turning. What if, instead of doing the haphazard optimization to grab some of the words in these queries that I wasn’t targetting already (like “bingo boards”), I just data-mined the bejeesus out of the suckers. Say I found 100 strings from there that were reasonably close to each other, distilled that down into 5 main words and 5 supporting words or variations, and then wrote my next resource page or blog post about them. Why, that page or post would probably rocket to near the top of 100 queries. That is worth pure gold, since people will write dozens of minor variations of each of those minor little snowflake queries. And my page or post would suck them all up in one big snowball of goodness.

I was briefly very, very excited about the idea, and started working on a gawk script to start clustering my snowflakes. (Incidentally: by training, I’m a natural language researcher. I know this to be a hard problem and yet hacky solutions to hard problems are fun for me — thats why I got into natural language research in the first place.) Then I slapped myself silly, figuring that somewhere on the Internet somebody smarter than me has already had this brainstorm and developed the same tool. I should really pay them the money for the tool and spend my time actually writing the text which will clump up the snowflakes (which only I can do, since I’m the guy who presumably has the domain knowledge) rather than reinventing a solution to a Certified Hard Problem and then using it to squeeze out an extra sale or two of a $24.95 app a month.

Anyhow, after a bit of searching, it turns out that the guy who already solved this problem made a webapp called HitTail. It has the broad thrust of the features I wanted: tracks what queries get people to find you (unnecessary, I can do that already), and then selectively picks queries out which (the site claims) hit a cluster of snowflakes and are not currently very competitive. I’ll be taking it for a test drive this week.

This is of particular interest for me for my next project (Kalzumeus, for regular readers of this blog). It is adjacent to a market space which is extraordinarily competitive and has many established firms with Big Budget$ To $quash uISVs. I don’t see them as particularly competitive for my niche but I do see them camping on some major keywords (both for organic search and AdWords). Time to go around the obstruction rather than running straight into it. I think I’ll see how far I can get with optimizing for snowflakes, well, once I have something to optimize for at any rate.

Comments Off

A Note About Startups Outside the Valley

I am strongly tempted to take this article, translate it into Japanese, and pass it around the office, because what works in Columbus, Ohio is also very true for life in Central Japan.  Even Nagoya is more of a Detroit than it is a Silicon Valley.  (Incidentally: nobody here knows what Craigslist is, either.  Most don’t even know Mixi, which is Myspace for Japan.)

I have one of my book length pieces in the works on how uISVs, like startups, can milk web apps for everything they’re worth.  My mental title for it is “The Beauty of Being Small”.  I suppose I should wait until I’ve actually got a web app to be giving advice about how to make web apps, though.

Comments Off

How To Rename A Web Page

I renamed my Free Resources page, which is the #3 most popular page on my site, to Printable Bingo Cards, which both more accurately describes what is available there and is a much better title for SEO purposes.  This required some slicing and dicing in all of my HTML files because that is a link which appears in my navigation bar.  Luckily, bash was adequate for the task as always.

for htmlFile in *.htm
do
  sed s/free_resources\.htm/printable-bingo-cards.htm/ $htmlFile > temp1.txt
  sed “s/Free Resources/Printable Bingo Cards/” temp1.txt > temp2.txt
  mv temp2.txt $htmlFile
  rm -rf temp?.txt
done

I also redid the title tag (“Free Resources from Bingo Card Creator” to “Printable Bingo Cards from Bingo Card Creator”), updated the site map with the new URL, and added a RewriteRule for the old URL to my .htaccess so that I don’t break any links from the blogs and schools who linked to it.  This is a fairly key step for any change you make that affects a popular page.  If you do not do it, not only are you hurting user experience on third party sites which trusted you with a link, you’re squandering PageRank that you’ve worked so hard to gain.  Adding in another rewrite rule takes like 5 seconds, so do it!

## put me somewhere near the top

RewriteEngine on

## put me in the big block of rename rules you’ll be creating

RewriteRule ^thanks-for-downloading\.htm$   http://www.bingocardcreator.com/thanks_for_downloading.htm [R=301,L]

printable-bingo-cards.htm is, by the way, pushing it on how many words I would suggest you have in a filename.  I’m fairly sure that is under the threshold to get penalized because one or two of my competitors use three word filenames, sometimes after having the same three words in a directory listing.  That is a bridge too far in my book, and I expect Google will smackify it sometime soon.  Repetition in the URL gives no useful information to human users, and it is not a “natural” design technique for a website either, so I suspect that Google will eventually toss it out as a useless SEO technique, the same way they habitually ignore overly-long-file-names-stuffed-with-keywords-like-this-one.htm .

Finally, don’t forget to resubmit your updated sitemap to Google.

Comments Off

Community-oriented Marketing — Forums, Usenet, Mailing Lists, etc

“So what did you think of the Season Finale of Heroes?””Dude no spoilers I haven’t seen it yet.”

“Oh, alright, highlight the following to see what I thought: *start highlight* The fight scene between Hiro and Sylar, which was supposed to be the highlight of the entire series, was over in less than two seconds.  He stabs him, the end.  What a let down! *end highlight*”

“Hi forum people!  Buy cheap Lost DVDs at spammerplanet.com for only $49.95 per season!  Free shipping!”

“Spam!”

“Spam!  Reported!”

“Where are the “#”#%ing mods?  I tell you, this forum has been going downhill since Tommy stopped running it.”

Recently, in the Business of Software forum, somebody made the observation that I have never posted to Usenet about Bingo Card Creator, and they reasoned from this that posting to Usenet about consumer software is unpopular.  (For those who may not know me: Bingo Card Creator is software which produces bingo cards for teachers.  I wrote and sell it as a small business.)  I’m both flattered and frightened that I’m supposedly representative of good marketing practices.  However, I think the conclusion should be a little broader than they one they drew: it is ineffective to directly market to a community which you are not a part of, be that a forum community, a mailing list, or a Usenet group, regardless of what you are selling.

What Community-Oriented Marketing Is

The key thing about Usenet or a PHPBB forum or your local school’s teacher mailing list is not the technology that is used to drive them.  The key thing is that they have a community, quite possibly a very tight knit one which has built up over years.  That community has its little social rituals, in-jokes, standards of acceptable behavior, shared history, friendships, rivalries, dramas, a whole tapestry of meaning for its members that you, the outsider, know nothing about.

If you attempt to sell something directly to the members of a community you are not a part of, you risk a great chance of falling afoul of community norms and an almost certain chance of wasting your time.  Many communities are quite opposed to the commercialization of what they perceive, correctly, as their shared social space.  Some have debates rage for years about whether its appropriate or not to put AdSense ads on a forum sidebar (sidenote to board admins: please don’t.  Regardless of whether its appropriate or not nobody will click them.  They’re coming for the community, not to be marketed to.  The only way to use AdSense on a forum is to put interstitial ads between posts and harvest misclicks.)  Some of them are filled with Slashdot-esque folks who are fundamentally opposed to people other than themselves making money for any reason.  Some are filled with folks who either do not have money or should not be spending it if they do have it.  If you’re not a member, you will not know the lay of the land, and you might step directly into one of the minefields.

Legitimate Ways To Market To A Community You Are Not A Member Of

Of course, there are a variety of approved ways to drop an advertisement in a community.  You could, for example, buy an AdSense ad there — see above, though, its tremendously unlikely to be effective.  Some communities have established Advertising boards — this should be a pretty big hint to you that they really would not appreciate an ad in their main forum.  Of course, traffic to their advertising board is a bare fraction of what it is to the main forum (if everyone wanted to see ads they’d be accepting of ads there!).  I spent about 2 hours when I started up Bingo Card Creator running around the Internet, finding ESL forums, looking to see if they had an advertising board, and dropping in a tasteful and honest ad for Bingo Card Creator if they did.

The Relative (In-)effectiveness Of Direct Marketing To A Community You Are Not a Member Of

The best performing ad out of those sends me a total of perhaps 10 visits a month, resulting in 2 trial downloads.  Think of that: one hour per trial download per month (TDPM — many marketing expenses are evergreen on the Internet, so its handy to watch how a one-time investment continues sending you traffic as opposed to watching the one-time spike of traffic immediately after posting).  By comparison, there are many, many better ways to deploy one hour of my scarce time.  One way would be to work at McDonalds, because a trial download is only worth about fifty cents to me.  But thats no fun.

Writing my Squidoo page took me 2 hours.  That was worth 5 TDPM.  Already thats doubly effective.

Writing a list of Dolch sight words for my website was “slightly” more effective.  It generates about 200 TDPM, partially from organic search and partially from folks who pass the link to their friends.  That page took, yep, about an hour to write and we’ll call it another hour work of linking from my blog over the last year.

Writing a single blog post about Free Bingo Cards took me about 15 minutes.  That generates about 150 TDPM.  (Note: I had quite a bit of help on that post thanks to an impromptu brigade of friends who decided to link to it.)

Oh, and in my portfolio of marketing efforts, there is one community link that sends me 20 TDPM.  It cost me 0 minutes to write, because I didn’t write it.  If I had written it, it wouldn’t have sent me a single hit.  The reason the link is so effective is because someone who was trusted in their community put their reputation on the line and said “Hey, check out this site, it will help you educate your children”.  It wasn’t an anonymous fly-by-night posting from some Internet entrepeneur (sadly, half of the world now thinks that is a euphemism for “spammer”), it was a recommendation given to the community by their childrens’ teacher. 

Trust Is Key

That is what community-oriented marketing comes down to: trust.  If you don’t have it, then building it up will take quite a bit of time, and you have much better options for marketing in terms of time spent per marginal exposure gained.  (See the above list for some ideas.)  If you are trusted somewhere, you might be able to effectively market there, based solely on your existing trust.

I personally haven’t used that method.  I am trusted, for example, in a community of ESL teachers close to where I live.  I know I could send out a email to the list and get 50 downloads of Bingo Card Creator in a day.  However, I’m trusted precisely because I have not been a self-promoter for the last three years, and I see no reason to throw that trust away now for a piddling amount of money.  On the other hand, I was a volunteer translator for a major Japanese ESL textbook, and they were kind enough to throw me a link from my biography (on the acknowledgements page) to Bingo Card Creator, which can’t possibly hurt.  That is marketing, but it is marketing which enhances my trust in the community rather than detracting from it. 

I strongly suggest that you do the same — don’t aggressively push your product at anybody who knows you and could possibly use it.  That makes you into the Internet equivalent of the Mary Kay lady, somebody who aggressively tries to promote her business to all of her soon-to-be-former friends to the exclusion of anything approaching a real, honest relationship with them.  Instead, continue going about interacting with your communities just like you do right now, and the marketing will more or less fall into your lap.

Finally, continue providing an excellent product and service to customers.  Customers are the first, last, and best marketing team you will ever have.  They are already trusted in more communities than you can even conceive of, and when they plug your product for you their words will be trusted and their consciences will be unburdened, because they are doing it to help their friends rather than to help themselves.  Its a win-win situation for everyone involved.

And, yes, I was severely disappointed with the last episode of Heroes.  Grr.  They’d better improve for next season. 

Comments Off