My deploy failed and I believe it is from package.json scripts

No.

It’s not about what the script is called, it’s about what it does.

What you suggest would just result in:

npm run build ->
npm run dev ->
concurrently "npm run backend" "npm run start --prefix client

Your application needs to have a command/script that produces static output.

If you need to host your own server, then you won’t be able to host with Netlify.

See: