Ignoring Google Wave

Business, Ruby on Rails No Comments »

There’s been a lot of buzz surrounding Google Wave recently, and I’m proud to admit that I still have really no idea what it is. I’ve decided to ignore it and let the rest of the community digest it and tell me whether it’s the real deal or just a flash in the pan. Why? Because I’m trying to be an entrepreneur, and Wave is not going to make me any money.

I’ll admit, it’s tough not to get caught up in the excitement. Here’s a snippet from an email I received recently regarding a meetup to discuss Wave (original emphasis left intact).

I’m going to make this short and sweet. We have a meeting this Thursday July 16th. The next paragraph explains why, if you are a true web enterpreneur, you shouldn’t miss the event.

If you didn’t cash out during the DotCom boom and haven’t found success with the Web 2.0 surge including the Facebook and iPhone app bonanzas yet are still looking for opportunity then you need to seriously think about Google Wave. To learn how Google Wave could be the “3rd wave” of Internet Innovation behind “DotCom” and “Web 2.0″ come to our AWE meeting this Thursday July 16 as we’ll present Google Wave and have an open discussion on the opportunities that it presents.

Wow. When I read that, my first thought was: “I had better be there. I don’t want to miss the boat yet again.” I never made a Facebook app (except for work), and I likewise didn’t make a million in the App Store. I’m still working on making some Web 2.0 money, but it sure hasn’t resembled anything like a hockey stick. So, getting a foot in the door early on “the next big thing” holds somewhat of an allure for me, as I’m sure it does for any hacker.

However, I’m trying hard to keep myself head-down on DoLeaf and Obsidian Portal and ignore all non-core technologies. I don’t need a new toy, I need new customers. Plain and simple. Jon Crawford of Storenvy says it best: Stop learning new stuff! (13:40 minutes in) I think that’s the difference between a hacker and an entrepreneur. At some point, the entrepreneur has to do the 90% of the app that’s not cool and not fun. Hackers can put down their current project and pick up a new toy whenever they feel like it. It’s a good life, but I doubt it leads to financial success.

So, if you’re a hacker, please play with Wave, make something cool with it, then push it in my face so I can’t ignore it. Meanwhile, if you’re an entrepreneur who already has a project, I suggest you do what I’m doing: Get back to work.

Atlanta Startup Ecosystem 2.0 – Lifestyle Entrepreneurs Not Invited?

Business 11 Comments »

I noticed the other day that some of the organizers in The Scene (ie. Atlanta startup culture) are hosting a meetup to talk about the next steps needed by the startup community. In big bold letters are instructions detailing that possible attendees should evaluate themselves according to these criteria:

Who SHOULD Attend

If one of the following phrases describes you then you SHOULD attend this event:

  • Entrepreneurs who “Swing for the Fences”
  • Angel Investors, Venture Capitalists and Institutional Investors
  • Service Providers that service the Startup Community
  • Other Supporters of the Startup Community Ecosystem

Who Should NOT Attend

If one of more of these labels describes you more than one of the previous labels then you SHOULD NOT attend this event:

  • Lifestyle Entrepreneurs (emphasis mine)
  • Small Businesses using the Web for marketing
  • People who prefer the security of employment
  • Developers, Designers, Freelancers
  • Internet and Network Marketers
  • Interactive Agencies

No Lifestyle Entrepreneurs?

As a recovering wannabe “Swing For the Fencer”, I’m dismayed at the specific exclusion of lifestyle entrepreneurs. When did running a successful-but-not-Google-size business become a failure? Wouldn’t The Scene be much better off with dozens or hundreds of successful small businesses as opposed to a handful of mega hits and hundreds of failures? Let’s keep this list growing at a healthy clip, while keeping this one as small as possible. I know people love to throw around fail-fast as a mantra, but I prefer to win-slow. Successful small business that pays the bills? Put me down for one, please.

In my own experience, I was only able to truly get a shot at success when I stopped swinging for the fences. When I stopped dreaming about VC money, IPOs, and a Google buyout, I set about to actually building a revenue model for my projects. In addition, I stopped pursuing ventures that had no underlying business model besides the get-big-get-bought prayer. All of a sudden, I started making money. It’s not a lot, but it’s growing. I bunted my way to first base, and now I’m trying to figure out how to steal second.

Tweet Less, Blog More

Uncategorized 6 Comments »

Goodbye Twitter

After playing with Twitter for a couple months now, I’ve decided that it’s really not all that useful as a way to express my thoughts and feelings. I spend a lot of time trying to come up with witty zingers, but nothing I say ever generates any real commentary. My gut feeling is that very few people actually read what I tweet, which is a little humbling and disappointing. More and more it feels like I’m screaming into an ever-more-crowded room filled with people screaming. We’re all trying to out-scoop or out-zing each other, in 140 characters or less.

Conversely, this blog has always felt like a calm, collected place where I can express my thoughts and interact with a small group of interested readers. The majority of my posts generate little traffic and zero comments, but I know they’re read by my close friends. However, I’ve had several blog posts that have generated a great deal of commentary. I provided some thoughtful analysis, and people felt compelled to comment (often after some baiting on Hacker News or Twitter). The readers learned from my experiences, and they added their thoughts. The postings remain visible and can be easily found via Google. Finally, many of the posts still generate traffic and comments even months or years after the original posting. Try getting response to a tweet even 6 hours after the original posting.

