Prep your pan. Line an 8x8-inch baking pan with parchment paper, leaving overhang on two sides for easy lifting.
Lightly grease the parchment.
Make the peanut butter swirl. In a small bowl, stir peanut butter with 1–2 tablespoons of powdered sweetener and 1 tablespoon of heavy cream until smooth and pourable. Set aside.
Melt the base. In a medium saucepan over low heat, add butter and coconut oil. Once mostly melted, add chopped unsweetened chocolate.
Stir gently until smooth. Keep heat low to avoid scorching.
Whisk in dry ingredients. Remove from heat. Whisk in cocoa powder, powdered sweetener, salt, and vanilla.
Add remaining heavy cream (about 2 tablespoons). Whisk until glossy and fully combined. If it thickens too much, warm it gently and whisk again.
Taste and adjust. Sweetness can vary by sweetener brand.
Taste a small bit and add more powdered sweetener if needed. For a deeper chocolate note, stir in a pinch of espresso powder.
Pour and swirl. Pour the chocolate mixture into the prepared pan and smooth the top. Spoon dollops of the peanut butter mixture over the surface.
Use a skewer or knife to drag through the dollops, creating swirls. Don’t overwork it—2–3 passes are enough.
Add texture (optional). Sprinkle chopped roasted peanuts or a pinch of flaky salt on top for crunch and contrast.
Chill to set. Refrigerate for 2–3 hours, or until firm. For faster setting, freeze for 45–60 minutes.
Slice cleanly. Lift the fudge out using the parchment.
Warm a sharp knife under hot water, wipe dry, and cut into 25 small squares (5x5 grid) or 16 larger squares.
Serve. Keep chilled until serving for the best texture. The fudge softens slightly at room temperature, which makes it extra creamy.