They’re both on subdomains in my instance - so app.example.com and api.example.com. For another project, I have deployed this architecture to a single server via Laravel Forge. The Remix web app is available at the root domain via an nginx reverse proxy to port 3000. The Laravel backend is only accessible over localhost on that server so the Remix backend makes calls to localhost:8000 on that same server. That works fine for smaller projects where you don’t need to access the Laravel backend outside of the Remix backend.