For these reasons, I’ve decided that I’m going to reduce my time spent on Twitter and instead try to collect my thoughts into real, thoughtful writing. If I feel the itch to go tweet about something shiny, I’m going to ask myself if it’s something that I really think people care about, or am I just acting under the same impulse as the people who write “First!” in comments on Youtube. I’ll still succumb every now and then, but I think I’m over Twitter.

Update: I’ve also found that going on a massive un-follow campaign can vastly improve your Twitter experience. Clear out all the cruft: celebrities, brands, logos, and especially the chatty egoists who never shut up. Once you pare it down to just friends and a handful of personalities, Twitter is much more enjoyable.

Ruby on Rails hosting review with Blue Box Group

Business, Ruby on Rails No Comments »

Hosting a Rails app has always been a bit of a pain. Standard shared hosting was always pretty much out of the question, so most people naturally migrated to some sort of VPS. The obvious upside of being able to do whatever you want is a big draw. However, there is a dark side to every VPS: sysadmin work. Updating with patches, installing software, setting file permissions, and all that plumbing takes a lot of time. Then, there’s the big-daddy of them all: managing your own SMTP server. Sure, turning on Postfix or Exim is pretty easy. I just hope you don’t mind it when all your emails disappear into spam boxes.

For Obsidian Portal, we have been happily hosting with Slicehost for a while. Their uptime has been great, and we appreciate their services like automated backup and DNS management. However, we have been handling all our sysadmin tasks ourselves. So, when Ryan recently met one of the representatives from Blue Box Group, and he said that they’re happy to handle all that for us (at no additional charge!), we were quite interested.

Since we’re currently spinning up DoLeaf, we decided it would be a good time to see what we can get with a more hands-on hosting provider. And, after just a few days, we’re very impressed.

Choice of Distro

Blue Box’s basic installation is some flavor of Red Hat. Ryan and I are Ubuntu guys, so this was a problem. A single email to the support staff: “Hey, can you rebuild our server with Ubuntu server edition?” Answer: “Yep, it’s done.” Awesome.

Firewall

Anyone else think iptables is a bit of a pain? I can use Firestarter or Webmin, but when I try to manage it manually, forget it. Luckily it only has to be done once. Or, in the case of BB, never. Just send an email with the ports you want open. They set it up and replied, plus added a few standard ports that we forgot.

Rails Stack

BB supports several different Rails stacks. We’re used to Apache2 + Ruby Enterprise Edition + Passenger + Rails 2.3.2 + MySQL 5. Even though this kind of setup is pretty straightforward, it always seems to take me at least 1-2 hours just to get things set up in the most basic configuration. Now? You guessed it. Send an email and I’m done.

Functioning SMTP – The Great White Whale

We’ve always had problems with emails disappearing en-route. Getting Postfix set up is a 5 minute job, but your emails randomly get flagged as spam, especially by the big boys like Google and Yahoo. There are many different ways to counter this, like SPF and DKIM, but they are a pain to set up, and it’s always tough to know if you got it correct. This was the tipping point for me with BB. They have an SMTP server preconfigured with SPF and DKIM and you can use it for sending emails from your app. They limit you to 750 emails / hour, which is way more than most apps need, especially in the beginning. Considering that we had evaluated similar solutions that wanted to charge $0.01 / email, having this included for free in our hosting plan was mind blowing. Never again will I host anywhere that doesn’t do this.

And the cost?

The most surprising thing is that I haven’t been charged $0.01 for additional support. I’m still testing the waters to see exactly where that line is, but so far, I haven’t hit it. Plus, their prices are quite competitive. Slicehost is a little bit cheaper, but when you factor in the time saved on setup, I’d say we’re already way ahead.

We’ve only just started with Blue Box, and things may go south at some point, but for now we’re ecstatic with what we’ve received. If you want to spend more time coding and less time on irritating sysadmin tasks, then I highly recommend taking a look!

What does a programmer have to barter with?

Business 10 Comments »

Any bootstrapping entrepreneur needs the ability to barter. There are a lot of things you can do, but many many more that you can’t. So, you partner up with other like-minded people and barter your skills and time.

For Obsidian Portal and DoLeaf, we’ve been getting lots of free graphic design work from our friend Drew at Fifth Street Creative. He’s really great and does awesome work. The only downside is that I feel it’s too much of a one-sided relationship. We get so much, and I’m not sure what we provide in return. I’m afraid we’re draining the well dry and eventually he’ll say no, or even worse, won’t be a friend anymore.

They’re fast, I’m slow

Given an hour or two, a graphic designer can make some great stuff. A handful of new icons, a couple ad banners, even a brand new logo. The end result is easy to transfer, and it’s immediately useful. I don’t want to underestimate the amount of effort that goes into graphic design, but it just seems to me that most designers can create some great stuff really fast.

