Prep the pan and oven. Preheat the oven to 325°F (163°C). Line a 9x5-inch loaf pan with parchment, leaving overhang for easy removal. Lightly grease the pan and parchment.
Whisk the dry ingredients. In a bowl, whisk almond flour, coconut flour, baking powder, and a pinch of salt until well combined.
This helps prevent clumps and creates a consistent crumb.
Cream butter, cream cheese, and sweetener. In a separate large bowl, beat softened butter and cream cheese with the granular sweetener until light and fluffy, 2–3 minutes. This adds air for a better rise.
Add eggs slowly. Beat in the eggs one at a time, mixing well after each. Scrape down the bowl to keep the batter smooth.
Flavor the batter. Mix in lemon zest, lemon juice, vanilla, and heavy cream.
The batter may look slightly curdled at this stage—this is normal and will smooth out when you add the dry ingredients.
Combine wet and dry. Add the dry mixture to the wet and mix on low just until combined. Do not overmix. The batter should be thick but spreadable.
Fill and level. Transfer batter to the prepared loaf pan.
Smooth the top with a spatula and tap the pan on the counter a couple of times to release air bubbles.
Bake. Bake for 45–60 minutes, until the top is golden and a toothpick comes out clean or with a few moist crumbs. If the top browns too quickly, tent with foil during the last 15 minutes.
Cool completely. Let the cake cool in the pan for 15 minutes, then lift it out using the parchment and cool fully on a wire rack. Frosting a warm cake will cause melting, so patience pays off.
Make the frosting. Beat cream cheese and softened butter until smooth.
Add powdered keto sweetener, lemon zest, and lemon juice, then beat again. Add heavy cream 1 tablespoon at a time until you reach a creamy, spreadable consistency. Adjust sweetness with a few drops of stevia or monk fruit if desired.
Frost and finish. Spread frosting over the cooled cake.
Garnish with extra zest if you like. Slice with a sharp knife, wiping between cuts for clean slices.