If possible try to create as much of a wireframe (even if hand drawn) and application flowchart of what you want. Don't worry about the look/feel at this point, as so much getting the flow of your application or site documented. Being able to clearly explain what you want the site to do and how you want it to do goes miles. It is always easier to change the look/feel of the site compared to the underlying operation. This is not to say that you should not be considering the look/feel at this point though. You should also be providing the freelancer as much detail as you can of what your ideas are and how you would like it to look.<p>Come up with a wants/needs list based on your requirements. What is needed to get the site going and to MVP. Then what you would "want" out of the site long term. Come up with project milestones based on this. Define your budget and payment terms based on the milestones.<p>You may find that you have a freelancer who is excellent at the backend programming and sucks at design. You should consider that you may need to hire two people to fill these roles compared to one. Always ask for references, check the references, and find out what the person's skill set or strengths/weaknesses are. Be upfront with them and encourage them to be upfront with you.<p>Don't always look at price when comparing freelancers. The old saying of "you get what you pay for" comes into play here. You want to get the most bang for your buck here though.<p>Live and die by your payment terms. Always keep a clear and open line of communication between you and the freelancer. Realize that they may be in different timezones and that the "emergency" you have at 3pm may not be an "emergency" to them at 12am when they are home with their family.<p>Overall, most importantly, ensure that expectations are clearly set before engaging anyone. Make sure that you both know what is expected of each other in terms of payments and deliverables.