For the past few months I've been working toward becoming a freelance web developer. I've created a couple of HTML/CSS only sites and plan to build a few more complex sites before building a site to display my portfolio.

My questions are the following:

1. Currently, my skillset includes HTML, CSS, JavaScript, jQuery and Photoshop (layouts and basic image manipulation). I'm just breaking into Python and using the web2py framework. What skills am I missing that would be important for a freelancer to have?

2. One of the biggest challenges I had with my first websites was design. I feel fairly comfortable with things like page layout and color scheme after slogging through building those, but graphic design seems like a much more challenging discipline. In the long run, is it feasible to outsource most graphic design work?

3. Would internet marketing realistically get a business like this anywhere, or should I focus on finding clients locally?