# Web Console

> The dashboard at my.shipstatic.com: drag-and-drop publishing, building from source, deployments, domains and DNS setup, tokens and your account.

Source: https://docs.shipstatic.com/web

Publish, switch versions, connect domains and set up DNS — all from the browser, at [my.shipstatic.com](https://my.shipstatic.com). Publishing itself needs no account at all.

## Quick Start

**No account yet?** Drop your folder onto [shipstatic.com](https://www.shipstatic.com) — no sign-in, nothing to set up. Your site is live immediately and the **claim URL** that comes back is how you keep it. Public deploys expire in 3 days.

**Signed in?** [my.shipstatic.com](https://my.shipstatic.com) is the console: upload, switch versions, connect domains, run DNS setup, and manage your account. Opening a claim URL while signed in transfers that deployment to you — once claimed, it never expires.

## Onboarding

Signed-in users are guided through a three-step flow:

1. **Upload**: drag and drop your files or use the file picker
2. **Domain**: choose a ShipStatic domain (`*.shipstatic.com`) or bring your own
3. **Connect**: set up DNS records (custom domains only)

ShipStatic domains skip step 3, since they're verified instantly.

## Deployments

| Action | Description |
|--------|-------------|
| Upload | Drag and drop or pick files to create a new deployment |
| Password | Set a password on upload to gate the deployment behind an unlock prompt |
| List | View all deployments with metadata, labels, and status |
| Get | View deployment details, preview URL, file count, size, and protection state |
| Set | Edit labels |
| Delete | Delete a deployment |

## Building from source

Drop a project folder instead of a built site and the console builds it for
you: it installs the project's dependencies, runs its build script, and
deploys the folder the build produced. This works for any Node.js frontend
(Vite, Next.js static export, Astro, SvelteKit, Angular, Create React App,
Eleventy, and the like).

**What to include.** Drop the whole project folder. `node_modules` and
anything your `.gitignore` lists stay behind, and the build makes them again.
So if your `.gitignore` lists your old `dist` or `build` folder, as most
projects' do, it doesn't go along. Everything else is sent, including files
whose names start with a dot, such as `.npmrc`. That includes `.env`, unless
your `.gitignore` lists it, so list it there if it holds anything private. The
files are only used for the build and are deleted after it.

The project needs `package.json`, its lockfile (`package-lock.json`,
`pnpm-lock.yaml`, `yarn.lock` or `bun.lock`), and every config file the build
reads, such as `tsconfig.json`, `vite.config.*` or `astro.config.*`. A build
that can't find `tsconfig.json` fails the same way it would on your machine.
A file your `.gitignore` lists that the app imports fails the same way, and
the build's output names it.

**Build settings.** Under Advanced options, two fields cover the projects the
console cannot work out on its own. **Build command** runs instead of the
`build` script in `package.json` (for example `npm run build:site` or `hugo`).
**Output folder** names where the built site lands (for example `public` or
`dist/site`) when it is not one of the folders the console looks for on its
own: `dist`, `build`, `out`, `.output/public`, `_site` and `public`. Both are
optional.

**When a build fails.** The console shows one sentence saying why, with the
build's own output beneath it, exactly as it would print on your machine. The
failure is in the project, not the platform: fix it and upload again, set a
build command or output folder, or build locally and upload the built folder
instead. A build has 2 minutes in total, including installing dependencies.
If your project needs longer, build it on your computer and upload the built
folder instead.

## Domains

| Action | Description |
|--------|-------------|
| Set | Create a platform or custom domain, link to a deployment |
| List | View all domains with status and linked deployment |
| Get | View domain details and DNS verification state |
| Switch | Repoint a domain to a different deployment |
| Verify | Check DNS records and update `verification` |
| Connect | Step-by-step DNS setup for custom domains |
| Delete | Delete a domain |

Once linked, a domain cannot be unlinked — switch to a different deployment or delete the domain.

## Tokens

Deploy tokens are a command-line credential: create them with `ship tokens create`, not from the console. See [Tokens](https://docs.shipstatic.com/tokens).

## Account

| Action | Description |
|--------|-------------|
| Profile | View your account email, plus the name and picture your sign-in provider supplies |
| API key | Generate or regenerate your API key — shown once, never retrievable |
| Plan | View current plan and usage limits |
| Upgrade | Move to a paid plan (see [Plans](https://docs.shipstatic.com/plans)) |
| Settings | Open the Stripe Customer Portal (billing, cancellation), delete account |

## Signing in

Two ways in, both free: **Google** or a **magic link** sent to your email address — no password to choose or remember. Sessions are managed automatically; the console never asks you for an API key or a token.

You only need an account to *keep* things. Uploading, previewing and sharing a site all work signed out — see Quick Start above.
