I prefer to just up the power of the opponents.. it's really easy to design interesting hard encounters even if the party can oneshot a tarrasque in melee at level 10. Just make use of ranged attacks, BFC, lots of foes, time pressures, traps, environmental factors.. combine at least one of all of those things (and at least 10 foes (not bunched up/all in the same place!)) and you'll have an encounter that will stymie even the most powerful wizard (barring timestop.. timestop actually changes the whole ballfield by blowing the action economy out of the water.. it's still trivially easily handled but it means you need to kick things up a notch with enemy Timestop stowaways, readied actions, and immediate action counterspelling (for example, the Reverse Gravity spell that throws you through the dozen Prismatic Walls the wizard put up in the timestop).
don't just increase damage and raw stats on a single monster though... really hard to design single monsters to challenge a decent highish power party.. the difference between 'hard' and 'tpk' is miniscule on a single monster enco****er.. rely on multiple threats so you don't care if one threat gets oneshot by a wizard spell, each other threat is still threatening/hurting the party... way too hard to make something that can't get oneshot that can still be killed.
don't just increase damage and raw stats on a single monster though... really hard to design single monsters to challenge a decent highish power party.. the difference between 'hard' and 'tpk' is miniscule on a single monster enco****er.. rely on multiple threats so you don't care if one threat gets oneshot by a wizard spell, each other threat is still threatening/hurting the party... way too hard to make something that can't get oneshot that can still be killed.