I actually freelanced for a while during college, in parallel to studying CS, before i found local part time employment as a developer.
Admittedly, there's a large amount of project postings that have unclear or unrealistic requirements (feature or estimate wise), almost always you can expect either some outdated or obscure stack in pre-existing codebases/platforms, typically some badly developed WordPress site that you're supposed to fix or use for things that WordPress isn't really suited for (advanced CRUD), you'll almost never find projects with documentation, any sort of a quality control/code review, or even separate test environments.
There are good projects there every now and then too, but be prepared to compete in a race to the bottom price wise, knowing that many of those potential clients shall pick the cheaper developers, which sometimes will result in similar neglect of the codebases, because if you accept multiple projects you only have so much time for each (and the clients won't necessarily know any better). Sometimes the developers are simply in a lower CoL area, but depending on where you live, you'll also have to cope with that, some projects will just be below your living expenses.
I'd probably say that in my limited experience, around 90-95% of the project postings on the site as a web dev were like that at any given time, whereas around 70-80% of the projects that i got to work on weren't satisfactory in regards to how easy or even "safe" the development process and communication was, even if i tried avoiding the red flags for the most part. I got to work for some people that were decent, however the code quality wasn't satisfactory, nor was anything surrounding the code itself.
There are circumstances in which freelancing through them can work, you can also be even more selective with the projects that you undertake, but unless you have a wide variety of skills, you might find yourself missing out on anything reminiscent of a stable income. The best idea would be to somehow manage to find a few good clients and build a longer term business relationship with them, which is probably one of the better outcomes for everyone.
Admittedly, there's a large amount of project postings that have unclear or unrealistic requirements (feature or estimate wise), almost always you can expect either some outdated or obscure stack in pre-existing codebases/platforms, typically some badly developed WordPress site that you're supposed to fix or use for things that WordPress isn't really suited for (advanced CRUD), you'll almost never find projects with documentation, any sort of a quality control/code review, or even separate test environments.
There are good projects there every now and then too, but be prepared to compete in a race to the bottom price wise, knowing that many of those potential clients shall pick the cheaper developers, which sometimes will result in similar neglect of the codebases, because if you accept multiple projects you only have so much time for each (and the clients won't necessarily know any better). Sometimes the developers are simply in a lower CoL area, but depending on where you live, you'll also have to cope with that, some projects will just be below your living expenses.
I'd probably say that in my limited experience, around 90-95% of the project postings on the site as a web dev were like that at any given time, whereas around 70-80% of the projects that i got to work on weren't satisfactory in regards to how easy or even "safe" the development process and communication was, even if i tried avoiding the red flags for the most part. I got to work for some people that were decent, however the code quality wasn't satisfactory, nor was anything surrounding the code itself.
There are circumstances in which freelancing through them can work, you can also be even more selective with the projects that you undertake, but unless you have a wide variety of skills, you might find yourself missing out on anything reminiscent of a stable income. The best idea would be to somehow manage to find a few good clients and build a longer term business relationship with them, which is probably one of the better outcomes for everyone.