I've always found the Google C++ Style Guide useful, although it's about C++ in general and not specifically C++17 or C++20 (https://google.github.io/styleguide/cppguide.html). Sure it's specific to Google's need, but a lot combined experience went into it, and shouldn't be ignored.
As for good projects written in C++, some of which is modern C++, I've always found LevelDB and Chromium to be good starting points. Here is a list of more projects which may help you: https://awesomeopensource.com/projects/modern-cpp
Finally, on your mention of "So I'm doubting if I should learn C++20 for now" => if you're in doubt, then 99% of the time the answer is no, don't spend time on it.
Learning has a diminishing return, especially once you reach the point of over-learning and spend time learning things you don't need or will never use. It's a lost opportunity as you could have spent that time learning something else that would actually be useful to you.
Wait until something either (1) become widely used and you can't ignore it, or (2) is required for you to get the job done -- because then you know it's actually useful for you to spend the time learning it.
- Not learn C++20, your argument makes sense. It'll be fun water cooler talk when I happen to meet other C++ programmers, they can teach it to me for fun :P
There's also an interesting talk from CppCon 2014 where Titus Winter explains how they came up with it: https://www.youtube.com/watch?v=NOCElcMcFik
Here is something a bit similar from the Chromium team: https://chromium-cpp.appspot.com/
As for good projects written in C++, some of which is modern C++, I've always found LevelDB and Chromium to be good starting points. Here is a list of more projects which may help you: https://awesomeopensource.com/projects/modern-cpp
Finally, on your mention of "So I'm doubting if I should learn C++20 for now" => if you're in doubt, then 99% of the time the answer is no, don't spend time on it.
Learning has a diminishing return, especially once you reach the point of over-learning and spend time learning things you don't need or will never use. It's a lost opportunity as you could have spent that time learning something else that would actually be useful to you.
Wait until something either (1) become widely used and you can't ignore it, or (2) is required for you to get the job done -- because then you know it's actually useful for you to spend the time learning it.
I hope this helped, good luck with your learning!