Preheat your oven to 350°F. Grease a 9x13-inch baking pan, and line the bottom with parchment paper for easy removal (optional).
In a large bowl, whisk together the flour, sugar, baking powder, baking soda, and salt until well combined.
2 ½ cups all-purpose flour, 2 cups granulated sugar, 1 tablespoon baking powder, ½ teaspoon baking soda, 1 teaspoon salt
In a separate bowl, whisk the melted butter, coconut milk, sour cream, eggs, vanilla, and coconut extract. Whisk until the mixture is completely smooth and the eggs are fully incorporated.
1 cup unsalted butter, 1 cup full-fat coconut milk, ½ cup sour cream, 3 large eggs, 1 tablespoon vanilla extract, 1 teaspoon coconut extract
Pour the wet ingredients into the dry ingredients. Stir by hand just until the flour streaks disappear—do not overmix. Gently fold in the 1 cup of shredded coconut.
1 cup sweetened shredded coconut
Spread the batter evenly into the pan, and bake for 32 to 38 minutes. The cake is done when a toothpick inserted into the center comes out clean, and the top springs back when lightly touched.
Optional: While the cake is cooling but still warm, whisk together your soak ingredients. Use a fork or skewer to poke holes across the entire surface of the cake. Slowly pour or brush the soak over the top.
¼ cup full-fat coconut milk, 2 tablespoons granulated sugar, 1 tablespoon white rum
Let the cake cool completely in the pan. While the cake cools, make the frosting.
Beat the cream cheese and butter together for 2–3 minutes until creamy. Add the vanilla, then gradually beat in the powdered sugar until thick. If it’s too stiff, add milk 1 tablespoon at a time until it’s easily spreadable.
8 ounces cream cheese, ½ cup unsalted butter, 1 teaspoon vanilla extract, 3 to 3 ½ cups powdered sugar, 2 to 3 tablespoons milk
Spread the frosting over the cooled cake. Gently press the shredded coconut (toasted for best flavor!) into the frosting. Serve slightly warm or at room temperature.
1 to 1 ½ cups sweetened shredded coconut