Web designers and developers are passionate about what they do. It’s that passion that drives us all to take risk and build amazing things.

But at the same time, that passion sometimes makes us dive into projects heads first and unprepared. And that’s when it hits you <*SMACK*> like the first time I went to take a drivers test without studying; stating on the exam that it’s OK to drive through an orange traffic light “when you’re careful” seemed like a good thing to do at that time. It wasn’t.

Going in unprepared will cost you. Not only will it cost you time and money, if you’re not careful, your sanity will suffer as well.

In this post I’d like to share what me and my partner learned from starting up SolidShops.com (a hosted e-commerce solution aimed specifically at web designers), so that you can avoid the same mistakes we made. If you learn at least one thing from this post that saves you time and hassle in the long run, I promise I’ll never drive through an orange traffic light again.

Writing Code Is The Easy Part

Don’t fool yourself. Building the application is the easy part. You know how to write code and you can design the pages your users need.

It’s amazing to see your mock-ups evolve into a working app. But there’s nothing amazing about having an app that nobody knows about. So stop worrying about features, simple or complex. You’ll be able to code them all. What you really need to focus on is getting users.

Not The M-Word Again?

Ah the M-word: Marketing. We learned rather quickly that marketing is more important than features, especially when just starting out. Even if you have the most amazing application out there, if people don’t know you exist, your diamonds are shining in the dark.

Fortunately for us, we started with a coming soon page with a couple of early screenshots on it and most importantly: an email sign-up form. In the 1.5 years of development (that’s right, 1.5 years, but more on that mistake later) we gathered around 1800 email subscribers.

What we’ve learned is that nothing converts better than a targeted double-opt-in mailing list. Twitter followers are nice, but when someone is following up on 200+ people they just won’t notice you when it matters.

So take note: marketing first, product second. Whatever your marketing strategy is, mind the details and be personal. Everybody likes to know who they’re dealing with.

Be Passionate

Everyone with a job – freelancer or cubicle hero – can relate: spare time is precious. You could do all kinds of things: sleep, watch TV, get some exercise. Still, you are willing to go for it and spend most of your spare time building an application you are passionate about.

Make sure that working on your idea is your true passion, it must be the one thing you love doing in your spare time or you just won’t make it. If you don’t feel like working on something that won’t generate any money in the next six months, you’re better off watching a movie instead. Overnight success is a fairytale, passion and hard work are real.

Too Many Features Are Deadly

Like I said earlier, we had been working on our application for 1.5 years in our spare time before launching and that’s way too long. If you don’t launch something within six months, you’ll have depression creeping up on you before you know it.

Too many features are dangerous, not only for your product, but certainly for your team’s morale. Get something out there quickly and keep iterating based on your users’ feedback. If you can’t launch it in six months, you’ve got too many features planned.

We’ve learned to get things out faster and leaner. Our rhino mascot for example is still just a sketch at this point, but we’ve pushed it out there anyway just to remind us not to wait until something is perfect.

SolidShops Agile Mascotte

One Click Deployment Or No Deployment At All

Once you launch your product you’ll need to be able to update it on a regular basis. Security fixes, new features, … you name it. If you can’t deploy your application to production in one click tops, shit will hit the computer fan sooner or later.

For SolidShops, our automated deployment process consists of at least the following steps:

  • pull code from version control system (we use Subversion)
  • combine all CSS and JS files into one minified file (Yui compressor is great for that)
  • move the latest version of your code to your web server folder
  • make sure file permissions are set securely for your app (we use a shell script for that)
  • put the latest version online while keeping an easy restore point (symbolic links on Linux do the trick just fine)

If you have to do all these tasks by hand, prepare for a ride down. There’s just too many things that can go wrong when a human has to perform all these tasks, going from files that get lost in the process to file permissions that are set incorrectly.

For the technically interested ones among you, we use Phing to automate our deployment combined with Hudson from where we launch or schedule all our deployment and other jobs with no more than one mouse click. Setting all that up requires a serious amount of time, but you’ll kiss your both hands afterwards for doing so.

Find An Exceptional Partner

The best thing that happened to SolidShops is that I’ve found a partner who’s amazing at coding and doing all kinds of technical stuff. On the other hand, he’s unable to come up with a Photoshop design or anything decent looking in the browser but that’s ok, that’s where I come in.

When starting an online business, the key is to find out or know what you are good at and focus on doing those things. Find a partner who’s good at the skills you lack.

Find yourself a great partner, but make sure you’re on the same line before diving into a large scale project. Doing a startup with someone whose long term goals are completely the opposite of yours is like going to a BBQ with a vegetarian, it’s just not natural.

Relax, It’s Only Work

At the end of the day, make sure you are having fun.

On my first job, I worked as an SAP consultant. I hated it, but I drove a wicked BMW for free and had great benefits. I quit that job to start teaching and working in the web field professionally and I couldn’t be happier ever since.

In the end, the only thing that matters is that you do what you love most, no matter what that is.