Slice your potatoes super thin, I like to use a mandolin, but if you don't have one, slice them thin with a knife.
In a large pot, heat the vegan butter on medium high. Once the butter has melted, add the garlic and onion.
Sauté, reducing heat as needed, until the onions are translucent. About 3-4 minutes.
Add the flour to the pot and mix until fully combined with the butter. Let sauté for another minute.
Pour the milk and cream into the pot and whisk to combine, making sure there are no lumps of flour left. Add the salt, pepper and nutmeg, whisk again.
Bring to a simmer, reduce heat to medium low and continue to simmer until the sauce is thick and coats the back of a spoon.
Add the cheddar and half the parmesan to the pot. Whisk until the cheeses have fully melted and the sauce is nice and thick.
Pour the sliced potatoes into the pot and toss to completely and evenly coat the potatoes in the sauce.
Pour the potatoes and all the sauce into a 9x13 inch baking dish. Smooth out. Sprinkle the rest of the parmesan over the top of the potatoes. Cover with foil.
Bake for 1 hour then uncover and bake for another 20 minutes.
Let cool for 5 to 10 minutes before serving. It will look a little liquidy when you pull it out of the oven but will thicken when it cools a bit.
Video
Notes
*If you can't find vegan heavy creamy you can just use more non-dairy milk.