What is the network.js to connect to Rinkeby?

Asked via Intercom, a community member wants to deploy to a public testnet (Rinkeby)

The Learn guide Connecting to Public Test Networks covers setting up network.js to connect to a public testnet.

The following network.js example is for connecting to Rinkeby:

network.js

const { projectId, mnemonic } = require('./secrets.json');
const HDWalletProvider = require('@truffle/hdwallet-provider');

module.exports = {
  networks: {
    development: {
      protocol: 'http',
      host: 'localhost',
      port: 8545,
      gas: 5000000,
      gasPrice: 5e9,
      networkId: '*',
    },
    rinkeby: {
      provider: () => new HDWalletProvider(
        mnemonic, `https://rinkeby.infura.io/v3/${projectId}`
      ),
      networkId: 4,
      gasPrice: 10e9
    }
  },
};