# How to publish a Create React App site

Create React App builds to a static folder that any static host can serve, Droply included.

- Build command: `npm run build`
- Folder to upload: `build`
- Renders on a server by default: no

## Steps

1. **Build the project.** Run npm run build in the project folder. This is the step Droply does not do for you: we publish finished pages, we never run your build.
2. **Find the output folder.** The build writes a finished site to build. That folder, not the project folder, is what gets uploaded.
3. **Drag it in.** Drop the folder (or a ZIP of it) into Droply. It is live on an HTTPS droply.id subdomain in seconds, and re-uploading publishes a new version at the same URL.

## Worth knowing about Create React App

- Set `"homepage": "."` in package.json before building if your assets 404 after publishing. CRA otherwise writes absolute paths that assume the site is at the domain root.
- A single-page app serves its own routes in the browser, so a deep link opened directly falls back to the index page.

## Frequently asked questions

### Does Droply build my Create React App project for me?

No, and it never will. Droply publishes finished static files. Running your build would mean running your dependencies on our servers, which is a different and much riskier product. Build locally or in your existing CI, then upload the result.

### Which folder do I upload?

The build folder that npm run build creates, not the project folder. Upload it directly or ZIP it first; both work.

### What happens when I update the site?

Build again and upload again. The new version replaces the old one at the same URL, so a link you have already shared keeps working. The Pro, Business and Enterprise plans keep a version history you can roll back to in one click.

### Can I use my own domain?

Yes, on the Pro, Business and Enterprise plans. Point your domain at Droply, and the certificate is issued and renewed automatically.