What about a programmer? What can I do in an hour or two that’s useful to a designer? I really can’t do any meaningful programming. A “whole site” is completely out of the question, and a new feature is often pretty tough to implement as well. I might be able to help fix a bug, but even just getting the development environment set up can take anywhere from ten minutes to a couple hours. It’s just not practical to do any real programming in such a small time frame.

The Goal

My goal is to figure out a symbiotic relationship where everyone benefits, everyone stays happy, and it’s sustainable. The ultimate setup would be where both parties always feel like they’re getting a little more than they’ve earned. I want it to be where both parties are saying, “What I do is so simple and easy. It can’t be worth the awesome help the other person is giving me.” From that perspective, here’s a few things I think I could offer:

Javascript

I think a lot of designers deal with Javascript, and I can imagine it’s a frustrating time for someone with very little programming experience. I’m definitely no expert, but I can usually get the job done.

CSS Help

Again, no expert here, and I’d imagine that many designers are already better than I am. However, if I’m working with someone whose experience ends with Photoshop, I could probably help quite a bit with turning a PSD into styled XHTML.

General Troubleshooting

You can’t become a decent web developer without learning a little about sysadmin tasks. Managing databases, creating users, and creating cron jobs are all skills that every decent programmer can handle. I know a lot of people are terrified of a shell prompt, so I can imagine this kind of help would be very useful.

From the comments

As usual, our readers have a lot of great ideas. I’ll try to compile my favorites here.

User Interface/Experience Advisor

You can help your designer friends by being another set of eyeballs and allowing them to bounce ideas off you. In addition, with your knowledge of server-side programming, you can advise on what is and isn’t possible/practical in terms of interaction or AJAX.

Submitted by Stephen and Ali.

Backups

Keith G had this idea, and it’s quite novel. I doubt people will ask you to help them with a backup strategy, but you could definitely suggest it. Just ask your friend, “What’s your data backup strategy?” A blank stare means it’s time for you to explain the importance of database and asset backups. A little work with mysqldump and S3, and you just saved them a world of hurt.

CMS Setup and Education

I always assumed that graphic designers all had their favored CMS’s. However, according to Jordan Lev, this is not the case. Spend a couple hours showing your designer how to install WordPress or Drupal, and you open up all kinds of doors for them.

Others?

Is there anything I’m missing? I’d especially appreciate commentary from graphic designers who are in need of technical help. What do you need? What could a programmer do to help you?

What we did to (not) get into Techstars – Part 2

Business 7 Comments »

In Part 1 of DoLeaf’s TechStars story, I covered “the facts.” I tried to dispassionately catalog what we did during the application process, in order to provide some comparisons for teams that are considering applying. In this installment, I’m going to examine whether or not it was good for us to apply, and why.

There are a few ways to look at this, and I’m going to try and be brutally honest and not take the “It was a fun learning experience” way out. I don’t want to offend the powers-that-be, but at the same time, I want there to be more honest info out there for confused entrepreneurs like myself.

Random Thoughts

I can’t figure out how to organize this post, so I’m just going to toss a bullet list out and let you figure it out for yourself. Some are examples of things we did wrong. When I say “wrong,” I mean wrong for our team, not wrong for the application process. They might have increased our chances of acceptance, but obviously not enough to get in. Other points are pieces of advice that I would give to anyone applying.

Techstars for a Day

I think it was a mistake for all of us (or any of us) to go to TS4AD. It was fun to meet up and go to Boulder, and I got to meet Drew (who has done so much for us), but it was pretty expensive. I guess we all have day jobs so we can afford it. However, if you’re a struggling bootstrapper reading this and trying to decide whether or not to go to TS4AD, just realize that even if you go, the odds are still stacked against you. In addition to the expense, we also lost several days worth of productivity. As always, I recommend focusing on your project and keeping your head down into your work.

Sweating the small stuff

We quibbled and fought sometimes over the emails that we were going to send to David or Brad. We’d edit them a couple times to put our best foot forward. I’m a nitpicky editor, and Sarah got tired of my harping on small issues in the emails. Time spent on this was not time spent working on DoLeaf, and it caused friction in the team. What did we get for it? Nothing.

Invest your time wisely

As a startup, time is your most precious resource. If you’re a bootstrapper like we are, then you’ve only got a precious few hours each night and on the weekend to do your work. It’s amazing what you can do, but it still takes time.

We didn’t track how much time we spent on TechStars related work, but I would guess that all the emails, discussion, and planning took a lot of time. Further, TS4AD took two days for each of us, totaling six work days. That’s a pretty big time investment. In two days of straight work I could have probably added 2-3 big features, like integrated shipping controls or an intra-site messaging service. Plus, I wouldn’t be writing this jaded blog post right now and would be working, instead ;)

The illusion of progress

David strongly suggested sending him and all the mentors regular updates regarding our progress. When we initially posted our application we already had a working demo. In the final month of the application process we completed several major milestones. However, these features were often subtle and not frontpage eye popping changes. Hence, after submitting our application, we never had major dramatic changes that jump out at you. We assume the TechStars folks had hundreds of applications to sort through and little time to do a daily checkup on progress. So, since ours looked the same time after time, it probably gave the impression that we were doing nothing.

