Food
Pasta Carbonara
Rome's most debated dish — the original and its northern adaptation
Prep
10 min
Cook
20 min
Servings
4
Few dishes inspire the kind of territorial fury that carbonara does. Mention cream to a Roman cook and watch the color drain from their face. Suggest that guanciale might be substituted with smoked bacon and prepare for a lecture that begins in 1944 and ends only when you concede. The passion is disproportionate to the dish's youth — carbonara almost certainly didn't exist before the Second World War, a fact that embarrasses its defenders who speak of it as though it were ancient.
The name offers clues without giving answers. Carbonaro means charcoal burner, and one credible theory holds that the dish originated with the carbonari — the men who burned wood to charcoal in the Apennine highlands, who carried preserved pork and dry cheese and needed no refrigeration. Another theory credits American soldiers stationed in Rome in 1944, whose ration packs contained powdered eggs and cured bacon and who encountered pasta for the first time in life-changing quantities. The truth is almost certainly lost, which is why the arguments never stop.
What isn't contested is the technique, and this is where carbonara becomes genuinely interesting. The sauce is a cooked emulsion of egg, fat, starch, and cheese — no heat source, no cream, no stabilizer beyond physics and confidence. The hot pasta does the cooking. Get the temperature wrong in either direction and you have either soup or scrambled eggs. Get it right and you have something that no restaurant or supermarket sauce can approximate: glossy, rich, coating every strand without a single drop of liquid pooling at the bottom of the bowl.
The Northern European version — bacon, cream, whole eggs — solves the temperature problem entirely. It sacrifices the precise, mineral quality of the Roman original for something more forgiving, richer, and if we're honest, perfectly good on its own terms. Both versions follow.
Scale Recipe
1
10
20
or
Base
Instructions
0/12 complete
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"pasta-carbonara","rating":1}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 1 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"pasta-carbonara","rating":2}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 2 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"pasta-carbonara","rating":3}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 3 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"pasta-carbonara","rating":4}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 4 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"pasta-carbonara","rating":5}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 5 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
Be the first to rate