What You Need to Sew a Basic Cloth Diaper

A cloth diaper is a rectangle of absorbent fabric with elastic at the legs and waist, fastened with snaps or velcro. You can sew one from cotton flannel, prefold cloth, or old towels—materials you may already have at home. The finished diaper takes about an hour to sew once you have your fabric cut and elastic ready.

Gather these supplies before you start: two pieces of fabric roughly 14 inches by 14 inches (one absorbent layer like flannel or cotton, one waterproof layer like PUL or fleece), 1/4-inch-wide elastic cut into four 8-inch pieces, a sewing machine, thread that matches your fabric, scissors, and pins. A measuring tape and a pattern (even a straightforward paper template) will save you from cutting by eye.

If you do not have elastic on hand, you can order it online or find it at fabric stores. PUL (polyurethane laminate) fabric is the most reliable waterproof layer, but fleece works in a pinch. Cotton flannel or old receiving blankets work well for the absorbent side.

Key Takeaways

  • Cut two fabric pieces to roughly 14 by 14 inches—one absorbent (cotton flannel), one waterproof (PUL or fleece)—and pin them with the absorbent side facing out.
  • Sew elastic into the leg openings by folding the fabric edge over the elastic and stitching a straight seam, which creates a gathered leg that prevents leaks.
  • Attach elastic at the waist the same way, then sew snaps or velcro to the front and back panels so the diaper closes around the baby.
  • Test the fit on a doll or stuffed animal first to check that the leg elastic is snug enough and the waist sits at the right height.
  • Wash the finished diaper in hot water before use to soften the fabric and set the seams.

Cutting and Pinning Your Fabric Pieces

Start by cutting two rectangles of fabric, each about 14 inches by 14 inches. The exact size depends on the baby's weight—newborns fit a smaller diaper, while toddlers need larger ones. If you are sewing for a specific child, measure from their waist to the back of their neck and add 2 inches; that is roughly how long the diaper should be front to back.

Place the two fabric pieces on top of each other with the absorbent side (cotton flannel) facing outward and the waterproof side (PUL or fleece) facing inward. Pin all four edges together so the layers do not shift while you sew. Leave a 2-inch gap on one side—you will use this opening to turn the diaper right-side out after sewing.

Before you sew, double-check that the waterproof layer is on the inside. If you sew with the waterproof side facing out, the diaper will feel stiff and uncomfortable against the baby's skin.

Sewing the Outer Seam

Thread your sewing machine and set it to a straight stitch with a medium stitch length (about 2.5 millimeters). Starting at one corner, sew around the entire perimeter of the pinned fabric, staying about 1/4 inch from the edge. When you reach a corner, stop with the needle down, lift the presser foot, turn the fabric 90 degrees, lower the presser foot, and continue sewing.

Stop when you reach the 2-inch gap you left unpinned. Backstitch a few stitches to lock the thread, then remove the fabric from the machine. This outer seam holds the two layers together and creates the basic diaper shape.

Trim the corners diagonally, cutting away about 1/4 inch of fabric at each corner. This prevents the corners from bunching when you turn the diaper right-side out. Be careful not to cut through your stitching.

Turning and Pressing the Diaper

Reach through the 2-inch gap and pull the fabric inside out, so the absorbent cotton side is now facing outward and the waterproof layer is hidden inside. Use a blunt tool like a wooden spoon handle to push the corners out fully so they are sharp and square, not rounded.

Press the diaper flat with an iron on a medium setting, paying special attention to the edges and the 2-inch opening. Fold the raw edges of the opening inward by 1/4 inch and press them flat. Pin the opening closed, then sew it shut with a straight stitch, staying close to the folded edge. This seam is called a ladder stitch or slip stitch if you want to hand-sew it invisibly, but a regular machine stitch works fine and is faster.

Once the opening is closed, press the entire diaper again so all the seams lie flat. This makes it easier to attach the elastic and snaps in the next steps.

Attaching Elastic to the Leg Openings

The elastic at the legs prevents urine and stool from leaking out the sides. Take one 8-inch piece of elastic and pin it to the inside of one leg opening, positioning it so the elastic is centered along the edge and the fabric edge folds over the elastic. The elastic should be slightly stretched as you pin it—not tight, but not loose either. Aim for about 20 percent stretch.

