I've been freelancing and doing contract work my entire career - nigh on 13 years now. There's a mass of things I could tell you, but I'll try be succinct and tell you what I think will be most valuable.
Technology doesn't pay the bills. Clean code, good architecture, solid frameworks - they count far, far less than you wish they did. As developers, we're systems oriented, looking for the ideal approach, the 'right' way. 90% of clients are more worried about the right shade of cornflower blue. Don't lose your idealism about making use of the right tech stack, and where pragmatic, don't miss an opportunity to explain why it's important.
But don't make the mistake of thinking that's what counts for clients. There will be exceptions, but generally the guy with the purse strings isn't technical, and is in no position to appraise your use of tech.
You need to practice business as much as you plan to demonstrate technical competence. Negotiation, selling, conflict resolution (it'll happen), knowing when to walk away (that too) and probably the hardest thing - embracing risk. Many chant the 'fail fast' mantra, but I'd rather point out that our caveman brains are badly suited to accepting that risk is vital. Cold calling is terrifying, as is naming a price, telling a client they're wrong, and so many parts of simply staying alive.
Otherwise, go make some luck.