In a small bowl mix together the DRY RUB ingredients until well combined.
Rub the dry rub all over the ribs then cover the ribs and refrigerate for about 1 hour.
Bring a pot of water to a boil over medium-high heat.
Use a sharp knife to cut a shallow X-mark on the bottom (the opposite side of where the stem would be) of each tomato.
When the water starts to boil carefully lower the tomatoes in the boiling water.
Boil the tomatoes for 1 to 2 minutes or until you see the skin of tomatoes beginning to peel.
Rinse the tomatoes under cold water until cool enough to handle then use your fingers to pull the skins off the tomatoes.
Discard the skins then roughly chop the tomatoes and place them in a blender or food processor along with the remaining ingredients (mango, serrano, water, vinegar, mustard, paprika, onion, salt, cayenne) and blend until smooth.
Pour the contents of the blender into a large saucepan over medium-high heat and bring to a boil.
Reduce the heat to medium-low and continue to cook, stirring often, until thickened, about 1 hour.
Taste the sauce and season with additional salt & pepper if needed then take off the heat and set aside.
Take the ribs out of the fridge and set aside.
Preheat the oven to 300°F.
Heat the oil in a large dutch oven over medium-high heat.
When the oil is hot sear the ribs in the oil until well browned on all sides then transfer the ribs to a plate and set aside.
Pour about half the BBQ sauce into the dutch oven then use a wooden spoon or spatula to scrape any bits stuck on the bottom of the dutch oven.
Place the ribs back into the dutch oven then spread the remaining BBQ sauce on top of the ribs.
Put a lid on the dutch oven then place in the preheated oven and cook for 1 hour and 30 minutes.
Take the lid off the dutch oven and continue to cook the ribs, uncovered, for 30 more minutes.