I don't use "stay" at doorways because I want not rushing the door to be default behavior. Plus, if you tell him to stay and he does, and then you leave, someone else inside the house has to release him so he doesn't get in the habit of self-releasing from a stay.
It's probably best to start working on this with a door that does not open to the street, like a door to a fenced yard or from the house into the garage, or in a pinch you can use an interior door. I make my dogs sit before I open the door, and then I reach for the handle. If they get up, I pull my hand back and wait. I don't look at the dog, I don't say anything to the dog, I just wait. When they're sitting again (if you need to prompt this initially, that's fine, but don't do it any longer than absolutely necessary), I reach for the handle. We do this as many times as needed, until I can touch the knob with them remaining in a sit.
Next step is to turn the handle. When he'll remain in a sit while you do that, start to slowly open the door. If at any time he breaks his sit, slam the door shut, pull your hand back and wait for him to sit again. Work up to where you can open the door all the way without him breaking. Position him far enough back from the door that you can body block him to prevent him from going through until you release him. Once you can get the door open all the way with him still in a sit, ask for eye contact first, and then release him to go through the door.
Do this every time you take him outside and every time you let him back in. Once he understands that an open door does not mean he gets to go through it, and that if he rushes the door it will close in his face, you should be able to get out without fighting with him at the door all the time. When you go to practice at the front door, put him on leash so he can't run outside. I've also taught my dogs that we will not be going for a walk until they sit calmly for me to put the leash on, then we walk to the door and they have to stay in a sit until the door is open all the way, and then I release them to go through.
Now that my dogs have been doing this for a long time (Keefer is 4-1/2, Halo is 16 months old), I don't always do this every time I let them out for potties, but they know that if we walk up to the door and I stand there and do nothing, they're expected to go through the sit/wait/watch drill. This is one of those house manners things that I want them to do automatically, without me having to always remind them, so I don't ask for any of this, I simply wait for it. And when I do just let them out without making them sit first, I still open the door and use my release word to let them know that they can go through.
If you work on manners and self control in other areas (playtime, mealtime, before giving him attention) at the same time, it will reinforce that this is how he gets access to what he wants. My dogs will stand calmly 5 or 10 feet from the door when I leave in the morning, but we're still working on polite calm behavior when I come home, LOL!