Rinse the cranberries under cold water and pick out any shriveled berries. Peel and dice the apples into 1/2-inch pieces. Finely chop the celery and roughly chop the pecans.
In a medium saucepan, combine the cranberries, diced apples, sugar, water, orange juice, cinnamon, and a pinch of salt.
Bring to a boil over medium-high heat, stirring occasionally. Once boiling, reduce to medium-low and simmer 10–12 minutes, stirring now and then, until the cranberries burst and the sauce thickens.
Remove from the heat and stir in the orange zest, chopped celery, and chopped pecans.
Transfer to a bowl. Cool to room temperature, then cover and refrigerate for at least 2 hours (or overnight) to fully thicken and let the flavors meld.