Ingredients:
1 (1-pound) semolina baguette (at least 22 inches long) or 4 (4-ounce) ciabatta rolls
1 large red onion
4 garlic cloves
7 tablespoonsextra-virgin olive oil, plus more for serving
1 poundzucchini (from about 2 medium), coarsely shredded
Kosher salt and freshly ground black pepper
1 (6-ounce) can tomato paste
1 teaspoonred pepper flakes, divided (optional)
6 ouncesground beef (80% lean), pork, turkey, or chicken
3/4 teaspoonfennel seeds
2 1/2 tablespoonsbalsamic or red wine vinegar
1 head iceberg lettuce, cut into wedges and leaves separated
4 ounceslow-moisture mozzarella, sliced into planks

Directions:

Heat the oven to 350°F. Slice the baguette into quarters (or use the ciabatta rolls), then halve each lengthwise. Pull out most of the interior of the bread. Tear up or use a knife to cut the bread interior into small pieces until you have about 2½ cups or 4 ounces. Place the bread pieces on a sheet pan and toast in the oven, tossing halfway through, until very dry and lightly golden, 15 to 20 minutes. Transfer to a large bowl, breaking up the bread crumbs into smaller pieces with your hands. Switch the oven to broil on high with a rack in the upper third.

Halve the onion, peel it, and thinly slice half through the root end (set the remaining half aside). Thinly slice 2 garlic cloves.

In a medium saucepan, heat 3 tablespoons of oil over medium heat. Transfer the sliced onion and garlic to the saucepan along with 1 packed cup (6 ounces) of the grated zucchini. Season with salt and pepper and cook, stirring occasionally, until the onion is translucent and the zucchini is just starting to brown, 8 to 10 minutes. Stir in the tomato paste and ½ teaspoon of the red pepper flakes (if using) and let cook, stirring occasionally, until the paste turns brick red and sticky, about 2 minutes. Stir in 2½ cups of water. Season with salt and pepper and cook, stirring occasionally, until the sauce has thickened a bit, about 15 minutes. Reduce the heat to low and cover. Just before assembling the subs, stir in ½ tablespoon vinegar and season with more salt and pepper to taste.

While the sauce cooks, make the meatballs. Finely chop half of the remaining onion half (set that last quarter aside). Finely grate the remaining 2 garlic cloves. Place into the bowl with the bread crumbs along with the remaining grated zucchini (about 1¾ packed cups/10 ounces—if you have any extra, stir it into the sauce or save for another use). Add the ground meat, 1 teaspoon of salt, lots of ground pepper, the fennel seeds, and the remaining ½ teaspoon red pepper flakes (if using). Use your hands to combine the mixture. Roll the meatballs into ample 1-inch balls and place on a sheet pan or large plate—you should have about 20.

Heat 3 tablespoons of oil in a large nonstick skillet over medium-high heat. Cook half the meatballs (so as not to crowd the pan) until seared on all sides, 6 minutes. Reduce the heat to medium-low and keep cooking, turning every now and then, until all the meatballs are cooked through, an additional 5 to 7 minutes. When you’ve finished the batch, transfer to a clean plate, heat an additional tablespoon of oil in the skillet, and repeat with the remaining meatballs.

Thinly slice the remaining onion quarter and place in a medium bowl with the remaining 2 tablespoons of vinegar and a big pinch of salt. Let sit for 5 minutes, then toss in the iceberg, drizzle with oil, and season with more salt and pepper to taste. Divide among 4 plates.

Place the bread, scooped sides up, on a sheet pan. Broil until it starts to turn golden, 1 to 3 minutes, then remove from the oven. Fill each roll with 4 or 5 meatballs and a big scoop of sauce, then evenly divide the cheese between each. Return to the oven and broil until the cheese is melted, about 3 minutes. Serve immediately with a bowl of the extra sauce and any remaining meatballs on the side.

Last modified: December 10, 2021

Author