In the deploy log under Deploy Site you’ll see something similar to this
7:33:24 AM: ────────────────────────────────────────────────────────────────
7:33:24 AM: 3. Deploy site
7:33:24 AM: ────────────────────────────────────────────────────────────────
7:33:24 AM:
7:33:24 AM: Starting to deploy site from 'dist'
7:33:24 AM: Creating deploy tree
7:33:24 AM: Creating deploy upload records
7:33:25 AM: 0 new files to upload
7:33:25 AM: 1 new functions to upload
7:33:31 AM: Site deploy was successfully initiated
7:33:31 AM:
7:33:31 AM: (Deploy site completed in 6.1s)
Does it show new files were uploaded, it does it show 0 (zero) like the example above?
Can you share the repository you are deploying from?
As noted in the deploy log, there is no build step, so Netlify is uploading the files as it. When you visit the deployed site the index.html at the root of the repository is served.
When you deploy the site to Heroku, you are starting a node instance which is then running the app.js. This in turn serve the site from the views directory along with other assets.
The version you are using on Heroku won’t work on Netlify. You cannot spin up a node instance on Netlify. Read more in
If you wish to Express, this is possible, however you will need to turn the current setup into a serverless function. See
If you wish to use Netlify (without Express) you will need to build your site as a static site. You said in your OP that you were using Hugo. This is not the case. You could use Hugo as it is a static generator, and deploy the site it generates to Netlify.