The Harbor Weave holder is a tall, slim organizer that hangs from a towel bar and keeps three spare rolls in sight and in reach. A smooth single crochet back panel holds three deep pockets, and each pocket is covered in a chunky basketweave texture.
Everything is worked in one deep navy cotton, so the texture carries the design. Front and back post double crochet blocks give the pockets a woven-basket look. The plain panel behind them keeps the piece calm and tidy against the wall.
This pattern uses US crochet terms. The finished holder measures 6.5 in (16.5 cm) wide and 30.5 in (77.5 cm) long before the tabs, and about 33.5 in (85.1 cm) long when hanging. Each pocket is 6 in (15.2 cm) wide, 5.1 in (13.0 cm) deep and about 3.5 in (8.9 cm) tall.
You will work a back panel in rows, add a one-round border, then work two hanging tabs off the top edge. Next you make three pockets, each with a flat base and basketweave walls worked in rounds. Finally, you sew the pockets onto the panel and fold the tabs into loops.
Finished Size and Construction
- Finished size: 6.5 in x 30.5 in (16.5 cm x 77.5 cm) panel; about 33.5 in (85.1 cm) total hanging length
- Skill level: Intermediate (post stitches, working in rounds, seaming)
- Terminology: US crochet terms
- Yarn weight: Bulky (#5) cotton
- Hook: 6 mm (US J-10)
- Number of pieces: 4 (1 back panel with tabs, 3 pockets)
- Layout: 3 pockets stacked in one vertical column on the panel
- Pocket size: 6 in (15.2 cm) wide x 5.1 in (13.0 cm) deep x 3.5 in (8.9 cm) tall
- Panel size before border: 6 in x 30 in (15.2 cm x 76.2 cm)
- Border depth: 0.25 in (0.6 cm), one round of sc
- Work order: panel body, border, tabs, pockets, joining
Materials
Choose a firm bulky cotton or cotton blend at about 110 m (120 yd) per 100 g. Cotton holds the pocket shape and does not stretch out under the weight of the rolls. Avoid very soft acrylic, which lets the pockets sag.
- Navy: 750 g, about 825 m (902 yd); roughly 250 g for the panel and tabs and 140 g per pocket
Quantities include a margin of about 10% for swatching and seaming.
Tools:
- 6 mm (US J-10) crochet hook
- Tapestry needle with a large eye
- 6 locking stitch markers
- Scissors
- Tape measure
- Rust-proof blocking pins and a blocking mat or towel
Abbreviations (US Terms)
- ch – chain
- sc – single crochet
- dc – double crochet
- sl st – slip stitch
- st(s) – stitch(es)
- BLO – back loop only
- RS – right side
- FPdc – front post double crochet: yarn over, insert the hook from front to back to front around the post of the stitch below, and complete a dc.
- BPdc – back post double crochet: yarn over, insert the hook from back to front to back around the post of the stitch below, and complete a dc.
Basketweave block: 4 sts wide and 2 rounds tall. FPdc blocks look raised on the RS, and BPdc blocks look recessed. Swapping them every 2 rounds makes the woven checker.
Gauge and Checkpoints
- Single crochet: 12 sts and 14 rows = 4 in (10.2 cm)
- Basketweave: 12 sts and 8 rounds = 4 in (10.2 cm)
Test one piece first: make one pocket before the panel. It is small, it uses both stitch types, and it shows quickly if a roll will fit.
Checkpoints:
- Pocket base after Row 18: 6 in x 5.1 in (15.2 cm x 13.0 cm)
- Pocket wall after Round 9: about 3.5 in (8.9 cm) tall
- Panel after Row 20: 6 in (15.2 cm) wide and about 5.7 in (14.5 cm) tall
- Panel after Row 105: 6 in x 30 in (15.2 cm x 76.2 cm)
- Panel after border: 6.5 in x 30.5 in (16.5 cm x 77.5 cm)
If your piece is too big, go down one hook size. If it is too small, go up one hook size. If only the height is off, check that you are not pulling up tall loops, and do not change the stitch counts.

Back Panel
Row 1: Ch 19, sc in 2nd ch from hook and in each ch across, turn. (18 sc)
Rows 2–105: Ch 1 (does not count as a st), sc in each st across, turn. (18 sc)
Check the size at Row 20 and again at Row 105. Do not fasten off; continue with the Border section.
Place markers on Rows 2, 37 and 72, counted from the bottom. These rows are the pocket base lines, sitting about 0.5 in (1.3 cm), 10.5 in (26.7 cm) and 20.5 in (52.1 cm) above the lower edge.
Pockets (Make 3)
Base
Row 1: Ch 19, sc in 2nd ch from hook and in each ch across, turn. (18 sc)
Rows 2–18: Ch 1, sc in each st across, turn. (18 sc)
The base is now 6 in x 5.1 in (15.2 cm x 13.0 cm). Do not fasten off.
Walls
Round 1 (base edge): Ch 1, do not turn. Work along the side edge: sc in each row-end (18). Work along the foundation chain: sc in each ch (18). Work along the next side: sc in each row-end (18). Work along Row 18: sc in each st (18). Join with sl st to first sc. (72 sc)
This is a conversion round: 18 + 18 + 18 + 18 = 72, worked 1 per existing stitch or row-end, with 0 extra stitches. No corner increases are made, so the walls can rise straight up.
Mark the side worked along Row 18 as the back of the pocket. The round join sits at a back corner, so it will be hidden against the panel.
Round 2 (turning round): Ch 1, working in BLO, sc in each st around, join. (72 sc)
The unused front loops form a crisp fold line, and the work starts to cup upward.
Round 3: Ch 2 (does not count), *FPdc around each of next 4 sts, BPdc around each of next 4 sts; rep from * 8 more times, join to first FPdc. (72 sts: 36 FPdc, 36 BPdc)
Round 4: Ch 2, *FPdc around each of next 4 FPdc, BPdc around each of next 4 BPdc; rep from * 8 more times, join. (72 sts)
Rounds 5–6: Ch 2, *BPdc around each of next 4 sts, FPdc around each of next 4 sts; rep from * 8 more times, join. (72 sts)
Rounds 7–8: Repeat Rounds 3–4. (72 sts)
Each basketweave round is 9 repeats of 8 sts, so 9 x 8 = 72. That is why the round count stays fixed.
Round 9 (rim): Ch 1, sc in each st around, join. (72 sc)
Fasten off and leave an 18 in (45.7 cm) tail for sewing. The wall is about 3.5 in (8.9 cm) tall.
Make All Pieces
- Back panel: 1, Navy (with border and tabs added later)
- Pockets: 3, Navy
Layout, viewed from the front (top to bottom):
[Tab] [Tab]
+----------------------+
| Panel rows 85-105 | empty space for top roll
| [ Pocket 3 ] | base on Row 72
| Panel rows 50-71 |
| [ Pocket 2 ] | base on Row 37
| Panel rows 15-36 |
| [ Pocket 1 ] | base on Row 2
+----------------------+
Joining
Finish the Border and the tabs before you sew the pockets, so the panel edges stay open for edging.
Method: Whipstitch with the yarn tail and a tapestry needle.
Step 1 – Base edge: Place Pocket 1 against the RS of the panel, back side down. Line up the 18 sts of the pocket’s back base edge (Round 1, back side) with the 18 sts of marked Row 2. Whipstitch 1 pocket stitch to 1 panel stitch, catching the horizontal bars of the panel row. That is 18 to 18, so the pocket sits square with no gathers.
Step 2 – Back corners: Sew each back corner of the pocket up the panel’s edge column (st 1 on one side, st 18 on the other). The pocket wall covers about 12 panel rows. Work 1 whipstitch per panel row, and ease the pocket rounds in evenly.
Step 3 – Rim: Tack the 18 back rim sts to Row 14 of the panel, 1 st to 1 st.
Repeat for Pocket 2 (base on Row 37, rim on Row 49) and Pocket 3 (base on Row 72, rim on Row 84).
Tension: Pull each stitch snug enough to close the gap, but not so tight that the panel puckers. Lay the panel flat after each pocket and check that it is still straight.
Size checkpoint: The panel should still measure 6.5 in x 30.5 in (16.5 cm x 77.5 cm). The pocket tops should sit about 10 in (25.4 cm) apart, with about 6 in (15.2 cm) of open panel above the top pocket.
Border and Hanging Tabs
Border gauge: 1 sc per stitch along the top and bottom edges, 1 sc per row-end along the sides, and 3 sc in each corner stitch.
Border Round: Continuing from Row 105, ch 1, do not turn.
- Top edge: 3 sc in first st, sc in each of next 16 sts, 3 sc in last st. (22 sts)
- Side 1: Sc in the row-end of each of Rows 104 down to 2. (103 sts)
- Bottom edge: 3 sc in first foundation ch, sc in each of next 16 ch, 3 sc in last ch. (22 sts)
- Side 2: Sc in the row-end of each of Rows 2 up to 104. (103 sts)
Join with sl st to first sc. (250 sts)
Why the math works: Each long side has 105 rows. The row-ends of Rows 1 and 105 are taken up by the corner stitches, so 103 row-ends are left for each side. The top and bottom each have 18 stitches: 2 corner stitches (3 sc each) plus 16 plain stitches gives 6 + 16 = 22. Total: 22 + 103 + 22 + 103 = 250. Counted another way, 4 corners x 3 = 12, plus 16 x 2 = 32, plus 103 x 2 = 206, which also makes 250.
Fasten off. The panel now measures 6.5 in x 30.5 in (16.5 cm x 77.5 cm).
Hanging Tabs: The top edge of the border has 22 sts. Use them as 6 tab sts + 10 skipped sts + 6 tab sts = 22.
First Tab, Row 1: With RS facing, join yarn in the first st of the top edge, ch 1, sc in the same st and in each of the next 5 sts, turn. (6 sc)
Rows 2–21: Ch 1, sc in each st across, turn. (6 sc)
Fasten off and leave a 12 in (30.5 cm) tail.
Second Tab: Skip the next 10 sts of the top edge. Join in the 17th st and work as for the first tab over sts 17–22. (6 sc)
Each tab is 2 in (5.1 cm) wide and 6 in (15.2 cm) long. The opening between the tabs is about 3.3 in (8.4 cm), which leaves room for the bar brackets.
Forming the loops: Fold each tab toward the back to make a loop about 3 in (7.6 cm) tall. Whipstitch the 6 sts of Row 21 to the 6 sts directly beneath it on the back of Row 104, 1 st to 1 st. If your towel bar cannot be removed, wrap the tabs around the bar first and sew them in place.
Final Blocking
- Wet the finished holder in cool water and gently squeeze it out. Do not wring it.
- Roll it in a towel and press to remove extra water.
- Pin the panel flat at 6.5 in x 30.5 in (16.5 cm x 77.5 cm), with the side edges straight.
- Stuff each pocket with a plastic-wrapped toilet roll or a folded towel so it dries open and square.
- Smooth the basketweave blocks with your fingers so the raised blocks stand out evenly.
- Leave it to dry completely, then unpin.
Final Quality-Control Checklist
- The panel measures 6.5 in x 30.5 in (16.5 cm x 77.5 cm)
- The border has 250 sts, with 3 sc in each corner
- Both tabs have 6 sts and 21 rows and are sewn securely
- Each pocket has 72 sts in every wall round
- The basketweave blocks alternate cleanly every 2 rounds
- The pocket bases are sewn on Rows 2, 37 and 72
- The round joins are hidden on the back corners
- A standard roll stands upright inside each pocket
- All yarn ends are woven in for at least 2 in (5.1 cm)
Troubleshooting
Pocket walls flare outward: Your post stitches are too loose. Go down a hook size for the wall rounds only.
Basketweave blocks look uneven: Check that each round starts at the same corner, and that the FPdc and BPdc swap only after Rounds 4 and 6.
Panel edges wave after the border: You may have added extra sc on the sides. Re-count to 103 per side, or block firmly.
Panel edges pull in after the border: Your border tension is tight. Rework it with a looser hand, or go up a hook size for the border only.
Roll does not fit: The base is probably smaller than 6 in x 5.1 in (15.2 cm x 13.0 cm). Remake the base with a larger hook.
Holder tilts on the bar: The tabs are sewn at different depths. Re-sew both tabs to Row 104.
Care
Hand wash in cool water with a mild detergent and lay flat to dry, with the pockets filled so they hold their shape. Do not tumble dry, because heat can shrink the cotton unevenly.

Final Notes
The measurement chain is simple. Gauge sets the 18-st panel at 6 in (15.2 cm) wide and 30 in (76.2 cm) long. One border round brings it to 6.5 in x 30.5 in (16.5 cm x 77.5 cm), and the tabs add the hanging length. Each pocket uses the same 18-st width, so its back edge matches the panel stitch for stitch.
If your swatch, your test pocket and your Row 20 checkpoint all match, the finished holder will hang straight and hold three rolls neatly.
Happy crocheting!