Prep your pan: Line an 8x8-inch baking dish with parchment, leaving overhang for easy lifting. Lightly butter or spray the parchment if you want super clean edges.
Melt the base: In a medium saucepan over low heat, add the butter and coconut oil.
Stir until just melted. Keep the heat gentle to avoid scorching.
Stir in peanut butter: Add the peanut butter and whisk until smooth and glossy. If it looks oily, keep whisking—emulsification happens as it warms.
Add the chocolate: Whisk in the cocoa powder (or melted 100% chocolate).
If using chocolate bars, melt them separately in short bursts in the microwave or over a double boiler, then add to the pot. Stir until fully combined.
Sweeten and flavor: Remove from heat. Whisk in the powdered sweetener, vanilla, and salt.
Taste and adjust sweetness. If the mixture is too thick, whisk in 2–3 tablespoons of heavy cream for a silkier finish.
Optional swirl: For a peanut butter swirl, reserve 2 tablespoons of warmed peanut butter. Pour the fudge into the pan, dollop the peanut butter on top, and drag a knife through to create ribbons.
Add crunch (optional): Sprinkle chopped peanuts over the top and gently press so they adhere.
Chill to set: Refrigerate for 1–2 hours, or until firm enough to slice.
For faster setting, place in the freezer for 25–30 minutes.
Slice and serve: Lift the slab out using the parchment and cut into 25–36 small squares. A warm knife (run under hot water and wiped dry) makes clean cuts.
Store properly: Keep in an airtight container in the fridge. The fudge stays soft at room temp due to the healthy fats.