Boil the pasta. Bring a large pot of salted water to a rolling boil.
Cook pasta until just shy of al dente. Reserve 1 cup of pasta water, then drain.
Prep your add-ins. Slice vegetables into bite-size pieces. If using protein, pat dry and season with salt and pepper. Mince garlic, finely chop onion, and grate the ginger.
Sauté the aromatics. In a large skillet, heat oil over medium.
Add onion with a pinch of salt and cook 3–4 minutes until softened. Stir in garlic and ginger for 30 seconds until fragrant.
Bloom the curry paste. Add the curry paste to the pan. Cook 1–2 minutes, stirring, until it darkens slightly and smells toasty.
This step deepens flavor.
Add tomato. Stir in tomato paste (or crushed tomatoes) and cook 1 minute. This builds body and balances the coconut milk.
Pour in coconut milk. Shake the can well, then add it to the pan. Bring to a gentle simmer.
Add 1 teaspoon brown sugar and a splash of soy or fish sauce if using. Taste and adjust salt.
Cook the vegetables. Add firm veggies first (like broccoli or peppers) and simmer 3–4 minutes. Add delicate veggies (like spinach or snap peas) in the last minute so they stay bright.
Cook the protein (if using). If using shrimp, add directly to the simmering sauce and cook 2–3 minutes until pink.
For chicken or tofu, you can pan-sear in a separate skillet for browning, then fold into the sauce.
Toss with pasta. Add the drained pasta to the skillet. Toss until coated, loosening with reserved pasta water a splash at a time to get a silky, glossy sauce that clings.
Finish with brightness. Turn off the heat. Add lime zest and juice to taste.
Adjust seasoning: more salt, a pinch more sugar, or a squeeze more lime as needed. For heat, sprinkle red pepper flakes.
Garnish and serve. Top with chopped cilantro or basil and toasted nuts for crunch. Serve hot, with lime wedges on the side.