Hands down, the greatest thing about being married is having an in-house spider catcher. The greatest thing about being married to Mr. New Media is having an in-house web-developer. Thanks to him, I now have this nifty new slideshow thingie.
Made of muslin (I get the 108"-wide stuff), these things are crazy-cheap to sew up. Get yourself one of those 40% off coupons at Joann's and you're in business.
Produce bags in muslin

This neat little stack of sacks is freshly french-seamed and drawstrung, all ready for market.
- Muslin — I used about a yard and a half of muslin to make 15 sacks
- Cotton string — I used a thick crochet yarn
- Threaded sewing machine — duh
Cut out the pieces

Cut a lot of them. I did mine in a variety of sizes, but the vast majority were made from 25” x 13” swatches of muslin. I also did a few that were a bit longer, to accommodate unwieldy things like lettuces and chards. Just remember to cut pieces about twice as long as your intended bag length.
Fold in half and stitch

Fold in half, wrong sides together (if your fabric has a wrong side) to get a squarish shape. Stitch the two sides, starting at raw edge and moving toward the fold, about a 1/4" from the edge.
Turn and stitch

Turn the sack inside out. Push out the bottom corners (I use the point of my scissors for this) and lay seams as flat as possible. Stitch again, a little more than 1/4" from the edge, making sure to entirely encase first seam.
Turn again

Turn the bag right side out again, so that the encased seam lays on the inside of the bag. Push corners out.
Make the drawstring casing

Fold the top of bag 1/4" toward the outside and press. Fold over another 1/4" to encase that raw edge and press again.
Stitch the casing

Stitch the fold down, leaving a teeny tiny opening at one of the side seams. (Funky camera issues and tree-filtered natural lighting lend this shot its dramatic flair)
Insert drawstring

Cut a length of string about 5" longer than the circumference of the bag. Use a large darning needle to run it through the casing at the opening you left in the seam.
You're done!

Fill with produce. Store in fridge. Wash. Rinse. Repeat.