Sorry, first time posting, might write messy

I’m 42, freelancing on some weird stuff, living in Khon Kaen. Mostly work from home, sometimes I go sit at a co-working near the uni. I like the vibe and a small cup of coffee beside my laptop. Some mornings around nine, or even at two in the morning I can still be fixing code, but this latest project is stressing me out so much I need to rant.

Short version: an SME client asked me to make a website. They paid a deposit up front, actually paid, and sent specs in one file with notes written pretty clearly. But when it came to revisions they started talking to me like they were my boss — constantly asking when it will be done, urgently, wanting this and that, even though the spec was clear. Then when I made changes they didn’t like them and kept changing their requirements like crazy. It’s confusing. They said I didn’t understand the work and raised their voice in front of their team on a call. I felt embarrassed.

I’m a freelancer, not hired into an office, I don’t have a standing boss, but of course I want to make the client happy. Still, some things have crossed the line of courtesy. They give orders like assigning tasks to an employee, even though I’m juggling multiple projects. I try to be flexible but there are limits. I’ve been working on this for almost three weeks and I feel like I’m being bossed around the whole time. I’m so confused — do I have to accept everything?

People have suggested setting clear boundaries, like how many revision rounds are included and charging extra after that, or talking about their attitude, but I’m afraid of losing the client. I need the money too. Or am I just overthinking it?

What do you all think I should set as boundaries so they respect me but it doesn’t mess up the work or my income too much? P.S. Thanks for reading T_T