I measured the width of their bunk beds and then folded the fabric (fleece, in this case) in half. I wanted my caddy to be 13" high, so I cut a piece 14" tall (to allow for seam allowances) and 37" wide (the width of the bed). Unfolded measurements (28"x37").
I sewed up the sides, kept the bottom folded so that I didn't have to sew it, then created a casing around the top. I left the ends open and slid in a 3/8" wooden dowel on each side. One in the front, and another in the back. This was for stability. I didn't want the fabric to sag in the front. Then I sewed button holes through both thicknesses of fabric (front and back) so that I could hang the fabric without putting too much wear and tear on the fabric with the weight of the books.
Finally, I added a monogram and hung the caddy!
I filled each with a couple of books that I wanted them to browse, and let them fill the rest of the space with their favorites.
They turned out perfect and the boys love them!
I used fleece because that is what I had on hand. A sturdy cotton, canvas, or denim would work well. Probably better. Fleece is stretchy and could sag over time even though I have the stretch going width-wise, not length-wise. But these work perfectly for us.