Begin by washing the baby potatoes thoroughly. Place them in a large pot and cover with water. Bring to a boil over high heat and cook for about 15-20 minutes, or until the potatoes are tender when pierced with a fork. Drain and let cool slightly.
Once the potatoes are cool enough to handle, use a fork or the bottom of a glass to gently smash each potato until it is flattened but still in one piece.
In a small bowl, whisk together the olive oil, lemon juice, lemon zest, black pepper, garlic powder, onion powder, and salt.
Drizzle the dressing over the smashed potatoes and toss gently to coat.
Add the chopped parsley, diced red onion, and diced celery to the potatoes. Mix until everything is well combined.
For the best flavor, cover the salad and refrigerate for at least 30 minutes before serving to allow the flavors to meld.
Serve chilled or at room temperature.