Nvm y'all the real solution is here. I found it on some random Reddit page. None of the credit goes to me but this pretty much works perfectly!
First have a variable to control the depth.
uniform float depth_offset = 0.0;
then in the fragment function like before use this:
vec3 gPos = (INV_VIEW_MATRIX * vec4(VERTEX,1)).xyz;
vec3 dir2cam = normalize(CAMERA_POSITION_WORLD - gPos);
gPos += dir2cam * depth_offset;
vec4 ndc_offset = PROJECTION_MATRIX * VIEW_MATRIX * vec4(gPos,1);
DEPTH = ndc_offset.z/ndc_offset.w;
Works like a charm! I used a value of 0.15 for the offset but of course play around with it a bit
Here's the thread for those wondering: [