I want to make a more mobile friendly version of my website, but I'm stuck deciding between making my design responsive or specifically tailoring a separate mobile version of the site on a domain like m.domain.com. What are your opinions?
m.domain.com - advantages - users can directly goto mobile version IF they know of it disadvantage - you have to do double the seo to rank m.domain.com site . if you are using wordpress, you can use a theme switcher plugin to show different themes to mobile and desktop clients there is even a code for normal php sites somewhere.
There's PHP code to automatically differentiate mobile/desktop users. Regarding the SEO, I do recall seeing a video where Matt Cutts said that Google are able to figure out mobile vs. desktop website, but don't quote me on that. Perhaps someone else has experience with this, although I wouldn't worry about the SEO aspect. Perhaps I'd just do noindex on the mobile version. Custom website, no WP.
A feature-detection based vs device-based? Implementation of a new version of front-end features (HTML/ CSS/ javascript/ etc) seem to be much slower, compared to the growth of new devices right? The one with smaller variance gets handled better, usually. So logically, I should rely on the former For layout-ing, I'd usually start RWD (responsive web design) with CSS media queries. And whenever I need more features to detect, Modernizr plugin may come to help. I rarely use it though.
I would suggest a responsive website which will readjust itself depending upon the browser. If you use separate mobile website then you need to redirect the user on it from your website whenever he tried to open the website in mobile phones. Responsive websites are also SEO friendly and you don't need to manage two CMS.
I strongly suggest as @MakZF a Responsive Design followed by a better structure in your website that can fit for multiple types of browsers from different kind of devices. About the SEO for your webpage here is another debate and I'm sure that Matt Cutts will make you believe that the new Google Algorithms are capable to make the difference between the desktop/mobile web pages - I have big doubts about this. P.S. even now in the Dictionary of Google Chrome the name "Cutts" is not even added so I'm sure that somebody there on the Spelling Department of Google have no idea who is one of their Bosses
Making different versions of your site and trying to determine which version should be fed to the user is a bad idea. Lots of hacky logic later, and your solution will still be far from perfect in terms of delivering the right website to the user, and your code will be difficult to maintain. Responsive design removes all these constraints by making your website flexible enough to adapt its layout to any device. It's all done with front-end technologies, so you don't have to maintain multiple versions of your site and you don't need any hacky back-end logic.