Sew the elastic in place with a straight stitch, stitching right over the elastic and through both fabric layers. Use a medium stitch length and sew slowly so the elastic does not bunch. The stitching should be about 1/8 inch from the edge of the fabric. Repeat this step on the other leg opening.

After sewing, the elastic will pull the fabric edge inward slightly, creating a gathered, snug fit around the leg. This is normal and correct. If the gathering is too tight or too loose, you can remove the stitches, adjust the elastic tension, and sew again.

Attaching Elastic to the Waist

The waist elastic works the same way as the leg elastic. Take the remaining two 8-inch pieces of elastic and pin one to the top edge of the diaper (the side that will sit against the baby's belly) and one to the bottom edge (the back). Again, position the elastic so the fabric edge folds over it, and stretch the elastic to about 20 percent of its relaxed length.

Sew each waist elastic in place with a straight stitch, using the same technique as the leg elastic. The waist should feel snug but not tight—you should be able to fit one finger under the elastic when it is on the baby.

Once all four pieces of elastic are sewn, try the diaper on a doll or stuffed animal to check the fit. The leg openings should be snug enough that you cannot easily slip a finger between the elastic and the doll's leg. The waist should sit at the baby's natural waistline, not riding up or sagging down.

Adding Snaps or Velcro Closures

The diaper closes with either snaps or velcro. Snaps are more durable and last through many wash cycles, while velcro is faster to attach but wears out after 50 to 100 washes. For a first diaper, velcro is a good choice because you can sew it on quickly and adjust the closure size if needed.

If you are using snaps, you will need a snap tool (a small metal device that presses snaps together) and snap sets. Mark the snap positions on the front and back of the diaper with a pen or chalk—typically one snap on each side of the waist, positioned about 2 inches from the edge. Use the snap tool to attach the male (post) side of the snap to the front of the diaper and the female (socket) side to the back, following the tool's instructions.

If you are using velcro, cut two strips of adhesive-backed velcro, each about 2 inches long. Peel off the backing and stick one strip (the rough side) to the front of the diaper and one strip (the soft side) to the back, positioning them so they overlap when the diaper is wrapped around the baby. You can also sew the velcro on instead of using adhesive for extra durability.

Washing and Testing Your Finished Diaper

Before you use the diaper on a baby, wash it in hot water with a small amount of detergent, then dry it on medium heat or hang it to air dry. Hot water softens the fabric and helps set the seams. Washing also removes any lint or dust from cutting and sewing.

After washing, put the diaper on the baby or a doll and check that it fits snugly at the legs and waist. The elastic should not leave red marks on the skin, and there should be no gaps where liquid could leak out. If the fit is off, you can adjust the elastic by removing a few stitches, repositioning the elastic, and sewing again.

Cloth diapers typically last through 100 to 200 washes before the elastic wears out or the fabric thins. When that happens, you can replace just the elastic rather than sewing a whole new diaper.

Frequently Asked Questions

Can I use regular cotton fabric instead of PUL for the waterproof layer?

Regular cotton will absorb liquid instead of repelling it, so the diaper will leak. You need a waterproof layer on the inside. PUL is the best choice, but fleece, wool, or even a thin plastic shower curtain will work in a pinch. Fleece is softer than PUL and breathes better, though it is less waterproof over time.

What if I do not have a snap tool?

Velcro is much easier to attach without special tools—just peel and stick, or sew it on by hand. You can also use buttons and buttonholes, though they take longer to sew and are less convenient to fasten quickly during a diaper change.

How many diapers do I need to sew?

A newborn goes through 8 to 12 diapers per day, so you need at least 12 to 15 cloth diapers if you wash every other day. Sewing that many takes time, so many parents sew a few to start and add more later, or mix cloth diapers with disposables.

Can I sew a diaper without a sewing machine?

Yes, but it takes much longer. You can hand-sew the outer seam with a running stitch or backstitch, and hand-sew the elastic on the same way. Use a needle and thread rated for heavy fabric, and expect to spend 2 to 3 hours on one diaper instead of 1 hour with a machine.

What should I do if the elastic gets bunched while I am sewing?

Stop sewing when ready and remove the fabric from the machine. Gently pull the bunched fabric and elastic flat, then continue sewing slowly. If the bunching is severe, remove the stitches, reposition the elastic, and sew again. Using a walking foot on your sewing machine (if you have one) helps prevent bunching.