Heat a medium to large skillet on medium until hot, then add the schmaltz or oil. When it's rippling, add the onion, garlic, and a Tbsp of kosher salt, and cook until translucent, about 3-5 minutes. Remove from the heat.
In a large mixing bowl, combine the meat with the onion mixture, making sure to transfer as much schmaltz or oil as possible into the meat as well. Add the chopped dill, if using, and mix well until fully combined.
In another large mixing bowl, combine the flour, eggs, remaining salt, and water (or, to avoid cleaning another bowl, you can do this on the countertop by creating a mound with the flour and then making a well for the wet ingredients). Once the dough forms into a ball, knead for about 5 minutes, or until the dough has become soft and elastic. Form it into a tidy ball, and rest under a damp cloth for 30 minutes.
Cut the dough ball into 4 segments. Place 3 of the pieces under the damp cloth, and begin forming the 4th piece into a rectangle. Using a pasta machine (ideally) or rolling pin, flatten the dough into sheets until they are thin enough to see through slightly (a 5 or 6 on a Mercato pasta machine). To get a really silky texture, fold it in half or thirds and start all over again, flattening it to a 4 or 5. Do this a couple times to soften the dough.
Lay a dough sheet out and place small sprigs of dill along one side of the sheet, then fold it over, pressing down where the layers meet to "seal" them. Press down all over so that there are no air pockets, Run the dough back through the pasta machine one setting wider than you made the dough before (so if it was a 5, make it a 4), then reduce the thickness and run it through again.
Cut squares out of the sheet of dill-laminated dough, about 2"x2" in size. Place about ½ tsp of the filling in the center of the square. Using a little water, wet the edges.
Fold one corner over to its opposite corner, creating a triangle. Press down all over to eliminate air pockets.
Position the triangle so that the middle point is facing up, and wet the bottom edge (the one with the majority of the meat inside).
Press the two bottom corners into the center of the wet edge so that one overlaps the other. Skip this step if making kreplach for purim so that the shapes remain triangular. Repeat with the remaining kreplach.
If you’re serving the kreplach right away, skip to the second to last step. If you’re freezing the kreplach until you’re ready to serve them, lay them all flat on wax or parchment paper (on a sheet pan if possible- I often don’t have space for this). Leave a little room between them so they aren’t touching, or they will freeze together, and you won’t be able to select the precise amount you want at a given time. Chill for 10 minutes or so, then remove from the freezer and transfer to a container or bag all together. Because you took the time to chill them beforehand, they won’t stick together!
Just before you're ready to serve the kreplach, bring a small to medium-sized saucepan full of aggressively salted water to a boil. Drop in your kreplach and stir so that they don't stick to the bottom. Cook for about 5 minutes if frozen (2-3 minutes if fresh) or until they're al dente.
Serve in piping hot chicken soup and garnish with dill (optional).