I constructed a frame bag days before setting off for my first bikepacking trip on my wife and my 5th anniversary. The Sea to Summit Small Trash Dry Bag has webbing loops on the sides for easy mounting on your pack. I experimented and found that it works inside my frame with a little encouragement. Dry bag $30. Webbing and buckles $5. 5gal bucket was free scrap from making a number plate. Total cost: $35. Downside: not durable probably. Upside: pretty light!
The butt of the bag is oval shaped, and that end points towards the seat tube. I used 1m webbing with quik adjust buckles to strap the sewn loops to the toptube and downtube, fastened the roll-down buckle around the top tube, and was not satisfied. Using a couple marbles, I cut thin cordage and tied the top corner to the seat/toptubel; next, the bottom corner went to the chainstays behind the bottom bracket.
Since the bag takes the form of the contents, something is needed to keep it from hitting the cranks on every pedal revolution. I used a 6" wide piece of a 5gal bucket to make the taco holder shaped retainer - and tomorrow I will make a bigger one from a fresh bucket.
Bike: 1990s Cannondale 4400 or something... was given to me, set in giveaway heap, and turned out perfect for a rainy backpacking journey! Sleep System: Big Agnes Fly Creek 3 in 4.5L pu stuff sack, Western Mountaineering Summer Down Bag with Summer Coupler stuffed in 6L dry bag, 2x short alpine foam pads folded and inserted in 20L Sea to Summit thick kayak dry bag, mounted under seat over back wheel.