{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "farmhouse-granny-square",
  "title": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern",
  "meta_description": "Crochet a cozy farmhouse granny square with raised bobble texture. A quick 6-inch DK pattern perfect for blankets, cushions and rustic home decor",
  "published_at": "2026-07-16",
  "updated_at": "2026-07-16",
  "author": "Ruby",
  "thumbnail_url": "data/images/farmhouse-granny-square-hero.webp",
  "meta": {
    "title": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern",
    "pattern_name": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern",
    "difficulty": "Intermediate",
    "time_needed": "30-45 Minutes",
    "rating": 4.8,
    "made_count": "2.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "DK",
      "tags": [
        "granny square",
        "free pattern",
        "bobble stitch",
        "farmhouse decor",
        "crochet blanket square",
        "textured crochet",
        "home decor",
        "beginner friendly",
        "DK yarn",
        "crochet motif",
        "cushion cover",
        "coaster pattern"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Confident Beginner",
          "value": "Comfortable with double crochet and ready to try easy bobble clusters",
          "raw_text": "Comfortable with double crochet and ready to try easy bobble clusters",
          "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": "Quick Afternoon Make",
          "value": "Just 30-45 relaxing minutes per 6-inch square",
          "raw_text": "Just 30-45 relaxing minutes per 6-inch square",
          "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": "Farmhouse Charm",
          "value": "Cozy textured motif for blankets, cushions and rustic home decor",
          "raw_text": "Cozy textured motif for blankets, cushions and rustic home decor",
          "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 Farmhouse Granny Square is a beautifully textured 6-inch motif built around raised bobble clusters that give it that cozy, homespun charm farmhouse decor is loved for. Unlike a plain granny square, this one has dimension you can actually feel — little rounded bumps that catch the light and add a handmade, heirloom quality. It's perfect for anyone who wants to move beyond basic double crochet squares and start making pieces with real character for blankets, cushions, and the cozy corners of a home",
          "raw_text": "The Farmhouse Granny Square is a beautifully textured 6-inch motif built around raised bobble clusters that give it that cozy, homespun charm farmhouse decor is loved for. Unlike a plain granny square, this one has dimension you can actually feel — little rounded bumps that catch the light and add a handmade, heirloom quality. It's perfect for anyone who wants to move beyond basic double crochet squares and start making pieces with real character for blankets, cushions, and the cozy corners of a home",
          "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": "To make it, you'll work through five rounds that combine classic double crochet with a simple three-stitch bobble — the plump little puff created by working three partial double crochets into one stitch and closing them all together with a single yarn over. If you're already comfortable with double crochet and chain-space corners, the bobble is the only new skill to learn, and it clicks into place after a couple of tries. This is a confident-beginner to intermediate make, and a single square takes most crocheters just 30 to 45 minutes",
          "raw_text": "To make it, you'll work through five rounds that combine classic double crochet with a simple three-stitch bobble — the plump little puff created by working three partial double crochets into one stitch and closing them all together with a single yarn over. If you're already comfortable with double crochet and chain-space corners, the bobble is the only new skill to learn, and it clicks into place after a couple of tries. This is a confident-beginner to intermediate make, and a single square takes most crocheters just 30 to 45 minutes",
          "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": "The finished square measures a tidy 6 inches by 6 inches when worked in DK yarn on a 3.50mm hook, with crisp corners and a plush, tactile surface. In the sample's serene blue it feels calm and coastal, but that bobble texture shines in any shade you choose. Stitch a stack of them together for a farmhouse throw, use a single one as a mug rug, or gift a little set of coasters — each square feels thoughtful, cozy, and lovingly handmade, exactly the kind of detail people treasure in a gift",
          "raw_text": "The finished square measures a tidy 6 inches by 6 inches when worked in DK yarn on a 3.50mm hook, with crisp corners and a plush, tactile surface. In the sample's serene blue it feels calm and coastal, but that bobble texture shines in any shade you choose. Stitch a stack of them together for a farmhouse throw, use a single one as a mug rug, or gift a little set of coasters — each square feels thoughtful, cozy, and lovingly handmade, exactly the kind of detail people treasure in a gift",
          "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 have a real soft spot for this square, and it's all because of those bobbles. There's something so satisfying about working three partial double crochets into a single stitch, watching the loops pile up on your hook, and then pulling that final yarn over through all four at once — pop! — a neat little bump appears every single time, and it never gets old. What I love most is how much personality you get for so little effort. Underneath, it's still just double crochet and chain-space corners, so it works up fast, but the finished texture looks like you fussed over it for hours. The 6-inch size is my sweet spot too: big enough to feel substantial, small enough to finish in one sitting with a cup of tea. And because it's a one-color pattern, there's no fiddly color changing or extra ends to weave in mid-round, so you can settle into a lovely, meditative rhythm. Whether I'm making a single square to test a new skein or a whole pile for a blanket, this is the one I reach for when I want cozy, tactile, and genuinely relaxing crochet",
          "raw_text": "I have a real soft spot for this square, and it's all because of those bobbles. There's something so satisfying about working three partial double crochets into a single stitch, watching the loops pile up on your hook, and then pulling that final yarn over through all four at once — pop! — a neat little bump appears every single time, and it never gets old. What I love most is how much personality you get for so little effort. Underneath, it's still just double crochet and chain-space corners, so it works up fast, but the finished texture looks like you fussed over it for hours. The 6-inch size is my sweet spot too: big enough to feel substantial, small enough to finish in one sitting with a cup of tea. And because it's a one-color pattern, there's no fiddly color changing or extra ends to weave in mid-round, so you can settle into a lovely, meditative rhythm. Whether I'm making a single square to test a new skein or a whole pile for a blanket, this is the one I reach for when I want cozy, tactile, and genuinely relaxing crochet",
          "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": "The beauty of a single-color square is how easy it is to reimagine. The sample's serene blue leans coastal, but swap in a soft sage green and you get an instantly botanical, natural feel — gorgeous for a garden-room throw. A gentle lavender with white bobbles is dreamy for a sweet spring-inspired look, perfect for baby blankets or nursery decorations, and for the classic farmhouse look, try a warm cream or oatmeal with the bobbles standing proud in the same tone for a subtle, tonal texture. Love contrast? Work rounds 1 through 4 in a neutral like ecru, then pop the bobble round in deep terracotta or dusty rose so the bumps really stand out. For a scrappy patchwork blanket, keep the same hook and yarn weight but rotate through a curated palette — muted blues, greens, mustard, and greige — so every square still feels part of one family. To change the size, simply repeat the pattern round before your final round: each extra round adds roughly 1 to 1.5 inches, so adding a sixth or seventh round takes you toward an 8-inch square for pillow fronts. Going smaller? Stop after round 3 or 4 for a 4-inch coaster. For yarn swaps, Paintbox Simply DK and Scheepjes Stone Washed both give crisp, well-defined bobbles, while a sturdy cotton like Ricorumi keeps coasters washable and firm. Seasonal idea: cranberry and forest green for winter, or buttery yellow for a spring baby gift",
          "raw_text": "The beauty of a single-color square is how easy it is to reimagine. The sample's serene blue leans coastal, but swap in a soft sage green and you get an instantly botanical, natural feel — gorgeous for a garden-room throw. A gentle lavender with white bobbles is dreamy for a sweet spring-inspired look, perfect for baby blankets or nursery decorations, and for the classic farmhouse look, try a warm cream or oatmeal with the bobbles standing proud in the same tone for a subtle, tonal texture. Love contrast? Work rounds 1 through 4 in a neutral like ecru, then pop the bobble round in deep terracotta or dusty rose so the bumps really stand out. For a scrappy patchwork blanket, keep the same hook and yarn weight but rotate through a curated palette — muted blues, greens, mustard, and greige — so every square still feels part of one family. To change the size, simply repeat the pattern round before your final round: each extra round adds roughly 1 to 1.5 inches, so adding a sixth or seventh round takes you toward an 8-inch square for pillow fronts. Going smaller? Stop after round 3 or 4 for a 4-inch coaster. For yarn swaps, Paintbox Simply DK and Scheepjes Stone Washed both give crisp, well-defined bobbles, while a sturdy cotton like Ricorumi keeps coasters washable and firm. Seasonal idea: cranberry and forest green for winter, or buttery yellow for a spring baby gift",
          "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": "Finishing each double crochet",
          "value": "Remember the bobble is built from three UNfinished double crochets. Stop each one when there are two loops still on your hook (yarn over, pull through two, then stop). Only after all three partials are made do you yarn over and pull through all four loops together to close the bobble",
          "raw_text": "Remember the bobble is built from three UNfinished double crochets. Stop each one when there are two loops still on your hook (yarn over, pull through two, then stop). Only after all three partials are made do you yarn over and pull through all four loops together to close the bobble",
          "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": "Ending up with the wrong number of",
          "value": "Before that final yarn over, you should have exactly four loops: one working loop plus one 'held' loop from each of the three partial double crochets. If you have more or fewer, count back — you likely closed a partial too early or worked an extra one. Pull through all four in one smooth motion for a rounded bump",
          "raw_text": "Before that final yarn over, you should have exactly four loops: one working loop plus one 'held' loop from each of the three partial double crochets. If you have more or fewer, count back — you likely closed a partial too early or worked an extra one. Pull through all four in one smooth motion for a rounded bump",
          "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": "Pulling the closing yarn over too",
          "value": "The bobble needs a little slack to puff outward. Keep that final loop relaxed as you draw it through all four, then snug it gently — not fiercely. If your bobbles keep flattening, loosen your overall tension slightly or go up a quarter hook size just for practice squares",
          "raw_text": "The bobble needs a little slack to puff outward. Keep that final loop relaxed as you draw it through all four, then snug it gently — not fiercely. If your bobbles keep flattening, loosen your overall tension slightly or go up a quarter hook size just for practice squares",
          "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": "Bobbles popping to the front of the",
          "value": "Bobbles naturally push out to the side facing away from you as you make them. Decide early which side is your 'right side' and stay consistent every round so all the texture lands on the same face. If one sneaks to the wrong side, you can usually poke it through with your finger before moving on",
          "raw_text": "Bobbles naturally push out to the side facing away from you as you make them. Decide early which side is your 'right side' and stay consistent every round so all the texture lands on the same face. If one sneaks to the wrong side, you can usually poke it through with your finger before moving on",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "mistake",
          "code": "mistake-5",
          "label": "Losing the corner chain spaces and",
          "value": "The corners are what keep the motif square. Always work your corner cluster into the chain space itself, not into a stitch, and keep the same chain count at every corner. Popping a stitch marker into each corner space on the first round makes them easy to find as the square grows",
          "raw_text": "The corners are what keep the motif square. Always work your corner cluster into the chain space itself, not into a stitch, and keep the same chain count at every corner. Popping a stitch marker into each corner space on the first round makes them easy to find as the square grows",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "mistake",
          "code": "mistake-6",
          "label": "The square curling or ruffling instead of lying flat",
          "value": "Curling usually means your tension tightened up around the bobbles; ruffling means you added too many stitches along a side. Recount each side against the pattern after every round, and give the finished square a gentle steam or wet block on a 6-inch guide to set those corners perfectly square",
          "raw_text": "Curling usually means your tension tightened up around the bobbles; ruffling means you added too many stitches along a side. Recount each side against the pattern after every round, and give the finished square a gentle steam or wet block on a 6-inch guide to set those corners perfectly square",
          "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": "Yarn of your choice- 1 color, the sample is made with DK sports",
              "raw_text": "Yarn of your choice- 1 color, the sample is made with DK sports"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook – we are using a 3.50mm hook",
              "raw_text": "Crochet hook – we are using a 3.50mm hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "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-lp",
          "label": "lp",
          "value": "loop",
          "raw_text": "lp = loop",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "lp",
          "meaning": "loop"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-rep",
          "label": "rep",
          "value": "repeat",
          "raw_text": "rep = repeat",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rep",
          "meaning": "repeat"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 4,
          "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": 5,
          "row_type": "abbrev",
          "code": "abbrev-bo",
          "label": "bo",
          "value": "bobble",
          "raw_text": "bo = bobble",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "bo",
          "meaning": "bobble"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-yo",
          "label": "yo",
          "value": "yarn over",
          "raw_text": "yo = yarn over",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "yo",
          "meaning": "yarn over"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 9,
          "row_type": "abbrev",
          "code": "abbrev-sk",
          "label": "sk",
          "value": "skip",
          "raw_text": "sk = skip",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sk",
          "meaning": "skip"
        },
        {
          "order": 10,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "sl st",
          "value": "slip stitch for joining for different round.",
          "raw_text": "sl st = slip stitch for joining for different round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch for joining for different round."
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "how-to-crochet-farmhouse-grann",
      "title": "How to Crochet Farmhouse Granny Square",
      "raw_heading": "How to Crochet Farmhouse Granny Square",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "how-to-crochet-farmhouse-grann-info-1",
          "label": "Info",
          "value": "This soft blue granny square features raised bobble stitches that form a delightful bumpy texture radiating from the center in a classic diamond pattern. The bobble stitches add a wonderful tactile quality that creates those raised bumps, while the chain spaces around the border create a subtle lacey effect. Gauge: the finished granny square is 6 inches by 6 inches.",
          "raw_text": "This soft blue granny square features raised bobble stitches that form a delightful bumpy texture radiating from the center in a classic diamond pattern. The bobble stitches add a wonderful tactile quality that creates those raised bumps, while the chain spaces around the border create a subtle lacey effect. Gauge: the finished granny square is 6 inches by 6 inches.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "subhead",
          "code": "how-to-crochet-farmhouse-grann-info-5",
          "label": "",
          "value": "How to make a 3-dc-bo stitch",
          "raw_text": "How to make a 3-dc-bo stitch: 1. yo, insert your hook into the designated st; 2. yo and pull through (3 loops on your hook); 3. yo and pull through 2 loops (2 loops on your hook). This completes one partial double crochet – do not finish it completely. Repeat steps 1-3 two more times in the same st (4 loops on your hook). 4. yo and pull through all 4 loops on your hook.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-5",
          "label": "Steps",
          "value": "1. yo, insert your hook into the designated st; 2. yo and pull through (3 loops on your hook); 3. yo and pull through 2 loops (2 loops on your hook). This completes one partial double crochet – do not finish it completely. Repeat steps 1-3 two more times in the same st (4 loops on your hook). 4. yo and pull through all 4 loops on your hook.",
          "raw_text": "How to make a 3-dc-bo stitch: 1. yo, insert your hook into the designated st; 2. yo and pull through (3 loops on your hook); 3. yo and pull through 2 loops (2 loops on your hook). This completes one partial double crochet – do not finish it completely. Repeat steps 1-3 two more times in the same st (4 loops on your hook). 4. yo and pull through all 4 loops on your hook.",
          "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": "how-to-crochet-farmhouse-grann-round-1",
          "label": "Round 1",
          "value": "magic ring, ch2(not count as dc), 2dc, ch2, [3-dc-bo, ch2] rep 7 times, slst to top of ch3.",
          "raw_text": "Round 1 magic ring, ch2(not count as dc), 2dc, ch2, [3-dc-bo, ch2] rep 7 times, slst to top of ch3.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-6",
          "label": "Steps",
          "value": "Start with a magic ring; make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; [3-dc-bo, ch2] repeat 7 times, slst to top of ch3. Round 1 finished.",
          "raw_text": "Step by step: Start with a magic ring; make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; [3-dc-bo, ch2] repeat 7 times, slst to top of ch3. Round 1 finished.",
          "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": "how-to-crochet-farmhouse-grann-round-2",
          "label": "Round 2",
          "value": "ch2(not count as dc), 2dc, ch2, 3dc, ch2, 3-dc-bo ch3 3-dc-bo in the next ch-sp, ch2, [3dc, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 2 times, 3dc, ch2, 3-dc-bo, ch3, slst to top of ch3.",
          "raw_text": "Round 2 ch2(not count as dc), 2dc, ch2, 3dc, ch2, 3-dc-bo ch3 3-dc-bo in the next ch-sp, ch2, [3dc, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 2 times, 3dc, ch2, 3-dc-bo, ch3, slst to top of ch3.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-7",
          "label": "Steps",
          "value": "Make 2 chain stitches as standing stitch (not count as dc); work 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then ch2; make 3dc and ch2; 3-dc-bo ch3 3-dc-bo in the next ch-sp; ch2, [3dc, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 2 times, 3dc, ch2, 3-dc-bo, ch3, slst to top of ch3. Round 2 finished.",
          "raw_text": "Step by step: Make 2 chain stitches as standing stitch (not count as dc); work 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then ch2; make 3dc and ch2; 3-dc-bo ch3 3-dc-bo in the next ch-sp; ch2, [3dc, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 2 times, 3dc, ch2, 3-dc-bo, ch3, slst to top of ch3. Round 2 finished.",
          "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": "how-to-crochet-farmhouse-grann-round-3",
          "label": "Round 3",
          "value": "ch3(not count as dc), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2, [2dc in next ch-sp, *dc in next st, rep * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2] rep 3 times, slst to top of ch3.",
          "raw_text": "Round 3 ch3(not count as dc), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2, [2dc in next ch-sp, *dc in next st, rep * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2] rep 3 times, slst to top of ch3.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-8",
          "label": "Steps",
          "value": "Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; make 2dc in next ch-sp; *dc in next stitch, repeat * 3 times; 2dc in next ch-sp; ch2; 3-dc-bo; ch3; 3-dc-bo in same ch-sp, ch2; make [2dc in next ch-sp, *dc in next stitch, repeat * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2] repeat 3 times; slst to top of ch3. Round 3 finished.",
          "raw_text": "Step by step: Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; make 2dc in next ch-sp; *dc in next stitch, repeat * 3 times; 2dc in next ch-sp; ch2; 3-dc-bo; ch3; 3-dc-bo in same ch-sp, ch2; make [2dc in next ch-sp, *dc in next stitch, repeat * 3 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in next ch-sp, ch2] repeat 3 times; slst to top of ch3. Round 3 finished.",
          "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": "how-to-crochet-farmhouse-grann-round-4",
          "label": "Round 4",
          "value": "ch3(not count as dc standing), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, [ch2, 2dc in next ch-sp, *dc in next stitch, rep* 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp] rep 3 times, slst to top of ch3.",
          "raw_text": "Round 4 ch3(not count as dc standing), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, [ch2, 2dc in next ch-sp, *dc in next stitch, rep* 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp] rep 3 times, slst to top of ch3.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-9",
          "label": "Steps",
          "value": "Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; make 2dc in next ch-sp; *dc in next stitch, repeat * 8 times; make 2dc in next ch-sp; ch2; 3-dc-bo; ch3; 3-dc-bo in same corner sp, ch2; [2dc in next ch-sp, *dc in next stitch, repeat* 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 3 times, slst to top of ch3. Round 4 finished.",
          "raw_text": "Step by step: Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; then make ch2; make 2dc in next ch-sp; *dc in next stitch, repeat * 8 times; make 2dc in next ch-sp; ch2; 3-dc-bo; ch3; 3-dc-bo in same corner sp, ch2; [2dc in next ch-sp, *dc in next stitch, repeat* 8 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, ch2] repeat 3 times, slst to top of ch3. Round 4 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "round",
          "code": "how-to-crochet-farmhouse-grann-round-5",
          "label": "Round 5",
          "value": "ch3(not count as dc), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 11 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, [ch2, 2dc in next ch-sp, *dc in next stitch, rep* 11 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp] rep 3 times, slst to top of ch3, fasten off.",
          "raw_text": "Round 5 ch3(not count as dc), 2dc, ch2, 2dc in next ch-sp, *dc in next st, rep * 11 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp, [ch2, 2dc in next ch-sp, *dc in next stitch, rep* 11 times, 2dc in next ch-sp, ch2, 3-dc-bo ch3 3-dc-bo in corner sp] rep 3 times, slst to top of ch3, fasten off.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "instruction",
          "code": "how-to-crochet-farmhouse-grann-info-10",
          "label": "Steps",
          "value": "Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; ch2; 2dc in next ch-sp; *dc in next stitch, repeat* 11 times; 2dc in next ch-sp; ch2; 3-dc-bo in corner sp; ch3; 3-dc-bo in corner sp; ch2; [2dc in next ch-sp, *dc in next stitch, repeat* 11 times, 2dc in next ch-sp, ch2] repeat 3 times, slst to top of ch3, fasten off. The solid granny square is finished. Now weave in the ends and cut off extra yarn.",
          "raw_text": "Step by step: Now we turn it into square. Make 2 chain stitches as standing stitch (not count as dc); 2 unfinished double crochet then pull the yarn through 4 loops to form the first 3-dc-bo stitch, this is a bobble stitch; ch2; 2dc in next ch-sp; *dc in next stitch, repeat* 11 times; 2dc in next ch-sp; ch2; 3-dc-bo in corner sp; ch3; 3-dc-bo in corner sp; ch2; [2dc in next ch-sp, *dc in next stitch, repeat* 11 times, 2dc in next ch-sp, ch2] repeat 3 times, slst to top of ch3, fasten off. The solid granny square is finished. Now weave in the ends and cut off extra yarn.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "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": "💡 Stick with the recommended 3.50mm hook and a smooth DK (sport-weight) yarn for a square that blocks to the intended 6 inches by 6 inches — a lighter or heavier yarn will change your final measurement, so make a test square before committing to a whole blanket's worth",
          "raw_text": "💡 Stick with the recommended 3.50mm hook and a smooth DK (sport-weight) yarn for a square that blocks to the intended 6 inches by 6 inches — a lighter or heavier yarn will change your final measurement, so make a test square before committing to a whole blanket's worth",
          "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": "💡 Drop a stitch marker into each of the four corner chain spaces on the first couple of rounds. Corners are the easiest place to miscount, and marking them keeps your sides even and your final square true",
          "raw_text": "💡 Drop a stitch marker into each of the four corner chain spaces on the first couple of rounds. Corners are the easiest place to miscount, and marking them keeps your sides even and your final square true",
          "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": "💡 Practice the bobble on a scrap swatch first: three partial double crochets in one stitch, then close all four loops together. Getting the muscle memory before round one means your first real square comes out neat and even",
          "raw_text": "💡 Practice the bobble on a scrap swatch first: three partial double crochets in one stitch, then close all four loops together. Getting the muscle memory before round one means your first real square comes out neat and even",
          "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": "💡 Because this is a single-color pattern, leave a 6-inch tail at the start and finish and weave in ends as you go — there's no mid-round color changing to juggle, so a couple of tidy tails is all you'll ever deal with",
          "raw_text": "💡 Because this is a single-color pattern, leave a 6-inch tail at the start and finish and weave in ends as you go — there's no mid-round color changing to juggle, so a couple of tidy tails is all you'll ever deal with",
          "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": "note-5",
          "label": "Note",
          "value": "💡 Keep your bobble tension consistent by pulling that final loop to roughly the same height every time. Uneven closing loops are the number-one reason bobbles look mismatched across a finished blanket",
          "raw_text": "💡 Keep your bobble tension consistent by pulling that final loop to roughly the same height every time. Uneven closing loops are the number-one reason bobbles look mismatched across a finished blanket",
          "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": "note-6",
          "label": "Note",
          "value": "💡 Block the finished square gently by pinning it damp to a 6-inch square on a foam mat or towel. It sharpens the corners, evens out the bobble texture, and makes joining multiple squares into a throw far easier",
          "raw_text": "💡 Block the finished square gently by pinning it damp to a 6-inch square on a foam mat or towel. It sharpens the corners, evens out the bobble texture, and makes joining multiple squares into a throw far easier",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "What is the bobble stitch used in this pattern, exactly?",
          "value": "It's a cluster made from three partial (unfinished) double crochets worked into the same stitch, then closed by pulling through all four loops at once. That single closing motion is what creates the plump, raised bump that gives the square its farmhouse texture",
          "raw_text": "It's a cluster made from three partial (unfinished) double crochets worked into the same stitch, then closed by pulling through all four loops at once. That single closing motion is what creates the plump, raised bump that gives the square its farmhouse texture",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What is the bobble stitch used in this pattern, exactly?",
          "answer": "It's a cluster made from three partial (unfinished) double crochets worked into the same stitch, then closed by pulling through all four loops at once. That single closing motion is what creates the plump, raised bump that gives the square its farmhouse texture",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "How big is the finished granny square?",
          "value": "Worked over five rounds in DK yarn with a 3.50mm hook, it finishes at 6 inches by 6 inches. Your gauge and blocking will affect the exact size, so make one square first if you're planning to join many together",
          "raw_text": "Worked over five rounds in DK yarn with a 3.50mm hook, it finishes at 6 inches by 6 inches. Your gauge and blocking will affect the exact size, so make one square first if you're planning to join many together",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is the finished granny square?",
          "answer": "Worked over five rounds in DK yarn with a 3.50mm hook, it finishes at 6 inches by 6 inches. Your gauge and blocking will affect the exact size, so make one square first if you're planning to join many together",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Can a beginner make this square?",
          "value": "Yes, as long as you're comfortable with double crochet and chain-space corners. The bobble is the only new technique, and it's very approachable once you've practiced it a few times on a scrap. It sits right at the confident-beginner to intermediate level",
          "raw_text": "Yes, as long as you're comfortable with double crochet and chain-space corners. The bobble is the only new technique, and it's very approachable once you've practiced it a few times on a scrap. It sits right at the confident-beginner to intermediate level",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can a beginner make this square?",
          "answer": "Yes, as long as you're comfortable with double crochet and chain-space corners. The bobble is the only new technique, and it's very approachable once you've practiced it a few times on a scrap. It sits right at the confident-beginner to intermediate level",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "How many squares do I need for a blanket?",
          "value": "It depends on the size you want. Since each square is roughly 6 inches, a cozy baby blanket needs about 30 squares in a 5-by-6 layout, while a generous lap throw takes closer to 48. Add a border round to each for a little extra size",
          "raw_text": "It depends on the size you want. Since each square is roughly 6 inches, a cozy baby blanket needs about 30 squares in a 5-by-6 layout, while a generous lap throw takes closer to 48. Add a border round to each for a little extra size",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many squares do I need for a blanket?",
          "answer": "It depends on the size you want. Since each square is roughly 6 inches, a cozy baby blanket needs about 30 squares in a 5-by-6 layout, while a generous lap throw takes closer to 48. Add a border round to each for a little extra size",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Why is my square not lying flat?",
          "value": "Curling usually points to tight tension around the bobbles, and rippling means there are too many stitches along a side. Recount each round against the pattern, keep your bobble closing loops relaxed, and give the finished square a gentle block to set it perfectly square",
          "raw_text": "Curling usually points to tight tension around the bobbles, and rippling means there are too many stitches along a side. Recount each round against the pattern, keep your bobble closing loops relaxed, and give the finished square a gentle block to set it perfectly square",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Why is my square not lying flat?",
          "answer": "Curling usually points to tight tension around the bobbles, and rippling means there are too many stitches along a side. Recount each round against the pattern, keep your bobble closing loops relaxed, and give the finished square a gentle block to set it perfectly square",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/farmhouse-granny-square-hero.webp",
    "data/images/farmhouse-granny-square-step-2.webp",
    "data/images/farmhouse-granny-square-step-3.webp",
    "data/images/farmhouse-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/farmhouse-granny-square-hero.webp",
      "alt": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/farmhouse-granny-square-hero.webp",
      "alt": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/farmhouse-granny-square-step-2.webp",
      "alt": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/farmhouse-granny-square-step-3.webp",
      "alt": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/farmhouse-granny-square-step-4.webp",
      "alt": "Farmhouse Granny Square: A Textured Bobble Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 0
}