Instalamos el generador de aplicaciones de react.
$ npm i create-react-app -g
Generamos una aplicación.
$ create-react-app my_app_name
Accedemos al directorio de la aplicación.
$ cd my_app_name
Una vez construido el sitio procedemos a configurar la cuenta de heroku para el lanzamiento.
Inicializamos el repositorio.
$ git init
Creamos un repositorio en heroku.
$ heroku create my_app_name --buildpack https://github.com/mars/create-react-app-buildpack.git
Hacemos el lanzamiento a heroku.
$ git add .
$ git commit -m "Start with create-react-app"
$ git push heroku master
Abrimos el sitio web.
$ heroku open
Como ustedes sabrán esto genera algunos archivos, entre ellos index.html, para renderizar ese archivo se utiliza https://github.com/heroku/heroku-buildpack-static, este a su vez nos permite configurar algunas cosas, entre la más importante a mencionar está la sobre-escritura de rutas.
Para poder cargar cualquier enlace y que sea manejado por nuestra aplicación en producción debemos crear un archivo static.json con el contenido siguiente:
{
"root": "build/",
"routes": {
"/**": "index.html"
}
}
Fuente: https://github.com/mars/create-react-app-buildpack#routing-clean-urls