I understand the stock bed springs aren't great, so it's advisable to buy better ones. This (
Creality 3D Printer Upgraded 4Pcs Aluminum Hand Twist Leveling Nuts and 4Pcs Hot Bed Springs for Ender 3/3 Pro, Ender 5/5 Plus/5 Pro, CR-10/10S/10S Pro V2: Amazon.co.uk: Business, Industry & Science) with the yellow springs seems to work well. I can't recall the last time I had to adjust the levelling, as it just stays "right" now.
Nozzle to bed distance should be about a paper thickness. I've generally found the right approach is to heat the nozzle and bed up to temperature, then adjust the head down until a sheet of plain white paper just starts to drag (i.e. it's just starting to be caught between the nozzle and the bed, but can still just be dragged across the build plate).
Bed cleanliness is important. Any oil from your skin can stop PLA sticking. I've always used a flexible magnetic sheet, but periodically wipe it with a bit of meths on a paper towel.
On the stock heater + heat break, the PTFE tube will degrade over time, and can also slip upwards (leading to molten plastic clogging up the top of the heater). Periodic clipping of the tube and reseating is a good idea. The Capricorn replacement tube is also slightly better quality. I've basically eliminated this issue by using a Slice Bimetallic heat brake (
Copperhead Heat Break C-E) which prevents the PTFE from seeing high temperatures. The longer/better melt zone also helped, and allows a shorter filament retract length (about 2mm instead of 6mm).
A BLTouch (or CRTouch) is also a great addition, as it does mesh bed levelling and gives near perfect first layers.
All these parts I've installed myself, but as noted earlier in the thread, the newer Ender 3 V2 NEO gives you the magnetic plate and CRTouch out of the box.
I also installed the Jyers firmware fork of Marlin, as it had a lot of UI improvements. That's gone now with the addition of the Creality Sonic Pad, but I can highly recommend Jyers.