{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "firesong-scrap-crochet-throw",
  "title": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern",
  "meta_description": "Crochet the Firesong Throw, a free scrap yarn blanket pattern using dc spike stitches and 11 colorways to turn leftover yarn into a cozy 49 x 60 inch throw",
  "published_at": "2026-08-15",
  "updated_at": "2026-08-15",
  "author": "Nora",
  "thumbnail_url": "data/images/firesong-scrap-crochet-throw-hero.webp",
  "meta": {
    "title": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern",
    "pattern_name": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern",
    "difficulty": "Intermediate",
    "time_needed": "15-20 Hours",
    "rating": 4.8,
    "made_count": "2.8K",
    "taxonomy": {
      "category": "Blankets & Afghans",
      "skill_level": "Intermediate",
      "yarn_weight": "Worsted",
      "tags": [
        "scrap yarn crochet",
        "crochet blanket",
        "free crochet pattern",
        "dc spike stitch",
        "worsted weight",
        "stash buster",
        "crochet throw",
        "striped blanket",
        "afghan pattern",
        "home decor",
        "handmade gift",
        "double crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Confident Beginner",
          "value": "If you can double crochet and change colors, the dc spike stitch is the only new trick",
          "raw_text": "If you can double crochet and change colors, the dc spike stitch is the only new trick",
          "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": "Slow-Burn Project",
          "value": "About 15-20 hours of relaxing rows, perfect for a few weeks of evening crochet",
          "raw_text": "About 15-20 hours of relaxing rows, perfect for a few weeks of evening crochet",
          "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": "Stash-Busting Heirloom",
          "value": "Turns 11 mismatched leftover balls into one glowing, gift-worthy 49 x 60 inch throw",
          "raw_text": "Turns 11 mismatched leftover balls into one glowing, gift-worthy 49 x 60 inch throw",
          "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 Firesong Throw turns a bin of orphaned worsted weight yarn into a blanket that looks like glowing embers. It is built from simple horizontal stripes accented with dc spike stitches that reach two rows down, so color from earlier stripes flickers up into the one above it. A space is made in one row by a chain and a skipped stitch, and then in the next row a double crochet dips down in a spike stitch to fill the void, which makes a warm, substantial blanket that is not too airy nor too thick or bulky. That single detail is what makes scrap yarn look deliberate instead of random. It is perfect for crocheters sitting on years of half-skeins, for anyone who wants a year-end project with a little meaning stitched into it, and for makers who love watching a color story build row by row",
          "raw_text": "The Firesong Throw turns a bin of orphaned worsted weight yarn into a blanket that looks like glowing embers. It is built from simple horizontal stripes accented with dc spike stitches that reach two rows down, so color from earlier stripes flickers up into the one above it. A space is made in one row by a chain and a skipped stitch, and then in the next row a double crochet dips down in a spike stitch to fill the void, which makes a warm, substantial blanket that is not too airy nor too thick or bulky. That single detail is what makes scrap yarn look deliberate instead of random. It is perfect for crocheters sitting on years of half-skeins, for anyone who wants a year-end project with a little meaning stitched into it, and for makers who love watching a color story build row by row",
          "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": "Technique-wise you only need three things: the chain, the double crochet, and the dc-spike-st, which is worked into the skipped stitch two rows below and drawn up to the height of the working row. Add clean color joins and you have the whole skill set. That puts it squarely at confident beginner to easy intermediate. Gauge is not important here, which removes most of the pressure. Plan on roughly 15 to 20 hours total, or a stripe or two per evening, with a little extra time set aside for weaving ends and an optional border",
          "raw_text": "Technique-wise you only need three things: the chain, the double crochet, and the dc-spike-st, which is worked into the skipped stitch two rows below and drawn up to the height of the working row. Add clean color joins and you have the whole skill set. That puts it squarely at confident beginner to easy intermediate. Gauge is not important here, which removes most of the pressure. Plan on roughly 15 to 20 hours total, or a stripe or two per evening, with a little extra time set aside for weaving ends and an optional border",
          "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 throw is soft, drapey, and completely adjustable, since you set the width with your starting chain and the length by how many stripes you feel like making. The lap afghan shown measures 49 inches wide by 60 inches tall in worsted weight scrap yarn. With the recommended US H 8/5.00 mm hook, gauge runs about 12 double crochet to 4 inches, so the fabric is dense enough to be warm but still flexible enough to fold over a chair arm. Each 2 row stripe eats only about 19 to 21 grams, and the multicolor result makes a genuinely memorable housewarming, wedding, or new-baby gift",
          "raw_text": "The finished throw is soft, drapey, and completely adjustable, since you set the width with your starting chain and the length by how many stripes you feel like making. The lap afghan shown measures 49 inches wide by 60 inches tall in worsted weight scrap yarn. With the recommended US H 8/5.00 mm hook, gauge runs about 12 double crochet to 4 inches, so the fabric is dense enough to be warm but still flexible enough to fold over a chair arm. Each 2 row stripe eats only about 19 to 21 grams, and the multicolor result makes a genuinely memorable housewarming, wedding, or new-baby 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 confession: I keep a basket of orphan half-skeins I could never bring myself to throw out, and the Firesong Throw is the pattern that finally set them free. What I love most is the dc spike stitch. You dip your hook two rows down into that skipped stitch, pull the loop up to full working height, and suddenly the color from two rows back comes flickering through the stripe above it like a spark catching. It is one small extra motion, but it is the entire reason this blanket reads as a designed piece rather than a pile of leftovers. I also love how forgiving it is. Gauge does not matter, the rows are mostly plain double crochet between the spike accents, and each 2 row stripe only asks for about 19 to 21 grams, so a single sad little ball earns its place in the blanket. Sitting down with the pile, choosing the next color by feel, and watching eleven unrelated yarns settle into one warm glowing thing is honestly my favorite part of the crochet year",
          "raw_text": "I have a confession: I keep a basket of orphan half-skeins I could never bring myself to throw out, and the Firesong Throw is the pattern that finally set them free. What I love most is the dc spike stitch. You dip your hook two rows down into that skipped stitch, pull the loop up to full working height, and suddenly the color from two rows back comes flickering through the stripe above it like a spark catching. It is one small extra motion, but it is the entire reason this blanket reads as a designed piece rather than a pile of leftovers. I also love how forgiving it is. Gauge does not matter, the rows are mostly plain double crochet between the spike accents, and each 2 row stripe only asks for about 19 to 21 grams, so a single sad little ball earns its place in the blanket. Sitting down with the pile, choosing the next color by feel, and watching eleven unrelated yarns settle into one warm glowing thing is honestly my favorite part of the crochet year",
          "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 name says fire, but this stitch pattern will wear any palette you hand it. For the classic Firesong look, run deep burgundy, rust, pumpkin, marigold, and butter gold with a charcoal or oatmeal stripe every fourth row to keep the warm tones from blurring together. Want the opposite mood? Try a cold-water version in navy, teal, seafoam, and pale gray with a single white spike row that reads like sea foam. A neutral throw in cream, mushroom, taupe, and camel with one saturated stripe of mustard looks expensive and hides everyday wear beautifully. For sizing, use the gauge as your calculator: at 12 double crochet to 4 inches you get 3 stitches per inch, so every 12 stitches you add or remove changes the width by about 4 inches. A 30 x 36 inch baby blanket needs roughly 90 stitches across, a 40 x 50 lapghan about 120, and a generous 55 x 70 sofa throw around 165. Keep the starting chain a multiple of 4 plus 3 more stitches so the spike placement stays even. For yarn, any smooth worsted works: Heartland and Vanna's Choice give crisp spike definition, Super Saver is the budget workhorse, Paintbox Simply Aran offers the widest color range for planned scrappiness, and Caron Simply Soft makes the drapiest version. Just stay in one yarn family so the stripes behave the same. Themed ideas: a birth-year memory blanket using one color per milestone, a school-colors graduation throw, an autumn harvest run of cranberry and bronze, or a spring garden version in lilac, sage, and buttercream",
          "raw_text": "The name says fire, but this stitch pattern will wear any palette you hand it. For the classic Firesong look, run deep burgundy, rust, pumpkin, marigold, and butter gold with a charcoal or oatmeal stripe every fourth row to keep the warm tones from blurring together. Want the opposite mood? Try a cold-water version in navy, teal, seafoam, and pale gray with a single white spike row that reads like sea foam. A neutral throw in cream, mushroom, taupe, and camel with one saturated stripe of mustard looks expensive and hides everyday wear beautifully. For sizing, use the gauge as your calculator: at 12 double crochet to 4 inches you get 3 stitches per inch, so every 12 stitches you add or remove changes the width by about 4 inches. A 30 x 36 inch baby blanket needs roughly 90 stitches across, a 40 x 50 lapghan about 120, and a generous 55 x 70 sofa throw around 165. Keep the starting chain a multiple of 4 plus 3 more stitches so the spike placement stays even. For yarn, any smooth worsted works: Heartland and Vanna's Choice give crisp spike definition, Super Saver is the budget workhorse, Paintbox Simply Aran offers the widest color range for planned scrappiness, and Caron Simply Soft makes the drapiest version. Just stay in one yarn family so the stripes behave the same. Themed ideas: a birth-year memory blanket using one color per milestone, a school-colors graduation throw, an autumn harvest run of cranberry and bronze, or a spring garden version in lilac, sage, and buttercream",
          "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": "Working the dc spike stitch into the",
          "value": "The dc-spike-st is defined as a double crochet worked into the skipped stitch 2 rows below the current one, not one. Before you insert your hook, physically count down: working row, row below, spike row. If your spikes look like short bumps rather than long vertical strokes of color, you went one row too shallow. Frog back that stripe now, because the effect is the entire point of the design and it will not blend in later",
          "raw_text": "The dc-spike-st is defined as a double crochet worked into the skipped stitch 2 rows below the current one, not one. Before you insert your hook, physically count down: working row, row below, spike row. If your spikes look like short bumps rather than long vertical strokes of color, you went one row too shallow. Frog back that stripe now, because the effect is the entire point of the design and it will not blend in later",
          "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": "Pulling the spike loop up too tightly so the blanket puckers",
          "value": "After you insert the hook two rows down and yarn over, draw that loop all the way up to the height of your working row before completing the double crochet. If you snug it, the earlier rows get compressed and you will see horizontal puckers across the throw. Deliberately overshoot the height by a hair on the first few spikes; a slightly loose spike settles into the fabric, while a tight one permanently gathers it",
          "raw_text": "After you insert the hook two rows down and yarn over, draw that loop all the way up to the height of your working row before completing the double crochet. If you snug it, the earlier rows get compressed and you will see horizontal puckers across the throw. Deliberately overshoot the height by a hair on the first few spikes; a slightly loose spike settles into the fabric, while a tight one permanently gathers it",
          "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": "Forgetting that the spike is worked",
          "value": "The chain-1 space and skipped stitch made on one row is exactly where the spike drops down on the next row, so the spike fills that void rather than adding a stitch. If you work into both the chain space and the stitch below it, your count creeps up a few per row and the edges start to flare. Count your stitches at the end of every spike row until the rhythm becomes automatic, and compare against your 149 stitch foundation. Fixing a two-stitch drift now is one row of frogging; finding it ten stripes later is heartbreak",
          "raw_text": "The chain-1 space and skipped stitch made on one row is exactly where the spike drops down on the next row, so the spike fills that void rather than adding a stitch. If you work into both the chain space and the stitch below it, your count creeps up a few per row and the edges start to flare. Count your stitches at the end of every spike row until the rhythm becomes automatic, and compare against your 149 stitch foundation. Fixing a two-stitch drift now is one row of frogging; finding it ten stripes later is heartbreak",
          "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": "Changing colors at the wrong moment so",
          "value": "The pattern tells you to change to the next color in the last stitch of the row, which means completing that final stitch only up to the last yarn over and finishing it with the new color. Changing after the stitch is fully closed leaves a stubby dot of the previous color sitting at the start of your new row, and with 11 colorways that mess repeats all the way down the edge. Do it correctly and the color line is crisp to the selvage",
          "raw_text": "The pattern tells you to change to the next color in the last stitch of the row, which means completing that final stitch only up to the last yarn over and finishing it with the new color. Changing after the stitch is fully closed leaves a stubby dot of the previous color sitting at the start of your new row, and with 11 colorways that mess repeats all the way down the edge. Do it correctly and the color line is crisp to the selvage",
          "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": "Guessing at scrap amounts and running",
          "value": "Each 2 row stripe takes about 19 to 21 grams of worsted weight yarn, so weigh every scrap ball on a kitchen scale before you commit to it. Set aside anything under 25 grams for an optional border or skip it entirely. Nothing derails the color plan faster than joining a near-identical dye lot mid-row, and on a spike-stitch fabric that seam sits right where the eye is drawn",
          "raw_text": "Each 2 row stripe takes about 19 to 21 grams of worsted weight yarn, so weigh every scrap ball on a kitchen scale before you commit to it. Set aside anything under 25 grams for an optional border or skip it entirely. Nothing derails the color plan faster than joining a near-identical dye lot mid-row, and on a spike-stitch fabric that seam sits right where the eye is drawn",
          "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": "US H 8/5.00 mm crochet hook",
              "raw_text": "US H 8/5.00 mm crochet hook"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Worsted weight yarn. Pattern is adjustable for other weight yarns, but it is best to be consistent (use all one type of yarn). I used 11 colorways of scrap yarn. Note that each stripe uses about 19-21 grams of worsted weight yarn.",
              "raw_text": "Worsted weight yarn. Pattern is adjustable for other weight yarns, but it is best to be consistent (use all one type of yarn). I used 11 colorways of scrap yarn. Note that each stripe uses about 19-21 grams of worsted weight yarn."
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Tapestry needle",
              "raw_text": "Tapestry needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-5",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            },
            {
              "order": 5,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Gauge: gauge is not important in this pattern. You may use other weights of yarn. Adjust hook size to fit your needs. With the yarn and hook size given, my gauge is about 12 double crochet stitches to 4 inches.",
              "raw_text": "Gauge: gauge is not important in this pattern. You may use other weights of yarn. Adjust hook size to fit your needs. With the yarn and hook size given, my gauge is about 12 double crochet stitches to 4 inches."
            }
          ]
        }
      ],
      "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-dc-spike-stitch",
          "label": "dc-spike-stitch",
          "value": "double crochet spike stitch: work a double crochet into the skipped stitch 2 rows below the current one, drawing loop up to the height of the working row",
          "raw_text": "dc-spike-stitch = double crochet spike stitch: work a double crochet into the skipped stitch 2 rows below the current one, drawing loop up to the height of the working row",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc-spike-stitch",
          "meaning": "double crochet spike stitch: work a double crochet into the skipped stitch 2 rows below the current one, drawing loop up to the height of the working row"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-sc",
          "label": "sc",
          "value": "single crochet (used in the optional border)",
          "raw_text": "sc = single crochet (used in the optional border)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sc",
          "meaning": "single crochet (used in the optional border)"
        },
        {
          "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",
          "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": 8,
      "card_type": "part",
      "code": "crochet-afghan",
      "title": "Crochet Afghan",
      "raw_heading": "Crochet Afghan:",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "crochet-afghan-info-6",
          "label": "How it works",
          "value": "A space is made in one row by a chain and a skipped stitch and then, in the next, a double crochet dips down in a spike stitch to fill the void. This makes a warm, substantial blanket that's not too airy nor too thick or bulky.",
          "raw_text": "A space is made in one row by a chain and a skipped stitch and then, in the next, a double crochet dips down in a spike stitch to fill the void. This makes a warm, substantial blanket that's not too airy nor too thick or bulky.",
          "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": "crochet-afghan-info-5",
          "label": "Special stitch",
          "value": "dc-spike-st = work a double crochet into the skipped stitch 2 rows below the current one, drawing loop up to the height of the working row.",
          "raw_text": "dc-spike-st = work a double crochet into the skipped stitch 2 rows below the current one, drawing loop up to the height of the working row.",
          "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": "crochet-afghan-info-2",
          "label": "Info",
          "value": "Note: Afghan is worked in stripes, using one color every 2 rows throughout",
          "raw_text": "Note: Afghan is worked in stripes, using one color every 2 rows throughout",
          "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": "crochet-afghan-info-1",
          "label": "Foundation",
          "value": "With first color (color A), chain 151 (or a multiple of 4 + 3 more stitches for preferred width)",
          "raw_text": "With first color (color A), chain 151 (or a multiple of 4 + 3 more stitches for preferred width)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "crochet-afghan-round-1",
          "label": "Row 1",
          "value": "Work dc in 4th ch from hook, then work dc in each ch across, turn. (149 st)",
          "raw_text": "R1:  Work dc in 4 th  ch from hook, then work dc in each ch across, turn. (149 st)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 149,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "crochet-afghan-round-2",
          "label": "Row 2",
          "value": "Ch 3 (counts as 1st dc here and throughout), dc in next 3 st, *ch 1, skip next st, dc in next 3 st. Repeat from * across until 5 stitches remain, then ch 1, skip next st and dc in next 4 st, changing to next color (color B) in the last stitch and turn. Fasten off color A, leaving long strand to weave in.",
          "raw_text": "R2:  Ch 3 (counts as 1 st  dc here and throughout), dc in next 3 st, *ch 1, skip next st, dc in next 3 st.  Repeat from * across until 5 stitches remain, then ch 1, skip next st and dc in next 4 st, changing to next color (color B) in the last stitch and turn.  Fasten off color A, leaving long strand to weave in.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "round",
          "code": "crochet-afghan-round-3",
          "label": "Row 3",
          "value": "Using color B, ch 3 (counts as 1st dc), dc in next 3 st, work dc-spike-st (see special stitches), *dc in next 3 st, dc-spike-st. Repeat from * across until 4 stitches remain, then dc in next 4 st, turn.",
          "raw_text": "R3:  Using color B, ch 3 (counts as 1 st  dc), dc in next 3 st, work dc-spike-st (see special stitches), *dc in next 3 st, dc-spike-st.  Repeat from * across until 4 stitches remain, then dc in next 4 st, turn.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "round",
          "code": "crochet-afghan-round-4",
          "label": "Row 4",
          "value": "Ch 3 (counts as 1st dc), dc in next st, *ch 1, skip next st, dc in next 3 st. Repeat from * across until 3 stitches remain, then ch 1, skip next st and dc into next 2 st, changing to next color (color C) in the last stitch and turn. Fasten off color B, leaving long strand to weave in.",
          "raw_text": "R4:  Ch 3 (counts as 1 st  dc), dc in next st, *ch 1, skip next st, dc in next 3 st.  Repeat from * across until 3 stitches remain, then ch 1, skip next st and dc into next 2 st, changing to next color (color C) in the last stitch and turn.  Fasten off color B, leaving long strand to weave in.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "round",
          "code": "crochet-afghan-round-5",
          "label": "Row 5",
          "value": "Using color C, ch 3 (counts as 1st dc), dc in next st, work dc-spike-st, *dc in next 3 st, dc-spike-st. Repeat from * across until 2 stitches remain, then dc in next 2 st, turn.",
          "raw_text": "R5:  Using color C, ch 3 (counts as 1 st  dc), dc in next st, work dc-spike-st, *dc in next 3 st, dc-spike-st.  Repeat from * across until 2 stitches remain, then dc in next 2 st, turn.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "round",
          "code": "crochet-afghan-round-6",
          "label": "Row 6",
          "value": "Ch 3 (counts as 1st dc), dc in next 3 st, *ch 1, skip next st, dc in next 3 st. Repeat from * across until 5 stitches remain, then ch 1, skip next st and dc in next 4 st, changing to next color in the last stitch and turn. Fasten off color C, leaving long strand to weave in.",
          "raw_text": "R6:  Ch 3 (counts as 1 st  dc), dc in next 3 st, *ch 1, skip next st, dc in next 3 st.  Repeat from * across until 5 stitches remain, then ch 1, skip next st and dc in next 4 st, changing to next color in the last stitch and turn.  Fasten off color C, leaving long strand to weave in.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "info",
          "code": "crochet-afghan-info-3",
          "label": "Repeat",
          "value": "Repeat rows 3-6, changing colors every 2 rows until afghan is 1 row short of desired length and ending on row 3 or 5 (a spike stitch row).",
          "raw_text": "Repeat rows 3-6, changing colors every 2 rows until afghan is 1 row short of desired length and ending on row 3 or 5 (a spike stitch row).",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "info",
          "code": "crochet-afghan-info-4",
          "label": "Final row",
          "value": "Final row: ch 3 (counts as 1st dc), dc across the row, working a dc into every stitch. Fasten off, leaving a long strand to weave in.",
          "raw_text": "Final row: ch 3 (counts as 1 st  dc), dc across the row, working a dc into every stitch.  Fasten off, leaving a long strand to weave in.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "assembly",
      "code": "assembly",
      "title": "Assembly Instructions",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "instruction",
          "code": "assembly-step-1",
          "label": "Step 1",
          "value": "Finishing and options: I did not work a border because of the striped nature of the afghan. However, you could add a single crochet border. Simply single crochet evenly around the blanket, working 3 sc in each corner. Fasten off and weave in any remaining ends.",
          "raw_text": "I did not work a border because of the striped nature of the afghan.  However, you could add a single crochet border.  Simply single crochet evenly around the blanket, working 3 sc in each corner.  Fasten off and weave in any remaining ends.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "assembly-step-2",
          "label": "Step 2",
          "value": "Weaving in ends: weave in ends. If making a scrap crochet throw with multi color rows, there will be a lot of ends so you might want to do this every so often so it's less of a task at the end of the afghan. I usually will hold the yarn ends and work over them and then come through later and weave them in the opposite way to secure them.",
          "raw_text": "Weave in ends.  If making a scrap crochet throw with multi color rows, there will be a lot of ends so you might want to do this every so often so it's less of a task at the end of the afghan.  I usually will hold the yarn ends and work over them and then come through later and weave them in the opposite way to secure them.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-7",
          "label": "Note",
          "value": "💡 Finished size: size will vary dependent on yarn weight used and desired size. The finished size of my lap afghan is 49 inches wide by 60 inches tall, using worsted weight yarn from my scrap pile",
          "raw_text": "💡 Finished size: size will vary dependent on yarn weight used and desired size. The finished size of my lap afghan is 49 inches wide by 60 inches tall, using worsted weight yarn from my scrap pile",
          "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-9",
          "label": "Note",
          "value": "💡 You can size this crochet throw up or down or change the weight of yarn you use. Just be sure to make a gauge swatch, adjust your hook size and do a little math to get the perfect scrap afghan for your needs. You should use the same weight of yarn throughout, and keep the starting chain a multiple of 4 plus 3 more stitches",
          "raw_text": "💡 You can size this crochet throw up or down or change the weight of yarn you use. Just be sure to make a gauge swatch, adjust your hook size and do a little math to get the perfect scrap afghan for your needs. You should use the same weight of yarn throughout, and keep the starting chain a multiple of 4 plus 3 more stitches",
          "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-8",
          "label": "Note",
          "value": "💡 Color plan: my Firesong Throw was worked with 11 different colors of yarn that I repeated, using scrap yarn that had quite a bit left in the skein. It would also be quite lovely to completely wing it and decide the next color as you go along",
          "raw_text": "💡 Color plan: my Firesong Throw was worked with 11 different colors of yarn that I repeated, using scrap yarn that had quite a bit left in the skein. It would also be quite lovely to completely wing it and decide the next color as you go along",
          "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-1",
          "label": "Note",
          "value": "💡 A US H 8/5.00 mm hook with worsted weight yarn gives about 12 double crochet to 4 inches. Gauge is genuinely not important here, so if you crochet tightly move up to an I/5.5 mm for better drape, and if you crochet loosely drop to a G/4.0 mm so the spikes do not gape",
          "raw_text": "💡 A US H 8/5.00 mm hook with worsted weight yarn gives about 12 double crochet to 4 inches. Gauge is genuinely not important here, so if you crochet tightly move up to an I/5.5 mm for better drape, and if you crochet loosely drop to a G/4.0 mm so the spikes do not gape",
          "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-2",
          "label": "Note",
          "value": "💡 Weigh every scrap before you plan your stripe order. Each 2 row stripe uses roughly 19 to 21 grams, so a kitchen scale tells you instantly which balls are full stripes, which are half stripes, and which belong in the border. Lay the weighed balls out in your chosen order before hooking the first row",
          "raw_text": "💡 Weigh every scrap before you plan your stripe order. Each 2 row stripe uses roughly 19 to 21 grams, so a kitchen scale tells you instantly which balls are full stripes, which are half stripes, and which belong in the border. Lay the weighed balls out in your chosen order before hooking the first row",
          "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-3",
          "label": "Note",
          "value": "💡 Stay inside one yarn family for the whole throw. Mixing acrylic, cotton, and wool in the same blanket means each stripe shrinks, stretches, and washes differently, and the spikes will distort unevenly after the first laundry cycle. Consistency matters far more than matching brands exactly",
          "raw_text": "💡 Stay inside one yarn family for the whole throw. Mixing acrylic, cotton, and wool in the same blanket means each stripe shrinks, stretches, and washes differently, and the spikes will distort unevenly after the first laundry cycle. Consistency matters far more than matching brands exactly",
          "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": "note-4",
          "label": "Note",
          "value": "💡 The pattern has you fasten off each color and leave a long strand to weave in, rather than carrying colors up the side. With 11 colorways a carried strand would end up a lumpy rope along one edge, so cut each color with a generous tail, rejoin the next one, and keep going",
          "raw_text": "💡 The pattern has you fasten off each color and leave a long strand to weave in, rather than carrying colors up the side. With 11 colorways a carried strand would end up a lumpy rope along one edge, so cut each color with a generous tail, rejoin the next one, and keep going",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "info",
          "code": "note-5",
          "label": "Note",
          "value": "💡 Weave each tail horizontally along its own color stripe, never diagonally across into a contrasting stripe. On a scrappy blanket the woven tail will show through if it crosses into a lighter color. Split the tail and weave in two directions for extra security, since blankets get tugged hard",
          "raw_text": "💡 Weave each tail horizontally along its own color stripe, never diagonally across into a contrasting stripe. On a scrappy blanket the woven tail will show through if it crosses into a lighter color. Split the tail and weave in two directions for extra security, since blankets get tugged hard",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "info",
          "code": "note-6",
          "label": "Note",
          "value": "💡 Mark your right side. Slip a locking stitch marker into the front of your foundation row on row one so you always know which face you are looking at. The spike stitches read differently from each side, and consistent placement is what keeps the vertical flicker of color lined up down the throw",
          "raw_text": "💡 Mark your right side. Slip a locking stitch marker into the front of your foundation row on row one so you always know which face you are looking at. The spike stitches read differently from each side, and consistent placement is what keeps the vertical flicker of color lined up down the throw",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 11,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "What exactly is a dc spike stitch and how do I work it?",
          "value": "A dc-spike-st is a double crochet worked into the skipped stitch 2 rows below the current row, with the loop drawn all the way up to the height of the working row before you finish the stitch. It creates a long vertical stroke of the older color rising into the new stripe. It drops into the space left by the chain 1 and skipped stitch from the previous row, so your stitch count stays the same",
          "raw_text": "A dc-spike-st is a double crochet worked into the skipped stitch 2 rows below the current row, with the loop drawn all the way up to the height of the working row before you finish the stitch. It creates a long vertical stroke of the older color rising into the new stripe. It drops into the space left by the chain 1 and skipped stitch from the previous row, so your stitch count stays the same",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What exactly is a dc spike stitch and how do I work it?",
          "answer": "A dc-spike-st is a double crochet worked into the skipped stitch 2 rows below the current row, with the loop drawn all the way up to the height of the working row before you finish the stitch. It creates a long vertical stroke of the older color rising into the new stripe. It drops into the space left by the chain 1 and skipped stitch from the previous row, so your stitch count stays the same",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-6",
          "label": "What size is the finished blanket?",
          "value": "The finished size of my lap afghan is 49 inches wide by 60 inches tall, worked in worsted weight yarn from my scrap pile. Size will vary depending on the yarn weight you use and the size you want, since the width comes from your starting chain of 151 (or any multiple of 4 plus 3 more stitches) and the length from how many stripes you work",
          "raw_text": "The finished size of my lap afghan is 49 inches wide by 60 inches tall, worked in worsted weight yarn from my scrap pile. Size will vary depending on the yarn weight you use and the size you want, since the width comes from your starting chain of 151 (or any multiple of 4 plus 3 more stitches) and the length from how many stripes you work",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What size is the finished blanket?",
          "answer": "The finished size of my lap afghan is 49 inches wide by 60 inches tall, worked in worsted weight yarn from my scrap pile. Size will vary depending on the yarn weight you use and the size you want, since the width comes from your starting chain of 151 (or any multiple of 4 plus 3 more stitches) and the length from how many stripes you work",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-2",
          "label": "How much yarn do I need in total for this throw?",
          "value": "Each 2 row stripe uses about 19 to 21 grams of worsted weight yarn, so multiply that by however many stripes your chosen length needs. That makes it easy to estimate whether the tiny bit of skein you have been saving is enough for a stripe. Weigh your scraps first and you will know exactly how many stripes your stash can cover before you start",
          "raw_text": "Each 2 row stripe uses about 19 to 21 grams of worsted weight yarn, so multiply that by however many stripes your chosen length needs. That makes it easy to estimate whether the tiny bit of skein you have been saving is enough for a stripe. Weigh your scraps first and you will know exactly how many stripes your stash can cover before you start",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn do I need in total for this throw?",
          "answer": "Each 2 row stripe uses about 19 to 21 grams of worsted weight yarn, so multiply that by however many stripes your chosen length needs. That makes it easy to estimate whether the tiny bit of skein you have been saving is enough for a stripe. Weigh your scraps first and you will know exactly how many stripes your stash can cover before you start",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Can I use fewer than 11 colors?",
          "value": "Absolutely. Eleven colorways is simply what my scrap basket offered, and the pattern works beautifully with three, five, or seven colors repeated in a planned sequence. You can also completely wing it and decide the next color as you go along, since the color changes always happen every 2 rows",
          "raw_text": "Absolutely. Eleven colorways is simply what my scrap basket offered, and the pattern works beautifully with three, five, or seven colors repeated in a planned sequence. You can also completely wing it and decide the next color as you go along, since the color changes always happen every 2 rows",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I use fewer than 11 colors?",
          "answer": "Absolutely. Eleven colorways is simply what my scrap basket offered, and the pattern works beautifully with three, five, or seven colors repeated in a planned sequence. You can also completely wing it and decide the next color as you go along, since the color changes always happen every 2 rows",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Can I make this bigger or smaller than the size shown?",
          "value": "Yes, this pattern is fully adjustable in both directions. Chain any multiple of 4 plus 3 more stitches for your preferred width instead of the 151 given, and simply stop adding stripes when the length looks right. At roughly 3 stitches per inch, every 12 stitches you add or remove changes the width by about 4 inches, and working in whole repeats keeps the spike placement evenly spaced",
          "raw_text": "Yes, this pattern is fully adjustable in both directions. Chain any multiple of 4 plus 3 more stitches for your preferred width instead of the 151 given, and simply stop adding stripes when the length looks right. At roughly 3 stitches per inch, every 12 stitches you add or remove changes the width by about 4 inches, and working in whole repeats keeps the spike placement evenly spaced",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I make this bigger or smaller than the size shown?",
          "answer": "Yes, this pattern is fully adjustable in both directions. Chain any multiple of 4 plus 3 more stitches for your preferred width instead of the 151 given, and simply stop adding stripes when the length looks right. At roughly 3 stitches per inch, every 12 stitches you add or remove changes the width by about 4 inches, and working in whole repeats keeps the spike placement evenly spaced",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Can I use a different yarn weight than worsted?",
          "value": "You can, since gauge is not important in this pattern. Move to a DK or aran yarn and adjust your hook size until the fabric feels right, make a gauge swatch, and do a little math, keeping in mind that lighter yarn means a bigger starting chain for the same finished width. The one rule is to use all one type of yarn throughout so the stripes behave consistently",
          "raw_text": "You can, since gauge is not important in this pattern. Move to a DK or aran yarn and adjust your hook size until the fabric feels right, make a gauge swatch, and do a little math, keeping in mind that lighter yarn means a bigger starting chain for the same finished width. The one rule is to use all one type of yarn throughout so the stripes behave consistently",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I use a different yarn weight than worsted?",
          "answer": "You can, since gauge is not important in this pattern. Move to a DK or aran yarn and adjust your hook size until the fabric feels right, make a gauge swatch, and do a little math, keeping in mind that lighter yarn means a bigger starting chain for the same finished width. The one rule is to use all one type of yarn throughout so the stripes behave consistently",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/firesong-scrap-crochet-throw-hero.webp",
    "data/images/firesong-scrap-crochet-throw-step-2.webp",
    "data/images/firesong-scrap-crochet-throw-step-3.webp",
    "data/images/firesong-scrap-crochet-throw-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/firesong-scrap-crochet-throw-hero.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-2.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-3.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-4.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 4",
      "is_featured": false
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/firesong-scrap-crochet-throw-hero.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-2.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-3.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/firesong-scrap-crochet-throw-step-4.webp",
      "alt": "Firesong Throw: A Free Scrap Yarn Crochet Blanket Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 1
}