You can make your own walls if you are OK making them only 8" or 12" or 16" tall.
I use concrete paving stones standing on end, and leaning in slightly for stability. They never rot, they don't leach copper or arsenic or anything else I know of, and they are easy.
I think they are cheaper then wood when you count up how many planks each wood wall needs, and the hardware to screw them together, and rebuilding them every ??? years when they rot. I also like that I can change the size and shape of beds very fast and easily.
Concrete paving stones fit in any trunk and cost around $1.25 each, and each one gives you so many linear inches of wall:
8"x16"x 3/4" paver: 8 inches tall and 16 inches long, - - - - $0.94 per linear foot of wall
12" x 12" x 1" paver: 12 inches wide & 12 inches long - - - $1.25 per linear foot of wall
8"x16"x 3/4" paver: 16 inches tall and 8 inches long, - - - - $1.88 per linear foot of wall
They are easy to set up and move around. Pile up some soil in a row next to the line where you want a wall. Lay some pavers down on the ground right next to where you want them.
- Pull one paver upright and set it down where you want the wall to start.
- Hold it upright with one hand.
- With the other hand, drag enough soil over against the paver so it will stand up upright.
- - - - - repeat for every paver in the wall.
Now level the soil off and tidy up the pavers so they all lean around the same amount and fit flush next to each other. Fiddle with the corners until they look nice enough for you. I find that even a big gap hurts nothing, it just lets a little soil out at first.
Water seeps out between pavers and even diffuses right through the concrete, drying out the bed. If you don't need THAT much drainage, line the insides of walls, or at least the corners, with heavy plastic film, such as bags of compost come in.
Rather than buy all-new soil, I would rather buy amendments and mix them into preexisting soil.