If the smell only hits on the hot side, your water heater is the culprit. Bacteria love the warm, stagnant environment inside the tank. They eat tiny bits of magnesium or aluminum in the anode rod, and fart out hydrogen sulfide as a thank-you.
Try this first: flush the tank. Connect a garden hose to the drain valve, run the water until it runs clear, and let the sediment—the bacteria’s buffet—wash away. Do this every six months, and you’ll starve the little stinkers.
Still reeking? Replace the magnesium anode rod with an aluminum or powered anode rod. This changes the chemical reaction, and the smell vanishes. It’s like swapping a garlic-heavy meal for a neutral salad—your water instantly goes from “ew” to “ah.”