Manage a site
Read the page views and the deploys of a site that SHIP hosts. Set its badge, roll it back or unpublish it, and see what your plan allows.
Manage a site in the console
The Sites page of the console lists the sites that SHIP hosts for your workspace. Each row shows the address, the kind, the status and the last deploy. A suspended site also shows the date when its suspension ends.
Open a site to see these parts:
- The page views of each day for the last 30 days. On the free plan, the page also shows the monthly cap.
- The production deploys, with the newest deploy first. A deploy that did not go live shows its cause.
- The badge setting. On the free plan, the badge stays on. On a paid plan, an admin can turn off the badge rule, and then the site config decides.
To remove the badge on a paid plan, turn off the badge rule and set footer.badge to false in site.config.ts. A change to the badge setting applies from the next production deploy. The pages that are live now stay as they are.
An admin or an owner can also roll back or unpublish a site. The console asks before it does either one. A rollback publishes the build of an earlier deploy that went live, as a new deploy. Unpublish deletes the site, and its address stays held, so nobody else can take it.
A rollback meets the rules of your plan today, as a push does. SHIP refuses a build with no badge when the badge is now required. It also refuses a rollback of a free site over its page view cap. The deploy list shows the cause.
The console uses the same API as the CLI and the MCP server. From a terminal, ship sites usage, ship sites update, ship sites rollback and ship sites delete do the same work.
Read the waitlist of your site
A site that SHIP made with Start from scratch can take sign-ups with its waitlist form. Open the site in the console to see its waitlist. Each row shows an address, the page of the form and the date of the sign-up, with the newest first. The list is empty until you publish the site with the waitlist form.
Select Download CSV to get every address in one file. The file has the columns email, source_path and created_at, with the time in UTC. A cell that starts with =, +, - or @ gets an apostrophe first, so a spreadsheet does not run it as a formula.
A visitor can ask you to delete their address. On the waitlist page, select Remove an address and enter the address, or select Remove on its row. Upper and lower case do not matter. If the address is not on the waitlist, SHIP tells you so and changes nothing.
The address leaves the live waitlist at once. The recovery history of the site's database keeps it for up to 30 days, then it is gone, and SHIP does not restore single addresses. SHIP also withdraws each database export that could still hold the address, so start a new export to get your data again. Each file that you downloaded before is your own copy, so delete the address from it too. A preview of a change has its own database, which SHIP deletes when the preview ends.
The addresses are personal data, so only an owner or an admin can read or remove them. SHIP records each read, each download and each removal in its audit log. A removal record holds the id of the entry, not the address. From a terminal, ship sites waitlist shows the same list, ship sites waitlist <SITE_ID> --csv prints the file, and ship sites waitlist remove <SITE_ID> --email <ADDRESS> removes an address. An agent reads the list with the MCP tool list_site_waitlist and removes an address with remove_site_waitlist_entry.
Download your data
A site that SHIP made with Start from scratch keeps its data in its own database, which SHIP hosts. Open the site in the console and select Download your data. You get the whole production database as one SQL file, with every table and every row, the addresses of the waitlist too.
SHIP makes the file first, and a small database takes a few seconds. While SHIP makes the file, the database of your site answers no other request, so a sign-up in those seconds can fail. So a second download within 10 minutes gets the same file, and a site gets 6 new files in each hour. The file stays available for 55 minutes.
To restore the data into an empty SQLite database, run sqlite3 site.db < database-<slug>-<date>.sql. The file also keeps the table that records the migrations of your site. So when you run the migrations of your repository on the restored database, only the new ones run.
The file holds personal data, so only an owner or an admin can download it. SHIP records each export and each download in its audit log. From a terminal, ship sites export-db <SITE_ID> writes the file. An agent starts an export with the MCP tool start_site_database_export and reads its status with get_site_database_export. The tools do not give the file itself, because a database can be larger than one tool result.
What your plan allows
The plan of your workspace sets how many sites it can hold. It also sets whether the badge can go off and whether a site has a page view cap. Each project holds one site.
| Plan | Sites | Badge | Page view cap |
|---|---|---|---|
| Free: no monthly plan, no Enterprise contract and no site hosting | One site | Stays on | 10,000 page views a month for each site |
| A monthly plan or an Enterprise contract | Up to 25 sites | An admin can turn off the badge rule | None |
| Site hosting, without a monthly plan | Up to 25 sites at $10 a month each | An admin can turn off the badge rule | None |
Prices are before tax. Credit packs pay for missions, not for sites. A workspace that buys only credit packs has the free plan's rules for its sites.
SHIP counts each page that a site serves. Other files, such as images, do not count, and the previews of pull requests do not count. A free site can serve more pages than its cap, and it stays online. If it serves more than the cap in each of the last two whole months, SHIP publishes no new build of it. The deploy list shows the cause. To publish again, buy a monthly plan or site hosting.
Buy site hosting
On the Sites page, an owner or an admin selects Buy hosting and pays on the payment page. Hosting pays for each site that the workspace hosts, and for one site when it hosts none yet. When you add or delete a site, the count changes from the next renewal.
From a terminal, ship credits buy sites_hosting opens the same payment page. A monthly plan or an Enterprise contract includes hosting, so such a workspace has nothing to buy. If you start a monthly plan while you pay for hosting, the hosting ends at once. SHIP then refunds the unused days of the month that you paid for.
Only one payment page for hosting can be open at a time. A second page opens after you pay on the first one, or after the first one expires in 30 minutes.
Cancel site hosting
On the Sites page, an owner or an admin selects Cancel hosting and confirms. The hosting ends at the end of the month that you paid for, and SHIP refunds nothing for that month. Until then, Keep hosting undoes the cancel.
From a terminal, ship credits hosting --cancel cancels the hosting, and ship credits hosting --resume keeps it.
When a plan or hosting ends
A monthly plan or site hosting can end while the workspace holds sites that the free plan does not allow. That is more than one site, a site with the badge rule off, or a site with a custom domain. Then the owners and the admins get an email, and the Sites page shows the same notice with the date.
The date is 14 days after the email. Until the email reaches every owner and admin, SHIP changes nothing. A workspace with no owner or admin keeps its sites as they are, and SHIP support gets an alert.
Until the date, the sites keep the rules of the plan that ended. On the date, SHIP keeps the oldest site and stops hosting the other sites. The repositories and their deploys stay. SHIP also turns on the badge rule for the site that stays, and removes each custom domain, because the free plan does not allow one.
To keep every site as it is, buy a monthly plan or site hosting before the date.
How is this page?
Theme a site with a brand DNA
How the brand DNA file sets the colours, fonts, logos and names of a SHIP site. The build refuses every other value.
Custom domains
Serve a site that SHIP hosts on a domain that you own, such as blog.example.com. Add two DNS records, and the domain goes live after SHIP finds them.