Prepare the garlic butter first by mixing 4 tablespoons of softened butter with half the minced garlic, 1 teaspoon of lime zest, a pinch of salt, and 1 tablespoon of chopped cilantro in a small bowl. Set aside at room temperature.
Pat salmon fillets dry with paper towels and season generously with salt and pepper on both sides. This ensures proper searing and seasoning throughout the fish.
Heat oil in a large skillet over medium-high heat until shimmering. Place salmon skin-side down and sear for 3-4 minutes until the skin is crispy. Carefully flip and cook for just 1 minute more, then transfer to a plate. The salmon will finish cooking in the sauce later.
In the same pan, reduce heat to medium and add onions, cooking until translucent (about 3 minutes). Add remaining garlic and ginger, stirring constantly for 30 seconds until fragrant to prevent burning.
Sprinkle curry powder into the pan and stir continuously for 1 minute to toast the spices, releasing their essential oils and deepening the flavor profile.
Pour in coconut milk, brown sugar, and fish sauce (if using), stirring to combine. Add bell pepper strips and bring mixture to a gentle simmer, allowing it to reduce slightly for 3-4 minutes.
Return salmon to the pan, skin-side up, nestling it into the sauce. Cover and simmer gently for 4-5 minutes until salmon is just cooked through but still moist inside. The internal temperature should reach 125°F (52°C) for medium doneness.
Remove from heat and top each salmon fillet with a generous dollop of the prepared garlic butter, allowing it to melt into the sauce, creating a rich, velvety finish.
Squeeze fresh lime juice over the entire dish and garnish with additional chopped cilantro. Serve immediately while hot, spooning plenty of the coconut curry sauce around each portion.