In the bowl of a stand mixer, add the flour, salt, vegetable oil, egg and warm water. Use the dough hook on low to mix until combined. Bring the speed up to medium-high and mix for 5-6 minutes, until the dough is smooth and springy. Transfer to an oiled bowl and let rest for 30 minutes.
Peel and chop potatoes into large pieces and add to a pot. Add enough water to cover the potatoes by an inch and bring to a boil over high heat. Boil for about 20-25 minutes until the potatoes are fork tender. Drain and allow to cool for 5-10 minutes and then mash well.
Add in the butter, cottage cheese or sour cream, cheddar cheese and salt. Once smooth, set aside.
Cut the dough into two equal pieces and set one aside, keeping it covered to prevent it from drying out. Roll the other piece out on a floured surface until it is 1/8 inch in thickness.
Using a 3 inch cookie cutter cut circles in the dough as close as possible to maximize the amount of usable dough. Add about ½ tablespoon of the potato mixture to the center of the rounds and then fold over. Pinch the edges together tightly to seal the filling in. Make sure to really pinch the dough together because you don’t the filling to burst out.
Set aside all the finished pierogis and then repeat the process with the remaining half of the dough.
Add the chopped onion and butter to a large skillet. Cook the onions on medium low for about 20 minutes, until the onions are nice and browned.
Bring a large pot of salted water to a boil over high heat. Once boiling, add the pierogis in two batches and boil until they float, about 3 minutes. Remove with a slotted spoon and add them to the skillet with the cooked onions. Cook over medium heat for 2-3 minutes. Plate and eat while hot!