Build your first IPFS static website: from folder to CID
Prepare a portable static site, publish the right directory, and check that every page and asset survives the move to IPFS.
IPFS Static Website / FILES, NOT A BACKEND
The strongest starting point is a static directory you can inspect. Give every route a real page and include every asset needed to read it.
Use a directory with its own index document for each clean page URL. This keeps navigation independent of custom rewrite rules or a development server. Test a deep page by opening it directly and reloading it. A homepage that works does not prove that every route has a real file behind it, particularly when a framework previously supplied a client-side fallback.
A root-relative path points to the host root, which may not be the release root when served beneath a gateway prefix. Inspect navigation, images, stylesheets, background images, script imports, and generated links. Relative links can preserve a release under a path prefix, but they must be correct at every nesting depth. Test the actual delivery contexts you intend to support.
Deliver production CSS rather than a styling compiler that runs in the reader’s browser. Keep JavaScript small and limited to behavior the site actually needs. Include media files locally where practical, remove unused demo assets, and set image dimensions. Any remaining remote resource is a runtime dependency that should be intentional, not a surprise left by the template.
Technical reference: IPFS multi-page website tutorial. Review the relevant configuration before applying it to a production environment.
COMMON QUESTIONS
Yes. Lightweight browser JavaScript can control a menu without a server application. The basic content and navigation should remain understandable without it.
Distributing static files does not provide server-side form processing. Use an honest email link or deliberately integrate a separate service when the requirements call for it.
FIELD GUIDES
Prepare a portable static site, publish the right directory, and check that every page and asset survives the move to IPFS.
Turn a Hugo project into a portable static release, inspect its generated routes, and keep canonical metadata separate from delivery paths.