Bring a large pot of water to boil.
Add salt to the boiling water.
Pour in the shell pasta carefully.
Cook for 8-9 minutes until tender.
Drain the pasta in a colander.
Set it aside while making sauce.
Melt butter in a medium saucepan.
Add flour and whisk it constantly.
Cook for about 1-2 minutes together.
This creates a smooth paste called roux.
Slowly pour in the milk while whisking.
Keep stirring to avoid lumps forming.
Remove the saucepan from direct heat.
Add cheddar and mozzarella cheese gradually.
Stir until the cheese melts completely.
Season with salt, pepper, and garlic powder.
Mix everything together until perfectly smooth.
Pour the cooked pasta into sauce.
Stir gently to coat every shell.
The sauce should be thick and creamy.
Let it sit for 2 minutes.
This helps the sauce thicken more.
Serve immediately while it's hot and gooey.