Buy shirt blanks made by Gildan, intended for the resale market to silkscreeners, sublimation printers, etc.
Jiffy.com has some of the better bulk pricing that doesn't require you to jump through hoops and be a business.
If you want a heavy (warmer weight) 6oz. cotton or cotton/poly shirt,
G240 or
G241 if you want pockets.
For heavy (warmer weight) 6oz. ringspun cotton and cotton/poly blend shirts,
H400.
For (medium weight) 5.4oz. cotton and cotton/poly blend shirts,
G540.
For (medium weight) 5.5oz. 50/50 cotton/poly blend shirts,
G840.
For (medium weight) 5oz. 100% polyester shirts,
G424.
For (light weight cooler without being Shein gauzy) 4.5oz. cotton and cotton/poly blend shirts,
G644.
For (light weight cooler) 4.5oz. ringspun 60/40 cotton/poly blend shirts,
G674.
They may not be
quite as durable as potentially buying a shirt of this type off of Duluth or LL Bean, but there's not a shirt in these styles that cost over $10, no matter the color and style, outside of H400, G241, G424, and G674. Before getting a Costco in our area, Jiffy.com and Gildan short sleeve tees were how I purchased undershirts. Pay attention to sizing and fit, however.
I'd personally stay away from the 100% poly, and veer toward ringspun cotton, but even their 100% preshrunk cotton, at least historically, was still pretty decent and they hadn't seemed to have succumbed to the short cotton fiber plague
yet.
YMMV, however, here in our dystopian late-stage capitalist heckscape.