From concept to launch in 24 hours and why there’s no reason you can’t do this too
I launched Facto yesterday. It’s a project I’ve been wanting to build for a while, and I finally got around to making it a reality over the past 24 hours or so. While building, I had a bit of a “whoa” moment thinking about what it really takes to launch a project these days, and why there’s no better time to build something of your own. (If you’re just interested in hearing why I think so, skip to the end.)
While I’d been kicking the idea around for a while, going from a solid concept to launched app took just under 24 hours. It’s built in Ruby, with the Rails 3 framework, and hosted on Heroku. I’m using the heroku_san gem to manage deployment to multiple environments (currently staging and production). Authentication is handled with devise, and user photo uploads are handled with paperclip and stored on Amazon S3 (using the aws-s3 gem). I’m currently on the $15 shared database, which accounts for probably 99% of my costs so far (the rest being marginal costs for S3 [likely a few cents]). Facto sends transactional emails using Postmark.
Concepting and design
Once I had a firm idea about what I wanted to build, I pared it down into an MVP and started sketching screens out: there are basically three major screens. The homepage, user profiles, and fact permalink pages. I spent a bit of time refining flows, then started mocking something up in Photoshop. I’m definitely not a real designer, but I do know my way around Photoshop and Illustrator pretty well. I also feel like I’ve got a decent understanding of composition, typography, etc. — at least enough to build simple UI, which is exactly what I did; whipped up a basic logotype (Neutraface Bold Italic Alt), got a color palette down, and fleshed out the major UI elements.
I moved pretty quickly from Photoshop into HTML/CSS, refining the UI directly in the browser. There are certainly some rough spots, but hey, it’s an MVP. Backend development took the majority of the time, but Rails’ awesome gem ecosystem meant that I could spend most of my time building domain specific code, leaving auth, file uploads, etc. to tried and true gems (devise and paperclip, respectively).
Why you can and should be doing this
Facto went from an idea to a launched app in about 24 hours. There’s no reason you can’t do it, too. If you’ve got ideas, you’re probably in one of three buckets: you’re a developer, you’re a designer, or you’re neither. If you’re a developer, there’s no reason you can’t pick up some basic design skills. Ask a designer friend to give you some pointers. Spend some time in front of Photoshop or GIMP. Make a giant list of web apps you like and try to emulate bits of their UI. If you’re a designer, there’s no reason you can’t learn some basic programming. Ruby* could be a great start (there’s a vibrant community out there, plus a slew of tutorials, like Railscasts). HTML and CSS, even basic knowledge, should be two things you’re also familiar with (CSS Tricks is a great resource for that). You don’t have to be an expert at anything, so long as you’re dedicated to understanding why something works, and to improving your toolkit and skills. If you’re in the “neither” bucket, change it! It’s easier than you think, and you’ll no longer be “an ideas person” — you can take those ideas and turn them into tangible products.
There’s nothing more fulfilling than creating something out of nothing, and in my opinion there is no better time to transform yourself into someone who can produce something from a mere idea. It doesn’t have to be perfect, or even refined. The ability to create a working prototype of an idea is invaluable. It’s not a mockup, it’s not a powerpoint deck, it’s a real, living, breathing thing that real users can interact with now. If you’re a developer or designer but lacking in the opposite discipline, what are you waiting for? You could be hacking on a cool idea as we speak. If you’re a business guy/woman, or “ideas person”, why spend any more time relying on other people** to build your ideas?
* or Python, or PHP, or [insert language here] — the language really shouldn’t matter, so long as there is an active community and good ecosystem around it
** other people who probably have better things to do, anyway (e.g. building their own ideas)
Thanks to Sam for helping to refine this post.