Write an article based on this "Line up the squares. Thread your needle. Weave your needle into the bottom left edge of the first square. Weave your needle into the bottom right edge of the second square. Repeat along one edge. Tighten the joining stitch. Repeat with the next two squares. Attach additional squares horizontally or in vertical pairs."
To start with, you should line up two of your squares side by side. These will be the squares you join first.  It might be a wise idea to lay out all your squares first, however, so that you can see how everything will flow together. All the squares should be lined up with the right side facing up. It is also recommended that you start with the bottom pair of squares in the middle row of your overall project. This method will create another flexible joining seam, but unlike the whip stitch, this stitch will be hidden from both sides of the finished project. Thread a large darning needle with yarn. Insert one end of the yarn through the eye of the needle and pull enough of it through to prevent the needle from becoming un-threaded during the joining process.  Do not knot the yarn at this point in time. Use yarn that is slightly thinner than the yarn you used to make your granny squares. Pick up the right-hand square of your first pair. Slide the needle up and through the bar on the edge of the square in the bottom left side of that square. The "bar" refers to the connecting thread lying between the front and back pieces of yarn of the square. This bar can only be seen from the side of the square. Pick up the square that goes to the direct left of the first square in your sequence. Weave the needle up and through the bar on the bottom right side of this square. Do not tighten the two squares together yet. Weave the needle up and through the next bar along the shared edge of the first square. Then, weave it up and through the next bar along the shared edge of the second square.  Continue sewing through the bars on both edges to connect the two squares together along one shared edge. Leave the stitches loose as you sew initially to make the process easier. Grab both hanging ends of the joining yarn. One should hang from the bottom and the other should hang off the top. Pull the top end up and the bottom end down to tighten the seam and draw the two squares closer together. With this step, the seam should become "invisible" or hidden in between the two squares. Grab the next two squares in your sequence and repeat the same procedure to join them together.  The next pair should connect to the top of the first pair. Use the yarn hanging off the top of the first pair to join the second pair together. Doing so will also connect the second pair to the first. When expanding the piece vertically, you need to do so in pairs, as you did when connecting the second pair to the first. When expanding the piece horizontally, you can do so by attaching a single square to the empty left or right side of the original square using another invisible stitch. When done, knot the yarn to the back edge of the final square.