What to do?

Hi, i’m making this anon cause this is kind of embarrassing, i guess. First off im a teen mom and i’m still with my sons dad. But i’m struggling. He treats me so good one second then the next he’s putting me down, calling me names, all sorts of things. He’s never hit me except the mushing my head sort of thing. And after we sat and talked he was so sorry and i could tell he was. I want to leave sometimes just take my son and go but i want my son to grow up with his father. I want us to be one big happy family. I just constantly feel so down about myself being that i love very different after having him. My self esteem has gone down so much and i think that’s why i cant bring myself to leave him. I love him so much that it hurts to even think about taking his son away from him and our family. I have no idea what to do. Please no hate on this i just genuinely need some advice on how to make this work.