Folio
All tools

Host it without a server.

Folio is a static website. Cloudflare, Netlify, or any file host only delivers the page. When someone merges or compresses a PDF, that work happens in their browser. You don’t need a database, an API key, or a machine that stays on.

Cloudflare Pages

Free tier. Use the None preset so Cloudflare serves the exported out folder instead of trying to run a Next.js server.

  1. 1Push this project to GitHub or GitLab.
  2. 2In the Cloudflare dashboard, open Workers & Pages → Create → Pages → Connect to Git.
  3. 3Choose the repository. Set the framework preset to None, not Next.js.
  4. 4Build command: npm run build
  5. 5Build output directory: out
  6. 6Add an environment variable: NODE_VERSION = 22
  7. 7Save and deploy. Cloudflare gives you a free pages.dev address.

If you already use the Wrangler CLI, build locally and run npx wrangler pages deploy out. The repo includes wrangler.jsonc with the output folder set.

After Cloudflare gives you an address, set NEXT_PUBLIC_SITE_URL to that address, including https://, and build again. That fills in the canonical link, the sitemap, and the structured data answer engines use.

Netlify and other hosts

netlify.toml already sets the build command to npm run build and the publish folder to out. Connect the repo on Netlify and leave the defaults. Anywhere else, upload the contents of out after a build. That includes GitHub Pages, Surge, or a bucket that serves files.

What visitors send you

A page view. Not their PDF. Password-protected files can’t be opened here, and files larger than 80 MB are refused so the tab doesn’t run out of memory. Strong compress redraws pages as pictures, so text in that copy is no longer selectable.