To keep the drift relatively low (it will be inferior to a monolithic op-amp because of the poor matching and thermal coupling) you can use a differential pair and use feedback like an op-amp.
Here is an example of a unity-gain stable amplifier made with discrete parts, from this website.
C1 provides frequency compensation- and can be changed for stability. Q1 and Q2 should be thermally coupled for minimum drift (eg. put thermal compound between the two, face to face, and shrink wrap around them).
Output is class A so no crossover distortion, but drive capability is limited. Bias is power supply voltage dependent, so PSRR is poor. You can play with this in LTspice or on the bench.
Performance won’t come close, in most respects, to a modern monolithic amplifier designed for audio applications.
You can certainly use just a transistor maintained in its linear region as an amplifier, but your goals to “keep everything simple” and “use discrete components” might be at odds, as you will quickly discover the difficulty of keeping the transistor in that region. @Spehro has been around a long time and knows of what he speaks.