There are two options when dealing with this: organize your work to show new zazz on the frontend every few days, or work like hell on what you think needs it and hope it shows. Option one is better for your TechStars application, while option two is better for your company. Guess which one I recommend?

Never compromise your vision!

If you do apply, and give it 110% like we did, you’ll probably end up getting some advice from David or the other Techstars people. In our case, none of the advice was contrary to our vision, so we went ahead and followed some of it. However, if you’re unsure about any of the advice, discard it. At the application stage, they’re just not invested enough in your idea, so their advice has to be weighted as such. Well intentioned, sure, but not to be taken as gospel.

You can’t get them excited

Don’t go out of your way to get the mentors excited. We tried hard to keep them in the loop and get them excited, but I don’t think it worked all that well. My advice would be to let your work speak for itself. If your idea is exciting to them, they’ll seek you out for more info. If they don’t find your idea or team exciting, then there’s probably nothing you can do to change that.

Read the responses (or lack thereof) to get a clue as to their excitement level. We should have picked up on this early on, but we were blinded by our own excitement. See David’s comments below and you’ll see that he and the others didn’t go nuts over a plant marketplace. There is really no way for us to change that. No sense trying.

The cost in morale of rejection

There are no units to measure here, but this is probably the second highest cost, next to time. When you’re doing a nights-and-weekends project for no money (yet), the only thing you have to keep you going is your excitement. Anything that endangers team morale should be considered a big threat.

We did our best to keep expectations low, but we inevitably started to make plans around TechStars. We daydreamed about what it would be like to hang out in Boulder. I thought about the envy my fellow startup guys in Atlanta would feel when DoLeaf got selected. Sarah and I discussed what we would do with our house during the summer. Looking back now, I remember having some of these same sorts of thoughts when buying a lottery ticket.

So, when the rejection letter came, it was a kick in the nuts. All of us were very disappointed, and it’s hard to work when you’re sad. We’ve recovered now, but there’s always the danger that you just quit working. I’m not afraid of that for our team, but I’ve seen it happen to others.

Actively plan your life as if you won’t get in

Hopefully, it should go without saying that you shouldn’t plan your life as if you’ll get in. Don’t quit your job, sell your house, give away your dog, or anything like that. But, more than that, you should actively plan as if you won’t get in. This means signing up for things and making plans that conflict with TechStars. In my case, I signed up for a 200 mile AIDS charity bike ride and a yearly 10k run. If accepted to TechStars, I would have had to pull out of both. But, we didn’t get in, and chances are that we wouldn’t, so I’m glad I didn’t put the rest of my life on hold. Think of it as hedging your bets. If you get accepted, it will be a happy occasion to cancel your conflicting events. If you get rejected, you didn’t leave a big gaping hole in your schedule.

Meeting with Drew

On a happy note, my favorite part of the whole process was meeting with Drew of Fifth Street Creative. Drew and Ryan have been friends for a long time, and Drew has done some great work on Obsidian Portal as well as DoLeaf. He happens to live near Boulder, so we got to go see him when we went to TS4AD. I had meant to thank him somehow for all his work, but my thanks ended up being sleeping in his guest room and drinking his beer. I’m a real gentleman, aren’t I?

Was it the right choice?

Any question like this has to be evaluated in the context of what you knew when you first started. Here’s what we knew:

  • We have an excellent team.
  • We have past execution experience. Obsidian Portal is a profitable startup and still growing.
  • Our team is 2/3 technical, which is the exact ratio that Brad Feld recommended.
  • We had an existing prototype, and were just entering a closed beta.
  • Our idea has potential revenue from day one. It’s not earth-shattering, but it’s definitely something that can make money.
  • Techstars had selected a similar team with similar idea in the past. This can be seen as both a positive and a negative.

In addition, we didn’t know the exact numbers (527 applications, 20 selections, <4% acceptance), but we did know the odds were stacked against us.

In short, we have all the markers of a TechStars selection. So, at the time, we thought our chances were at least as good as anyone else. We were not starting with any handicaps.

Starting with all the info we had, I think there is a clear answer to the “Was it right?” question. I think we did the right thing in applying, but that we handled the application poorly. We worked on it too hard. We should have invested less time in the application process and more time in our project. The morale hit would have been easier to bear and the project would be further along at this point.

Concluding Thoughts

Applying to a seed stage program can be useful, but can also be a big waste of time. In order to be seriously considered, it seems that you need to put in a lot of effort, at least for TechStars anyway. For us, we spent a lot of time, but didn’t get selected.

I could say it was a learning experience, but I really didn’t learn all that much. Plus, most of what I learned came from the people at Foodzie. They were (and continue to be) extremely helpful. This is not a dig on TechStars, it’s just my opinion that, as far as “learning experiences” go, the TechStars application process had a low return compared to the time investment. The same was true of our Y-Combinator application, although we spent much less time on that. What I did learn (or re-learn) is the main thrust of this blog post: Invest your time wisely!

