You should indeed develop non-functional requirements before choosing a technology stack. Take the example of scalability. Using a runtime environment like Node.js in the backend can help you develop scalable web apps. Therefore, defining NFRs can help you to choose a technology stack.