Cook the onion: Preheat oven to 350 degrees F. Add the dairy-free butter and onions to a medium frying pan over medium heat. Cook, stirring frequently, until onions soften (about 5 minutes).
3 tablespoons butter, 1 cup yellow onion
Add garlic and starch: Add garlic and sprinkle the starch over the onions. Cook for another 2 minutes, stirring constantly.
1 clove garlic, 3 tablespoons tapioca starch
Make the sauce: Combine the milk and broth. Pour this mixture into the pan in ¼-⅓ cup increments, whisking between to prevent clumping. Continue whisking until smooth.
½ cup chicken broth, 1 cup milk of choice
Thicken and season: Bring the mixture to a low boil, adjusting heat as needed. Add salt, pepper, and nutritional yeast. Mix thoroughly and and return to a low boil for 2-3 minutes or until the sauce thickens. Then remove from heat and set aside.
¾ teaspoon salt, ¼ teaspoon ground black pepper, 1 tablespoon nutritional yeast
Assemble the first layer: Grease an 8-inch square baking dish or similarly sized oven-safe skillet. Arrange one-third of the potatoes in the bottom and spoon one-third of the sauce over them.
1 ½ pounds russet potatoes
Add two more layers: Add two more layers of potatoes and sauce.
Bake covered: Loosely cover with foil and bake for 45 minutes.
Finish uncovered: Remove the foil and bake for about 30 minutes more or until the potatoes are golden brown and fork tender. Then broil on high for 3-4 minutes to form a golden crust on top. Remove from the oven and let cool for 10-15 minutes before serving.