Perhaps I’m just conservative, but I prefer to spend my time on things with a higher probability return. Coding, advertising, promotion, and customer interaction all have some sort of guaranteed benefit for the time you invest. With these seed stage programs, you can spend a lot of time (like we did) and come up empty handed (like we did). That kind of all-or-nothing activity is something I prefer to avoid. Granted, I do recognize that in the improbable chance we were selected by TechStars this would have been a completely different post about how the investment was worth every hour spent. Then again, I’m guessing most lottery winners will tell you it’s a good idea to buy lottery tickets.

The one main benefit to the process is the initial application form. Both the forms for YCombinator and TechStars force you to think about your idea in a little depth. From that perspective, filling out the form is useful, like writing a business plan. It will help you come up with a revenue model, elevator pitch, and competition evaluation. So, submitting the application is a great idea. However, after that, minimize your time investment on the application and instead spend that time working on your project.

Based on my experiences, here is what I would suggest as a way to maximize the benefit of an application:

  1. Fill out the application form, and save it somewhere for access in the future. Think of it as a business plan. Plus, you can re-use the application in future rounds.
  2. Get back to work and forget about the application.
  3. If the program sponsors contact you with questions, answer them quickly and concisely. Don’t quibble. Then get back to work.
  4. If the program sponsors invite you for an interview and offer to pay expenses, definitely go. They’re showing a lot of faith at this point. If they invite you to a meet-and-greet, go if it’s close, not if it’s far. Think hard before shelling our your bootstrap cash to buy a plane ticket, hotel, etc. After the interview/meeting, get back to work.
  5. Work some more.

If you get selected, that’s great. If not, that’s OK too, since your investment is minimal. Instead, you spent that time working on your project and are that much closer to a release / new feature / milestone / whatever.

Above all, remember that your startup is what defines your success, not acceptance into a program. In the end, if you can break free of the dayjob world and work for yourself on your own project, who cares if you’re a Y-Combinator / TechStars / Whatever company? The goal of all this is not to be associated with any particular seed stage program, the goal is to love what you do and work on something you’re passionate about. So go do that!

Addendum: David’s Feedback

Once we became one of the Non-Selected TechStar Applicants we followed up with David asking for some feedback on what we were lacking. Below are the questions we asked and David’s responses (reproduced with his permission):

Micah: The team – Do we look good on paper (in our application)? In person? By email? Do we have a good skillset? Where do we compare to other teams?

David: The team looked good on paper and better in person. ;-)

M: Past experience – We think this is one of our best areas, as we’re very proud of what we’ve done with Obsidian Portal, our other startup. Did this come across well? What are we missing? Does it count against us that we’re running one startup while pitching a second?

D: I had assumed that the first startup was not going to be your focus on you started on this, so I wouldn’t say it was a negative factor at all.

M: The idea – We’re afraid that our idea just isn’t that exciting. We think it’s definitely a good one, but not the sort of thing that gets most people jumping up and down. It appeals to a special niche, which
we think is a good thing. Was this a factor in the decision?

D: Exciting? Ecommerce for nurseries – yeah, maybe not the most exciting thing. But that doesn’t matter. Most investors I know (including us) look for markets over excitement – the old adage is “boring=revenue”. ;-)

M: Ability to execute – Again, we think our ability to go nose-to-the-grindstone and execute instead of blowing smoke is one of our strengths. Did that come across well? Did other teams do massively
more than us in the application time span?

D: You guys did a lot during our diligence process, which is why you scored highly. But yes, I would say other teams advanced their technology much more rapidly during this timeframe. Obviously, it’s hard to judge just be that – but it’s one component.

Comments

I’d love to hear what you think about all this. I especially welcome comments from other rejected-but-successful companies out there. The chosen few Accepted often come out in support of their seed stage program, but like I said, lottery winners encourage you to buy lottery tickets, too.

What we did to (not) get into Techstars

Business 25 Comments »

Like many others, DoLeaf applied to TechStars this year with the hope that we would be inducted into the inner circle of blessed seed stage startups. Alas, it was not to be. As David Cohen puts it, we’re not rejects, we’re just non-selected. From our perspective, it’s a bit of semantic gymnastics, but oh well.

In any case, while applying, we read Foodzie’s Act Like an Underdog post and found it very helpful from a perspective of what they did to get into TechStars. In the interest of providing a control group, here’s what we did to NOT get into Techstars.

Note: While this is geared at TechStars in particular, we’ve also been rejected by Y-Combinator, so we’ve got experience with rejection and can therefore make a few generalizations. ;)

Note 2: There may be a little sarcasm sprinkled here and there, but by and large, this post is intended to seriously be a guide that others can use when determining how to approach applying to a seed stage program. This is our way of giving back what we can to the startup community. I’m following in the footsteps of someone I admire greatly, Failed Startup Guy (my name for him, given with the utmost respect). He gave it a shot, failed, and then was honest and brutal about what went wrong. That takes real guts.

The idea and the team

Essentially, DoLeaf is a marketplace for people to find and buy plants from independent garden centers and nurseries. There are a lot of smaller growers out there that want to sell over the web, but don’t want to deal with managing their own website. So, DoLeaf allows them to easily set up branded storefronts and begin selling immediately.

