Feedback like this helps us all grow and become better. Thank you for taking the time to read the post and to leave this detailed comment.
Iāve been working over the past weeks to improve the language of the tutorial and do some additional research. It started as a foundation of what identity in NestJS would be like.
Let me address your points one by one, please:
The client side code would be interesting to go through. How you implemented token refresh, audience handling etc.
Absolutely. This is on the pipeline
It would be a tutorial of using React with TypeScript.
I have not used passport but express-jwt and a middleware. I believe passport is an overshoot for this task and makes life a bit more complex then it should be. If a middleware is used with a custom jwt validation (which is done in the startegy anyway) to store the jwt on the req object and a single AuthGuard is created then it would remove a bit of magic from the flow and 1 guard would be enough instead of 2
I debated over this one haha! I went with Passport because NestJS provides that NestJS module out of the box and it seemed like a good idea to show how to integrate it. Definitely for the use case here, Passport is āover-engineeringā as there are no sessions, etc.
I will be adding the option on a different chapter to use a simple middleware function instead. What do you think about it?
Using guards would be problematic with graphql in my opinion, because every ResolvePropery should be protected anywhere it is used. Because of this I have put the authorization logic in the service layer.
GraphQL was not on my radar, but as Konrad commented, if you like to write content and this is something youād like to contribute to our blog, by all means, Iād invite you to apply to the Guest Author program 
However, making the code more adaptive to different architectures is a solid goal to have. How did you go about putting the authorization logic in the service layer?
On the client side itās ātrickyā to know how to force auth0 to use jwt access_token-s (audience has to be specified)
Is this feedback about our documentation not being clear on this or the process not being intuitive?
It would be greate to know what is the best practice if I have multiple api-s? How do I handle it on the UI? (The ui should request the access token? Or the back-end?)
This would be a great topic for a general post without being connected to a particular backend technology, for sure.
The jwt parse is a bit simplisitic. The revoked token handling is not implemented I believe
Right at this time there is no refresh token. I am considered adding that as an extra chapter as long as guidance on how to implement short-lived tokens. Something similar to what @zacksinclair has done.
express-jwt is used in all the old docs and in the example code but itās not really maintained
You are correct. Apologies for that. I have been conducting internal research and discussion to address this.
the client callback has a bit of black magic to it (dashboard.whatabyte.now.sh) Instead of putting up a now.sh app I would have shown how to set up url-s in the host so anybody could follow and reproduce the example.
The goal of the demo client was to quickly set up a working client without much set up other than creating an Auth0 application. Something like this would be possible down the road. I wanted to also try a "Deploy with⦠" button or something of that nature. What do you think of the length of the tutorial? haha I didnāt want to make things too long 
there is a way to load .env files when starting the app ā¦
Great tip! Thank you!
I personally prefer nodemon but itās a personal preference
I like it too! 
I would not use roles on ui because permissions should define what can be shown.
Another debate that happened
Iām taking this part in consideration as well.
on the UI (angular) I had to implement routeguards, link visibility and directive for restriction. It was a bit tricky, would be happy to share how I did it.
It would be interesting to see what youāve done in Angular for sure. I think NestJS may be more popular with Angular developers because of the feature parity and similar architecture constructs. Thank you!