Try CF pages.
On a purely static project, Pages offers unlimited free requests. However, once you add Functions on a Pages project, all requests by default will invoke your Function. To continue receiving unlimited free static requests, exclude your project’s static routes by creating a _routes.json file. This file will be automatically generated if a functions directory is detected in your project when you publish your project with Pages CI or Wrangler. Create a _routes.json file to control when your Function is invoked. It should be placed in the output directory of your project. See: https://developers.cloudflare.com/pages/platform/functions/routing/#functions-invocation-routes