Yes, we’re similar to Etsy. Yes, we’ve heard of Foodzie. In fact, the people from Foodzie have been incredibly helpful.

The DoLeaf team is composed of Ryan, Me (Micah), and my wife Sarah. In case you’ve missed our previous postings, Ryan and I have successfully collaborated on our first startup, Obsidian Portal, for about 3 years now. Obsidian Portal is profitable, growing, and a lot of fun. We’re actually quite popular in our niche. Sarah is an avid gardener and able to speak the lingo and engage with the sellers to bring them in. She has been managing DoLeaf’s Twitter account, blog, and our outreach efforts, with a lot of success.

Our team has a proven track record of success. We’ve got the technical skill, the domain knowledge, and the grit to work nights and weekends while holding down day jobs. Our idea has a simple and obvious business model and will generate revenue from day one. In short, I think our team and idea are a perfect fit for a seed-stage entrepreneur program.

Pre-Techstars for a Day

Before TS4AD, we applied early (about a month before the deadline) and then exchanged a handful of emails to David. At this point, DoLeaf was a beta site with user accounts, stores, and the absolute basics. Still, it was a working site and not just an idea on the back of a napkin.

We also exchanged some emails with Emily of Foodzie. She was very helpful (and continues to be), and we asked her to send a letter of introduction on our behalf to David. We wanted to do everything possible to get the inside track.

Finally, we researched several of the TechStars mentors and picked one or two that we thought would be a good fit for us. We followed them on Twitter, started reading their blogs, and determined to meet them at TS4AD, if we got invited.

The culmination of this was an invitation to TechStars for a Day (TS4AD).

Techstars for a Day

We decided that we would all go to TS4AD, in order to show how committed we were. Plus, we have a great team and we wanted to get that across in person.

At TS4AD, we brought great business cards. To spice them up, Sarah made packets of Money Plant seeds and attached them to the cards. It was quite clever, if I do say so myself.

We talked to David twice, Brad once, and a handful of others, making a hard sell for DoLeaf. We handed out a dozen cards and mingled somewhat with the other teams. We tried very hard to make sure that David and Brad had heard our name several times. Repetition is simple, but surprisingly effective.

In the evening, we went to the Boulder New Tech Meetup, but left early to meet with our graphics designer in Fort Collins, CO. If you’re trying to get noticed for TechStars, there’s not much opportunity at the Boulder New Tech Meetup, although it was cool to see how much support there is for the Boulder startup community. Similar events in Atlanta wouldn’t be near the same size.

March – Deadline

Following TS4AD, we decided to give 110% to our TechStars application. That took the form of constant updates and emails to David and Brad. We averaged about one every two days, with follow ups to every email they sent.

We also moved DoLeaf into a closed beta where we invited some potential sellers to sign up, create a test store, and give us feedback. We got about three sellers to sign up, and their feedback continues to be invaluable. We made sure to notify David every time we got some feedback from a tester. We wanted to show that we were making progress on the promotional front, and not just on the technical aspects.

As instructed, we sent beta invite codes to Brad and David. They both signed up and played with the site at least once, and sent along some feedback. David went through the entire workflow to verify that our payment processing actually existed. For feedback, David said the images were loading slowly, so I went ahead and moved us to a CDN (Amazon CloudFront) to speed up load times. In addition, I made an addition to attachment_fu and got the patch accepted. We made sure to notify David, in order to show that we were supporters of open source (which we are!)

Finally, we discussed incorporation options with David. We asked about the differences between LLC, S, and C corporations. Plus, we mentioned our decision to implement a vesting schedule for all the founders, which David wholeheartedly supported.

By the end of the application period, we had gone from a basic site with some browsing to a closed beta with three test sellers, payment processing, a CDN, much better browsing, and a much better design. So, in my opinion, we made a crap-ton of progress over the course of the application period. Unfortunately, much of this was backend plumbing and didn’t involve a lot of zazz on the front end. I think that may have given a false impression that we were cooling our heels, when in fact we were busting our asses.

The decision

As I said before, the outcome of all of this was a “non-selection” for TechStars. On March 30, we received a letter from TechStars breaking the bad news to us. It was a major disappointment. We’re definitely continuing with the idea and are still very excited, but rejection is hard, plain and simple.

The point?

My whole point in writing this post was to give a comparison for a TechStars non-selection. There are plenty of selected companies to compare yourself to (although little information about their applications or status prior to acceptance), but precious little info on the companies that applied but got turned down.

So, when deciding whether or not to apply, and what to do (or not do), please use our experience as a guideline. The TechStars application process is extremely competitive, and it’s best to realize that up front. Don’t kid yourself that just because your friends tell you your idea is awesome, it is automatically better than 500 other awesome ideas. You’re running with the Big Dogs, and chances are you’ll get left behind. It’s just statistics. Plain, simple, brutal statistics.

Next: The Analysis

I’ve tried to be careful to keep this post as objective as possible. It is meant to be a catalog of what we did. In the follow up, I dive into the critical analysis of whether or not it was a good idea for us. I do my best to adhere to my New Year’s Resolution, but I’m still a little disappointed from being rejected, so you’ll have to be the judge. So, go read part 2!

