Preheat oven to 350°F / 175°C. Grease or line an 8-inch / 20cm square baking tin with parchment paper.
In a small bowl or jug, combine the soy milk and apple cider vinegar. Set aside for 5 minutes to lightly curdle.
In a large mixing bowl, whisk together the flour, sugar, baking powder, baking soda, and salt.
Add the soy milk mixture, oil, and vanilla extract. Use a spatula or wooden spoon to gently fold the batter together until no dry flour remains. Do not beat or whisk the batter smooth. A few small lumps are fine.
Pour the batter into the prepared tin and gently smooth the top.
Bake for 32–40 minutes, checking from 32 minutes, or until the center springs back lightly when touched and a skewer inserted into the center comes out with a few soft crumbs attached.
Let the cake cool in the tin for 15 minutes, then transfer to a wire rack to cool completely before frosting.
To make the frosting, beat the vegan butter for 2–3 minutes, until smooth and lighter.
Add the vanilla, salt, and about half of the powdered sugar. Beat on low until mostly combined.
Add the remaining powdered sugar and beat for 3–5 minutes, until pale and fluffy.
Add soy milk 1 teaspoon at a time only if the frosting is too thick.
Spread the frosting over the cooled cake. Top with sprinkles, chocolate shavings, berries, or candied citrus peel.