Before starting, peel your potatoes and cut into large but equal sized pieces. Slice your onions into thin long slices and set aside.
Add the peeled potatoes to a strainer and rinse to remove some of the starch. Then, add the potatoes to a large pot and fill the pot with cold water until the potatoes are just covered by about ½" of water. Add a generous amount of salt to the water until the water tastes salty.
Bring the pot of potatoes to a boil and cook for 15-20 minutes until you can pierce the potatoes with a fork/knife and they are the same consistency all the way through. You don't want to overcook your potatoes or the mashed potatoes will be too watery, so I recommend checking at the 12 minute mark to be safe.
While the potatoes are cooking, caramelize the onions. Add 2 Tbsp of vegan butter/oil to a frying pan and turn on the burner. Once the butter is bubbling and melted, add in the onion slices. Pan fry at low heat until onions are browned; around 20-40 minutes depending on preference. Stir frequently so that the onions do not burn. Once the onions are done, season with salt and pepper to your liking and set aside.
As soon as the potatoes are cooked, strain and add back to the pot. Use a potato masher to roughly mash the potatoes while still hot.
Once the potatoes are somewhat mashed, add in 6-8 Tbsp of room temperature/melted butter to the pot and continue mashing until the potatoes are mostly smooth with some chunks. How large your potatoes are and how buttery you like your mashed potatoes will determine how much butter you use, so feel free to add in more or less to your liking! For creamier mashed potatoes, add in the 2 Tbsp of coconut milk at this time as well. Season with the garlic powder, fresh thyme, and additional salt & pepper until your desired flavor is reached. As a final step, gently fold in the caramelized onions.
Top with additional fresh thyme or a homemade gravy and serve warm. Enjoy!