## The short version

Localhost is only reachable on your computer. To put the app on the internet, deploy its source to a production runtime that listens on the assigned PORT and expose it through a public route. Ample packages the project, selects a compatible runtime, checks the release, and returns an HTTPS URL.

## WHO THIS IS FOR

This guide is for anyone whose app works at localhost but is not yet reachable by teammates, customers, or testers.

## How to do it

1. **Identify what is listening locally**  
   Determine whether the project is a static site, a web server, an API, or several linked services. Ample can detect common structures, but knowing the shape makes the plan easier to review.

2. **Make the server production-ready**  
   A web process must listen on 0.0.0.0 and use the PORT value supplied by the platform. Do not hard-code localhost as the production host.

3. **Run the Ample plan**  
   The plan chooses the runtime and records services, databases, volumes, links, and visibility.  
   ```  
   ample plan --write  
   ```

4. **Deploy and wait for the result**  
   Ample builds the source, boots the release, runs health checks, and activates public routing only after the app is ready.  
   ```  
   ample up  
   ```

5. **Test the public path**  
   Open the returned HTTPS URL and test the same path and workflow you used locally. Pay special attention to API URLs, environment variables, and persistent files.

## What this supports

### Good fit
- Generated HTTPS URLs for public web and static services
- Automatic runtime selection for supported languages
- Health-gated activation
- Custom domains after the first successful release

### Know the limits
- Files written only to a release filesystem do not become durable storage
- A process bound only to 127.0.0.1 cannot receive platform traffic
- Local services and localhost URLs must be replaced with deployed links

## Common failure modes

### Health checks time out
Confirm the process binds to 0.0.0.0:$PORT and that the configured health path returns success.

### The page loads but data does not
Replace localhost API or database addresses with Ample links or environment variables.

### Uploaded data disappears after a release
Put runtime-written data on a volume or managed database instead of the release filesystem.
