Preheat oven to 350 (175C) degrees and butter an 8-inch square baking pan.
To make the crumb topping:
Pulse all the ingredients in a food processor, or mix in a bowl using a fork or pastry blender, until coarse crumbs form. Set aside.
To make the cake batter
Whisk the flour, salt and baking powder in a bowl.
Cream the butter, sugar and zest in a bowl of a stand mixer with the paddle attachment until light and fluffy, about 5 minutes. Add the eggs one at a time, followed by the vanilla.
Scrape down the sides of the bowl. Reduce mixer speed to low while adding half the flour mixture and half the buttermilk until just incorporated. Repeat with the remaining flour and buttermilk. Stir in 1 cup of the cranberries.
Scrape the batter into the pan, spreading it evenly and distribute the remaining cranberries over the top. Sprinkle the crumb topping evenly over the cranberries.
Bake 45-50 minutes or until top is light golden brown and the cake feels firm. Place on a cooling rack to cool completely. Cut into squares and serve.
Add a teaspoon of ground cinnamon to the crumb mixture if you like spice.