If you aren't doing native apps, my recommendation is to use the same language across full-stack apps. You can share things like zod types and validation logic (in the frontend for quicker user feedback, on the backend because you never trust user provided values)