attachment_fu and CloudFront

Plugins, Ruby on Rails 1 Comment »

I’ve recently added a patch to attachment_fu that allows for serving out your S3-stored files via Amazon CloudFront. So, if you want an instant CDN, it doesn’t get much easier.

(Note: For Paperclip users, check out this writeup on intridea)

Get the plugin

Get the latest version of attachment_fu from github.

script/plugin install git://github.com/technoweenie/attachment_fu.git

Setup CloudFront

You’ll need to sign up for CloudFront. It’s as simple to join as any of the other AWS’s.

Once you’re signed up, you’ll need to create what are called distributions. These are essentially mappings from S3 buckets to CloudFront domains. You can use the command-line API if you want, but I found it easiest to just use S3Fox.

In S3Fox, find the S3 bucket that you want to serve out, right click, and choose Manage Distributions. You will see a screen like the one below:

cloudfront2

Give the distribution a comment, make sure enable is checked, and click on Create Distribution. It will be InProgress for a few minutes, so just keep refreshing. Once it transitions to Deployed, you’re done!

Configuration

We’ve added one new option to the amazon_s3.yml file that comes with attachment_fu, distribution_domain. Copy the Resource Url (something like http://XXXXX.cloudfront.net) from S3Fox and enter it in your amazon_s3.yml file as the distribution_domain. Make sure to only get the domain and strip off the ‘http://’

Next, you’ll need to update all your has_attachment models that you wish to serve out. For each of these, add a cloudfront option like so:

class MyClass
has_attachment(
:content_type => :image,
:storage => :s3,
:cloudfront => true,
:max_size => 1.megabytes,
:processor => "Rmagick"
)
end

You’re Done!

That’s it! Now, everywhere you use myobj.public_filename, it will use the CloudFront domain and serve it through the CDN.

Bonus Points: CNAME

If you think the XXXX.cloudfront.net domain is ugly, you can set a CNAME on the distribution and do some DNS monkey-business to choose your own CNAME. I’ll do this at some point (and update this blog post), but so far it hasn’t been important to me.

Mailcar – A Rails bulk / mass email plugin

Plugins, Ruby on Rails 5 Comments »

Update I finally bit the bullet and went with Mailchimp. It was a great decision and it’s worth every penny. I’ll leave the original post up in case it’s useful to others.

In a nutshell, mailcar makes it (a little) easier to send a mass emails from your Rails app.

Get the plugin!

Newsletters, feature updates, or God forbid, security breach notices all require sending potentially thousands of emails. There are plenty of service providers who will do it for a fee, but if you’re a small-ish site run by stingy admins (like Obsidian Portal), then you don’t want to drop $100 every time you announce a new feature.

Mailcar is my attempt at simplifying this process a little and making it slightly fault tolerant. You can initiate a mass mailing, let it run for a while, stop it, resume it, and generally not worry about double (or infinite) sends or getting irreversibly interrupted.

In it’s current state (0.1) it does not work out of the box. You’ll need to edit the code directly to insert your own ActionMailer model, and add a function for extracting the list of email addresses. There’s probably other stuff too. I still wanted to post it because it’s a good starting point and the code is very simple, so you should have no trouble finding where to make modifications.

If anyone finds this plugin useful, please take a moment to refactor it and make it more reusable. Send me a pull request or a patch and I’ll put your name in the credits. Hopefully we can get it to a works-out-of-the-box state.

One final warning: sending thousands of emails without knowing what you’re doing will almost certainly land you on a spam blacklist. Double and triple check that your SMTP server is set up correctly with RDNS, SPF, HELO, and other acronyms that I don’t know. Don’t ask me about it because I don’t know. I’d just rather roll the dice on getting blacklisted than pay the bulk sender fees.

Linked from Penny Arcade – PA Day 2009

Obsidian Portal, Promotion, Site Admin 4 Comments »

On January 23, Gabe over at Penny Arcade gave a fairly glowing review of Obsidian Portal. It was short and simple, but basically said “They get it” when it comes to managing a D&D campaign. Minutes later, the PA masses started streaming in, and thus began the craziest couple of hours in Obsidian Portal’s history, and what I will forever call PA Day.


Beware the Cave of Tits!

The Epic Tail

Our traffic spiked by at least 1000% pretty much immediately. Page load times skyrocketed from a second or so into nearly a minute range. To compound the issue, I was at work plugging away on a hard deadline of “right now!” I couldn’t just ditch and go work on Obsidian Portal, so I watched helplessly as we were wanged.

Luckily, Ryan was a little more flexible than me, and he got to work. Logging into our slicehost panel, he immediately started spinning up a slice with 2GB of memory. All the while he was giving me updates via IM. It was like something out of a BSG episode, with the heroes spinning up the FTL drive while the Cylons are swarming them. (Note: We don’t consider the Penny Arcade users to be Cylons, although they might like that.)

Ryan: It’s at 30%

Ryan: 60%

Ryan: 90% almost done

Ryan: 100% – New slice is ready. It’s syncing and doing the switch
Ryan: come on…come on…
Ryan: We’re up!

All the while, I was terrified that something would go wrong in the switchover causing both the original and the new slice to be inoperable. Further, what if there was a problem with the DNS, causing requests to go to the old slice instead of the new one? I thought I was going to throw up, I was so nervous.

But within only minutes our new slice was up and running and doing a much better at handling the influx of traffic. Still, just to be sure, Ryan went in and started tweaking Apache / Passenger settings to make sure that everything was in tip-top shape. As we all know, Apache is pretty damned complex and it’s pretty hard to get the settings just right for your particular instance, especially on the fly. Things were running much better, so I was finally able to start relaxing.

The Fallout

Obsidian Portal had a massive spike in both visitors and signups. Our overall traffic was up 1,000% from the previous day, but even better, thanks to Gabe’s endorsement, the Penny Arcaders were signing up at a rate twice as high as regular visitors. Compare that to your average digging, reddit, or slashdotting, where visitors browse through and possibly leave a hate-filled comment, then move on.

By the time the dust settled on Monday afternoon when Penny Arcade posted a new story on their homepage, we had received thousands of new signups and hundreds of new campaigns. All in all, it was a fantastic weekend.

Visits were way up, but even better…
Pageviews stayed high even as visits declined. That means we hooked some of them!

Lessons Learned

Success or Failure?


Campaign updates were streaming in.

When the first wave hit us and our server started collapsing, it seemed as though we had failed. Here were thousands of people trying to get to our site, and they just plain couldn’t. Ryan especially seemed very frustrated.

However, when I thought about it later, I realized that it was a success, even if the site would have crashed and burned. Why? Simply because thousands of people were trying to get to our site. People were eagerly attempting to connect to our server and in the meantime were spreading the word about our site through the blogosphere, twitter, and others, letting all their friends know how the guys at Penny Arcade thought Obsidian Portal was so awesome. They also found resources in other locations such as previous reviews, Obsidian Portal’s Twitter account, Obsidian Portal’s Facebook Page, and even Michael Harrison’s Viemo Video World Building with Obsidian Portal.

The lesson? Maybe you scale, maybe you don’t, but at least you proved your idea. It’s a lot easier to take a popular site and make it faster than it is to take a screaming fast site and make it popular. The technology issues are by far simpler than the social ones.

Break out the credit card immediately

The very first thing Ryan did was to spin up a bigger slice, and that had by far the biggest impact on the number of requests we could serve. We could have tweaked MySQL settings, adjusted Apache processes, or experimented with exotic caching. Maybe it would have helped, maybe not. Optimization is a tricky business. When you’re at the point where your server is on its knees, you don’t have time to figure everything out, so spend money instead of time. Call your host and say “Gimme the biggest one you got!” You can always downgrade later.

Make basic optimizations ahead of time

Go ahead and spend a couple hours doing basic optimizations. For example, on Obsidian Portal, we had already applied some aggressive caching to the home page prior to PA Day. It took Ryan a couple hours to figure out. That’s a couple hours we didn’t have on PA Day, so we’re glad we spent them up front. Lesson? Don’t go nuts and try to optimize everything, but go ahead and do the basics. Do it now! Don’t wait!

Always have two sysadmins

I’m glad I have a day job (and a paycheck!), but that means I’m not always available to handle issues with the site. On PA Day, I was in crunch time at work and therefore pretty much helpless for Obsidian Portal. Luckily, there are two of us who can essentially do everything. That way, there’s a much better chance that if something happens, one of us can get to it and fix it before it causes too much trouble. It’s important to have failover backups for people as well as hardware, and someone to double check your ideas before implementing them in a hurry.

Yay Slicehost

slicehost
Getting bigger iron was our fastest, safest, and best course of action. Slicehost made it easy. We were able to spin up a new identical slice with double the RAM and CPU in only a few minutes. Essentially, Ryan flipped a switch, waited 15 minutes, and we were on a beefed up server. No service call, no email, just raw speed. Perhaps other hosts offer this solution, I don’t know. What I do know is that Slicehost has always preformed exceptionally, and we thank them for that.

Yay Passenger

phusion-passenger
When Ryan wanted to move from Mongrel to Passenger, I was a little skeptical. I’m always hesitant to “fix” that which isn’t broke. Seems a little like running in place to me.

However, Passenger made scaling a snap, at least as far as server management went. No editing the mongrel cluster. No managing and restarting via God or Monit. Just leave Apache running and it will do its thing when the requests start rolling in. It’s just one less thing to worry about.

Going forward

Things have calmed down a bit now, and we’re back to the sure and steady growth that we’ve been seeing all along. Our new Penny Arcade fans have been successfully hooked and are steadily churning out new storylines, characters, and campaigns.

On our end, we’ll keep working on the site, adding features, fixing bugs, and improving server performance to be better prepared for more days like PA Day. The continual good feedback we get keeps us energized and hopeful that it will continue to grow. We may not be rich (yet), but we’re creating something that people love, and that feels great.

And one last thing. It’s a site written in Ruby on Rails and we made it scale!

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in