For the Sauce:
- 2 tablespoons extra-virgin olive oil
- 1/2 small onion, finely chopped
- 1 stalk celery, finely chopped
- 1/2 medium carrot, finely chopped
- Kosher salt
- 1 28-ounce can whole plum tomatoes, crushed by hand
- 1 bay leaf
- 2 fresh basil leaves
For the Meatballs:
- 4 ounces russet potato, peeled (about 1/3 large potato)
- Kosher salt
- 1 pound ground veal shoulder
- 1/3 cup grated parmesan cheese, plus more for topping
- 2 tablespoons whole milk
- 1 1/2 teaspoons minced garlic
- 1 teaspoon chopped fresh thyme
- 1/4 cup extra-virgin olive oil
- Freshly ground pepper
- 4 to 6 pieces baguette, split open
Make the sauce: Heat the olive oil in a medium saucepan over medium heat. Add the onion, celery, carrot and a pinch of salt and cook, stirring occasionally, until soft, about 8 minutes. Stir in the tomatoes and their juices, the bay leaf, basil and 1/2 cup water. Bring to a simmer and cook, stirring occasionally, until the sauce thickens, 30 to 40 minutes. Season with salt.
Meanwhile, make the meatballs: Put the potato in a small saucepan with cold water to cover; add 2 teaspoons salt and bring to a boil. Cook until the potato is tender, about 10 minutes. Cool slightly, then coarsely grate the potato with a box grater.
Heat the remaining 3 tablespoons olive oil in a large nonstick skillet over medium-high heat. Add the meatballs and cook, turning occasionally, until browned and just cooked through, about 8 minutes. Transfer to the sauce and simmer 5 minutes.
Fill the baguette pieces with the meatballs and top with more sauce. Sprinkle with parmesan.
Photograph by Joseph DeLeo