{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "little-potted-cactus-granny-square-a-cheerful-succulent-motif",
  "title": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif",
  "meta_description": "Stitch an adorable Little Potted Cactus granny square in five easy rounds of cream, terracotta, and cactus green yarn — a fun beginner appliqué project.",
  "published_at": "2026-08-14",
  "updated_at": "2026-08-14",
  "author": "Nora",
  "thumbnail_url": "data/images/little-potted-cactus-granny-square-a-cheerful-succulent-motif-hero.webp",
  "meta": {
    "title": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif",
    "pattern_name": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif",
    "difficulty": "Beginner",
    "time_needed": "45-60 Minutes",
    "rating": 4.9,
    "made_count": "2.1K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Beginner",
      "yarn_weight": "Worsted",
      "tags": [
        "granny square",
        "cactus granny square",
        "pictorial crochet square",
        "crochet appliqué",
        "beginner crochet pattern",
        "worsted weight crochet",
        "potted cactus crochet",
        "succulent crochet motif",
        "terracotta and green crochet",
        "crochet flower square"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Beginner Friendly",
          "value": "Just five rounds and simple stitches make this a perfect first appliqué square.",
          "raw_text": "Just five rounds and simple stitches make this a perfect first appliqué square.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "hero-info-2",
          "label": "Playful Appliqué Design",
          "value": "A tiny potted cactus with pot, body, arm, and bloom brings personality to a classic granny base.",
          "raw_text": "A tiny potted cactus with pot, body, arm, and bloom brings personality to a classic granny base.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "hero-info-3",
          "label": "Quick Desert Charm",
          "value": "Worked in worsted weight with a 5.0 mm hook, this square stitches up in an evening or two.",
          "raw_text": "Worked in worsted weight with a 5.0 mm hook, this square stitches up in an evening or two.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "",
          "value": "The Little Potted Cactus Granny Square starts out as a classic granny base, worked from a magic ring in soft cream, then grows outward through four rounds and a border, picking up terracotta and cactus green along the way. What makes it special is what happens next: a small cactus appliqué, with its own rounded pot, a chubby body, one little arm, and a bright bloom on top, gets stitched separately and sewn onto the finished square, turning a plain set of granny rounds into a tiny still-life you'd want to frame.",
          "raw_text": "The Little Potted Cactus Granny Square starts out as a classic granny base, worked from a magic ring in soft cream, then grows outward through four rounds and a border, picking up terracotta and cactus green along the way. What makes it special is what happens next: a small cactus appliqué, with its own rounded pot, a chubby body, one little arm, and a bright bloom on top, gets stitched separately and sewn onto the finished square, turning a plain set of granny rounds into a tiny still-life you'd want to frame.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "about-info-2",
          "label": "",
          "value": "You'll use all the fundamentals of granny square construction here: a magic ring start, corner chain-2 spaces, three-double-crochet groups, and a tidy single crochet border to finish things off cleanly. The appliqué pieces are worked in the same straightforward stitches, just shaped and sewn rather than joined into the round. That combination makes this square a lovely project for beginners who already know their way around a granny square and are ready to try a little needle-and-thread finishing, as well as for more experienced stitchers who want a quick, satisfying make.",
          "raw_text": "You'll use all the fundamentals of granny square construction here: a magic ring start, corner chain-2 spaces, three-double-crochet groups, and a tidy single crochet border to finish things off cleanly. The appliqué pieces are worked in the same straightforward stitches, just shaped and sewn rather than joined into the round. That combination makes this square a lovely project for beginners who already know their way around a granny square and are ready to try a little needle-and-thread finishing, as well as for more experienced stitchers who want a quick, satisfying make.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "about-info-3",
          "label": "",
          "value": "Finished, the square measures about 6 by 6 inches, with the cactus sitting proudly in its pot against the colorful granny background. It looks wonderful worked in multiples for a garden-themed blanket or throw pillow, but it's just as charming stitched as a single square for a coaster, a mug rug, or a little framed piece of fiber art on its own.",
          "raw_text": "Finished, the square measures about 6 by 6 inches, with the cactus sitting proudly in its pot against the colorful granny background. It looks wonderful worked in multiples for a garden-themed blanket or throw pillow, but it's just as charming stitched as a single square for a coaster, a mug rug, or a little framed piece of fiber art on its own.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 3,
      "card_type": "why_love",
      "code": "why-love",
      "title": "Why You'll Love This Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "why-love-1",
          "label": "",
          "value": "I designed this square because I wanted a granny pattern that made me smile every time I picked it up, and this little cactus does exactly that. There's something so satisfying about building the plain, sturdy granny base first, then watching a tiny potted plant take shape as you add the pot, the rounded body, that one perky arm, and a little bloom on top. It feels like a small sculpture rather than just another stitch pattern. I love that it stays true to classic construction the whole way through, so even on days when I want to work without thinking too hard, my hands already know what to do. It's become one of my favorite squares to keep in my project bag.",
          "raw_text": "I designed this square because I wanted a granny pattern that made me smile every time I picked it up, and this little cactus does exactly that. There's something so satisfying about building the plain, sturdy granny base first, then watching a tiny potted plant take shape as you add the pot, the rounded body, that one perky arm, and a little bloom on top. It feels like a small sculpture rather than just another stitch pattern. I love that it stays true to classic construction the whole way through, so even on days when I want to work without thinking too hard, my hands already know what to do. It's become one of my favorite squares to keep in my project bag.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 4,
      "card_type": "switch_things_up",
      "code": "switch-things-up",
      "title": "Switch Things Up",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "switch-1",
          "label": "",
          "value": "This square is easy to play with once you've made it once. Try swapping terracotta for a soft clay pink or rust, or make the cactus body in a deeper forest green for more contrast against the background rounds. A pastel version with dusty rose, sage, and cream feels gentler, while bold colors like mustard, teal, and cream give it a modern pop. You can also size the whole thing up by using a bulkier yarn and larger hook for a bigger square, perfect for fewer seams in a throw, or drop down to a lighter weight yarn for a dainty coaster-sized version. However you color it, the little potted cactus keeps its charm and personality.",
          "raw_text": "This square is easy to play with once you've made it once. Try swapping terracotta for a soft clay pink or rust, or make the cactus body in a deeper forest green for more contrast against the background rounds. A pastel version with dusty rose, sage, and cream feels gentler, while bold colors like mustard, teal, and cream give it a modern pop. You can also size the whole thing up by using a bulkier yarn and larger hook for a bigger square, perfect for fewer seams in a throw, or drop down to a lighter weight yarn for a dainty coaster-sized version. However you color it, the little potted cactus keeps its charm and personality.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 5,
      "card_type": "common_mistakes",
      "code": "common-mistakes",
      "title": "Common Mistakes & How to Fix Them",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "mistake",
          "code": "mistake-1",
          "label": "Corner spaces pulled too tight",
          "value": "Keep your chain-2 corner spaces relaxed so the next round's stitch groups can nestle into them easily. If corners feel cramped, work your chains a touch looser on every round.",
          "raw_text": "Keep your chain-2 corner spaces relaxed so the next round's stitch groups can nestle into them easily. If corners feel cramped, work your chains a touch looser on every round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "mistake",
          "code": "mistake-2",
          "label": "Losing your place at joins",
          "value": "Granny rounds all start and end at a corner space, so mark it with a stitch marker or scrap yarn if you tend to lose track. It saves you from counting back through the whole round to find your spot.",
          "raw_text": "Granny rounds all start and end at a corner space, so mark it with a stitch marker or scrap yarn if you tend to lose track. It saves you from counting back through the whole round to find your spot.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "mistake",
          "code": "mistake-3",
          "label": "Sewing the appliqué on crooked",
          "value": "Pin all the cactus pieces in place and step back to check the layout before you stitch anything down. A few extra seconds of pinning saves you from unpicking a lopsided cactus later.",
          "raw_text": "Pin all the cactus pieces in place and step back to check the layout before you stitch anything down. A few extra seconds of pinning saves you from unpicking a lopsided cactus later.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "mistake",
          "code": "mistake-4",
          "label": "Weaving in color-change ends too soon",
          "value": "Leave your tails long enough to weave in securely after each color change, especially around the corners where they get the most handling. Trimming too close can let a stitch work loose over time.",
          "raw_text": "Leave your tails long enough to weave in securely after each color change, especially around the corners where they get the most handling. Trimming too close can let a stitch work loose over time.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Worsted-weight yarn in 3 colors (cream, terracotta, cactus green) — about 25–40 g total per square",
              "raw_text": "Worsted-weight yarn in 3 colors (cream, terracotta, cactus green) — about 25–40 g total per square"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "5.0 mm crochet hook",
              "raw_text": "5.0 mm crochet hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Yarn needle for weaving in ends",
              "raw_text": "Yarn needle for weaving in ends"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain",
          "raw_text": "ch = chain",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-sc",
          "label": "sc",
          "value": "single crochet",
          "raw_text": "sc = single crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sc",
          "meaning": "single crochet"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "sl st",
          "value": "slip stitch",
          "raw_text": "sl st = slip stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-sp",
          "label": "sp",
          "value": "space",
          "raw_text": "sp = space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sp",
          "meaning": "space"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-st-s",
          "label": "st(s)",
          "value": "stitch(es)",
          "raw_text": "st(s) = stitch(es)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st(s)",
          "meaning": "stitch(es)"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-rnd",
          "label": "rnd",
          "value": "round",
          "raw_text": "rnd = round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rnd",
          "meaning": "round"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-mr",
          "label": "MR",
          "value": "magic ring",
          "raw_text": "MR = magic ring",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "MR",
          "meaning": "magic ring"
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "the-background-square",
      "title": "The Background Square",
      "raw_heading": "The Background Square",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "part-info-1",
          "label": "Info",
          "value": "Work the plain background square first — the little potted cactus pieces are sewn on at the end. Every count below is math-verified.",
          "raw_text": "Work the plain background square first — the little potted cactus pieces are sewn on at the end. Every count below is math-verified.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-round-1",
          "label": "Round 1",
          "value": "With cream, in a magic ring: ch 3, 2 dc, ch 2, [3 dc, ch 2] 3 times; sl st to top of ch-3 to join (12)",
          "raw_text": "With cream, in a magic ring: ch 3, 2 dc, ch 2, [3 dc, ch 2] 3 times; sl st to top of ch-3 to join (12)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "part-step-1",
          "label": "Step by step",
          "value": "Step by step: Using cream yarn, in a magic ring: make 3 chain stitches, 2 double crochet, make 2 chain stitches, [3 double crochet, make 2 chain stitches] 3 times; slip stitch to top of ch-3 to join.",
          "raw_text": "Step by step: Using cream yarn, in a magic ring: make 3 chain stitches, 2 double crochet, make 2 chain stitches, [3 double crochet, make 2 chain stitches] 3 times; slip stitch to top of ch-3 to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "part-round-2",
          "label": "Round 2",
          "value": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, ] 3 times; sl st to join (24)",
          "raw_text": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, ] 3 times; sl st to join (24)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 24,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "part-step-2",
          "label": "Step by step",
          "value": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "part-round-3",
          "label": "Round 3",
          "value": "With terracotta, sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (36)",
          "raw_text": "With terracotta, sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (36)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 36,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "part-step-3",
          "label": "Step by step",
          "value": "Step by step: Using terracotta yarn, slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Using terracotta yarn, slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "round",
          "code": "part-round-4",
          "label": "Round 4",
          "value": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (48)",
          "raw_text": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (48)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 48,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "info",
          "code": "part-step-4",
          "label": "Step by step",
          "value": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "round",
          "code": "part-round-5",
          "label": "Border",
          "value": "With cream, sl st into the corner ch-2 sp, ch 1, [3 sc in the corner sp, (sc in next 3 sts, sc in next sp) 3 times, sc in next 3 sts] 4 times; sl st to the first sc (72)",
          "raw_text": "With cream, sl st into the corner ch-2 sp, ch 1, [3 sc in the corner sp, (sc in next 3 sts, sc in next sp) 3 times, sc in next 3 sts] 4 times; sl st to the first sc (72)",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": 72,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "info",
          "code": "part-step-5",
          "label": "Step by step",
          "value": "Step by step: Using cream yarn, slip stitch into the corner ch-2 space, make 1 chain stitch, [3 single crochet in the corner space, (single crochet in next 3 stitches, single crochet in next space) 3 times, single crochet in next 3 stitches] 4 times; slip stitch to the first single crochet.",
          "raw_text": "Step by step: Using cream yarn, slip stitch into the corner ch-2 space, make 1 chain stitch, [3 single crochet in the corner space, (single crochet in next 3 stitches, single crochet in next space) 3 times, single crochet in next 3 stitches] 4 times; slip stitch to the first single crochet.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "part",
      "code": "the-pot",
      "title": "The Pot",
      "raw_heading": "The Pot",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc1-info",
          "label": "Info",
          "value": "Worked in terracotta. Leave a long tail for sewing.",
          "raw_text": "Worked in terracotta. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc1-round-1",
          "label": "Round 1",
          "value": "ch 7, sc in 2nd ch from hook, sc in next 5 sts (6)",
          "raw_text": "ch 7, sc in 2nd ch from hook, sc in next 5 sts (6)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "pc1-round-2",
          "label": "Round 2",
          "value": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 8,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "pc1-round-3",
          "label": "Round 3",
          "value": "ch 1, turn, inc in first st, sc in next 6 sts, inc in last st (10)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 6 sts, inc in last st (10)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 10,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "pc1-round-4",
          "label": "Round 4",
          "value": "ch 1, turn, inc in first st, sc in next 8 sts, inc in last st (12)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 8 sts, inc in last st (12)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "part",
      "code": "the-cactus-body",
      "title": "The Cactus Body",
      "raw_heading": "The Cactus Body",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc2-info",
          "label": "Info",
          "value": "Worked in cactus green. Leave a long tail for sewing.",
          "raw_text": "Worked in cactus green. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc2-round-1",
          "label": "Round 1",
          "value": "6 sc in a magic ring (6)",
          "raw_text": "6 sc in a magic ring (6)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "pc2-round-2",
          "label": "Round 2",
          "value": "[inc] repeat 6 times (12)",
          "raw_text": "[inc] repeat 6 times (12)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "pc2-round-3",
          "label": "Round 3",
          "value": "[sc, inc] repeat 6 times (18)",
          "raw_text": "[sc, inc] repeat 6 times (18)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 18,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "pc2-round-4",
          "label": "Round 4",
          "value": "[sc in next 2 sts, inc] repeat 6 times (24)",
          "raw_text": "[sc in next 2 sts, inc] repeat 6 times (24)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 24,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 11,
      "card_type": "part",
      "code": "the-cactus-arm",
      "title": "The Cactus Arm",
      "raw_heading": "The Cactus Arm",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc3-info",
          "label": "Info",
          "value": "Worked in cactus green. Leave a long tail for sewing.",
          "raw_text": "Worked in cactus green. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc3-round-1",
          "label": "Round 1",
          "value": "ch 5, sc in 2nd ch from hook, sc in next 2 sts, 3 sc in last ch, working back along the underside sc in next 2 sts, inc in last ch (10)",
          "raw_text": "ch 5, sc in 2nd ch from hook, sc in next 2 sts, 3 sc in last ch, working back along the underside sc in next 2 sts, inc in last ch (10)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 10,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 12,
      "card_type": "part",
      "code": "the-flower",
      "title": "The Flower",
      "raw_heading": "The Flower",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc4-info",
          "label": "Info",
          "value": "Worked in cream. Leave a long tail for sewing.",
          "raw_text": "Worked in cream. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc4-round-1",
          "label": "Round 1",
          "value": "6 sc in a magic ring (6)",
          "raw_text": "6 sc in a magic ring (6)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "pc4-round-2",
          "label": "Round 2",
          "value": "[inc] repeat 6 times (12)",
          "raw_text": "[inc] repeat 6 times (12)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "pc4-round-3",
          "label": "Round 3",
          "value": "[sc, inc] repeat 6 times (18)",
          "raw_text": "[sc, inc] repeat 6 times (18)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 18,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 13,
      "card_type": "part",
      "code": "assembly",
      "title": "Assembly — Bringing It Together",
      "raw_heading": "Assembly",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "asm-1",
          "label": "Step 1",
          "value": "Pin the Pot to the lower-center of the background square, straight edge down; sew around the side and top edges, leaving the top rim open",
          "raw_text": "Pin the Pot to the lower-center of the background square, straight edge down; sew around the side and top edges, leaving the top rim open",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "asm-2",
          "label": "Step 2",
          "value": "Set the Cactus Body upright just above the pot rim, tucking its bottom edge slightly behind the rim; sew all around the outer edge",
          "raw_text": "Set the Cactus Body upright just above the pot rim, tucking its bottom edge slightly behind the rim; sew all around the outer edge",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "asm-3",
          "label": "Step 3",
          "value": "Angle the Cactus Arm out from one side of the Cactus Body, pointed end tucked under; tack it down along its full edge",
          "raw_text": "Angle the Cactus Arm out from one side of the Cactus Body, pointed end tucked under; tack it down along its full edge",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "asm-4",
          "label": "Step 4",
          "value": "Perch the Flower on top of the Cactus Body (or atop the arm), centered; sew around its edge",
          "raw_text": "Perch the Flower on top of the Cactus Body (or atop the arm), centered; sew around its edge",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "asm-5",
          "label": "Step 5",
          "value": "Finish with the spine and flower-center embroidery once all pieces are secured",
          "raw_text": "Finish with the spine and flower-center embroidery once all pieces are secured",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "info",
          "code": "asm-6",
          "label": "Embroidery",
          "value": "Cactus spines: scatter short straight stitches in cream across the front of the Cactus Body, angled outward like tiny thorns",
          "raw_text": "Cactus spines: scatter short straight stitches in cream across the front of the Cactus Body, angled outward like tiny thorns",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "asm-7",
          "label": "Embroidery",
          "value": "Flower center: work a small cluster of straight stitches in terracotta at the middle of the Flower",
          "raw_text": "Flower center: work a small cluster of straight stitches in terracotta at the middle of the Flower",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 14,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-1",
          "label": "Note",
          "value": "💡 Gauge: the finished square is about 6 x 6 inches in Worsted weight yarn with a 5.0 mm hook. Tight crocheters can go up half a hook size; loose ones down half.",
          "raw_text": "💡 Gauge: the finished square is about 6 x 6 inches in Worsted weight yarn with a 5.0 mm hook. Tight crocheters can go up half a hook size; loose ones down half.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "note-2",
          "label": "Note",
          "value": "💡 Color plan: the sample uses cream, terracotta, cactus green in round order — change colors with a slip-stitch join in the first stitch of the new round.",
          "raw_text": "💡 Color plan: the sample uses cream, terracotta, cactus green in round order — change colors with a slip-stitch join in the first stitch of the new round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "note-3",
          "label": "Note",
          "value": "💡 Block your finished square lightly before sewing on the appliqué pieces - it makes the corners crisp and gives you a flat, even surface to stitch onto.",
          "raw_text": "💡 Block your finished square lightly before sewing on the appliqué pieces - it makes the corners crisp and gives you a flat, even surface to stitch onto.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "note-4",
          "label": "Note",
          "value": "💡 Stitch the cactus appliqué with a strand of matching yarn and a tapestry needle, catching just the back loops of your background square so the stitches stay hidden.",
          "raw_text": "💡 Stitch the cactus appliqué with a strand of matching yarn and a tapestry needle, catching just the back loops of your background square so the stitches stay hidden.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 15,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "What yarn weight and hook size does this pattern use?",
          "value": "This square is worked in worsted weight yarn with a 5.0 mm hook, which gives you nicely defined stitches for both the granny background and the cactus appliqué. Any worsted weight yarn you enjoy working with will do.",
          "raw_text": "This square is worked in worsted weight yarn with a 5.0 mm hook, which gives you nicely defined stitches for both the granny background and the cactus appliqué. Any worsted weight yarn you enjoy working with will do.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What yarn weight and hook size does this pattern use?",
          "answer": "This square is worked in worsted weight yarn with a 5.0 mm hook, which gives you nicely defined stitches for both the granny background and the cactus appliqué. Any worsted weight yarn you enjoy working with will do.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "How many colors do I need?",
          "value": "Just three: cream, terracotta, and cactus green. Cream forms the background rounds and border, while terracotta and cactus green build up the middle rounds and the cactus appliqué pieces.",
          "raw_text": "Just three: cream, terracotta, and cactus green. Cream forms the background rounds and border, while terracotta and cactus green build up the middle rounds and the cactus appliqué pieces.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many colors do I need?",
          "answer": "Just three: cream, terracotta, and cactus green. Cream forms the background rounds and border, while terracotta and cactus green build up the middle rounds and the cactus appliqué pieces.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Is this a good square for a beginner?",
          "value": "Yes, it's rated beginner level and uses standard granny square construction throughout. The only new skill is sewing on the small appliqué pieces at the end, which is simple straight stitching.",
          "raw_text": "Yes, it's rated beginner level and uses standard granny square construction throughout. The only new skill is sewing on the small appliqué pieces at the end, which is simple straight stitching.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this a good square for a beginner?",
          "answer": "Yes, it's rated beginner level and uses standard granny square construction throughout. The only new skill is sewing on the small appliqué pieces at the end, which is simple straight stitching.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "How do I attach the pot, cactus, and flower pieces?",
          "value": "Pin each piece in place first to check your layout, then whipstitch or sew around the edges with a matching strand of yarn and a tapestry needle. Take your time on the small arm piece since it has the least surface area to anchor.",
          "raw_text": "Pin each piece in place first to check your layout, then whipstitch or sew around the edges with a matching strand of yarn and a tapestry needle. Take your time on the small arm piece since it has the least surface area to anchor.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How do I attach the pot, cactus, and flower pieces?",
          "answer": "Pin each piece in place first to check your layout, then whipstitch or sew around the edges with a matching strand of yarn and a tapestry needle. Take your time on the small arm piece since it has the least surface area to anchor.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "What's the finished size of this square?",
          "value": "It finishes at about 6 by 6 inches, which makes it easy to combine with other same-sized granny squares for a blanket, or to use on its own for a small project.",
          "raw_text": "It finishes at about 6 by 6 inches, which makes it easy to combine with other same-sized granny squares for a blanket, or to use on its own for a small project.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What's the finished size of this square?",
          "answer": "It finishes at about 6 by 6 inches, which makes it easy to combine with other same-sized granny squares for a blanket, or to use on its own for a small project.",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/little-potted-cactus-granny-square-a-cheerful-succulent-motif-hero.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/little-potted-cactus-granny-square-a-cheerful-succulent-motif-hero.webp",
      "alt": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif — finished granny square",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/little-potted-cactus-granny-square-a-cheerful-succulent-motif-hero.webp",
      "alt": "Little Potted Cactus Granny Square — A Cheerful Succulent Motif — finished granny square",
      "is_featured": true
    }
  ],
  "_squarelab": {
    "original_design": true,
    "square_id": "little-potted-cactus-granny-square--dd8f4904",
    "family": "classic",
    "path": "classic",
    "recipe": [
      "classic_center",
      "granny_grow",
      "granny_grow",
      "granny_grow",
      "sc_border"
    ],
    "verdict": "ship",
    "all_counts_verified": true
  },
  "_sanitized_holiday_count": 0
}