I have a "Quality of Life" extension I created for Gnome Shell [1] to share with the community. It automatically adjusts the system font scaling factor based on the current display profile and also integrates with Dash to Dock [2] (also known as Ubuntu Dock).
Why? Imagine you're using a laptop and frequently connecting it to different displays throughout your day (at home, office, co-working space, etc.) with varying display PPIs. Sometimes, the text may appear too small or too large. I prefer this solution over fractional scaling because, in my experience, it is buggy and doesn't work well with legacy and electron apps. For me this approach works very smoothly combined with 1x/2x/3x scaling on a huge variety of setups.
It's free, GPL-3 licensed and supports the last 3 major Gnome Shell versions. It works well on all Linux machines I own (both Wayland and X11), but bugs are possible; feel free to report them!
[1] - Desktop environment popular in Linux/Unix desktops [2] - https://github.com/micheleg/dash-to-dock