PUBLISH A
WEBSITE!
The website template in the editor, signed in. The Publish button in the top bar opens the Publish dialog. An address is typed, Publish is clicked, the files upload, and the dialog shows the site's link with Version 1 marked Live. The published site is then opened on its own: the landing page shows, and clicking Pricing in its navigation goes to the pricing page.
The last mile is the longest
You designed the page. It is right there, finished, with the motion and the hover states and the pricing toggle that actually toggles. And then the conversation turns to hosting. Who has the account? Which framework? Can someone rebuild the hero by Friday? The design sits in a file while the launch waits.
We think that is silly. A page in a PopCraft Web file already knows its screens, its links, its breakpoints and its motion. So the button that puts it online should be one click away from the canvas. That is the whole feature: Publish builds the same site the static export would hand you, uploads it, and serves it.
A festival page, published and opened
This is the electronic weekend presale page from the template gallery. Publish in the top bar, type kilovolt-weekend, click Publish. The page is built, its files go up, and the dialog shows the link with Version 1 marked Live.
Then we open the link the way a visitor would. That is not the editor any more. It is the site: plain HTML for every page, so it reads before any script loads and a search engine can read it too, plus the small script that plays the design.
The electronic weekend festival presale page template, signed in. Publish in the top bar opens the Publish dialog; the address kilovolt-weekend is typed and Publish puts Version 1 live. The published site is then opened on its own, as a visitor sees it: the KILOVOLT hero, the line-up and the presale countdown.
Motion and forms come along
The published site plays everything the web preview plays: links between screens without a reload, prototype actions and variables, entrance animations, collections, layers only the GPU can draw and code components. This waitlist page opens on its own entrance, exactly as it did on the canvas.
Want the waitlist answers kept? Give the site a database in the same dialog: a Neon or Supabase project of yours, made in one click. Sign-up and sign-in come with it. The integrations docs walk through it.
The animated launch page with a working waitlist template, signed in. Publish in the top bar opens the Publish dialog, the address launch-week is typed and Publish puts Version 1 live. The published site is then opened on its own: its entrance animation plays as it would for a visitor.
Every publish is a version
Publishing is not a one-way door. Each publish is kept as it was. Here is a perfectly normal launch week, as the Publish dialog would remember it.
- Mon 09:12First publish at launch-day. Every screen becomes a page.Version 1
- Mon 16:40Headline changed, Publish again. Only the files that changed go up.Version 2
- Tue 08:03Legal wants yesterday's copy back. Make live on Version 1.Version 1
- Tue 08:30Launch moved to Thursday. Take offline. The address stops answering.Nothing
- Thu 10:00Launch day for real. Make live on Version 2.Version 2
- Thu 10:01Versions 1 and 2 are still there, each at its own address.Version 2
A website that is already published as Version 1. The headline is changed on the canvas, the Publish dialog is opened from the ⋯ menu and Publish again makes Version 2, which goes live. Make live on Version 1 puts the earlier version back; Take offline stops the site; Make live on Version 2 puts the new one online again. The site is then opened on its own and shows the new headline.
The Terminal SaaS landing page, already published as Version 1 at launch-day. The Publish dialog is opened from the command palette, the address is changed to terminal-hq and Publish again makes Version 2 live at the new address. Both versions stay in the list.
Five buttons. That is the whole manual.
| YOU WANT | YOU CLICK |
|---|---|
| Put your latest design online | Publish again. Only the files that changed are uploaded. |
| See an earlier version | Version N in the list. Each has its own address. |
| Go back to an earlier version | Make live on that version. Visitors get it from now on. |
| Stop serving the site | Take offline. The address stops answering; versions are kept. |
| Change the address | Type a new one and Publish again. |
Your first site in six moves
- 1
Make a Web file
Start from a landing page, a festival presale page, a waitlist or a SaaS site in the gallery, or a blank Web file. Each top-level frame is one page of the site. - 2
Give pages addresses
Select a screen and set its address in Web › Page: /, /pricing, /about. Links between screens become links between pages. - 3
Preview it
Press Play to open the web preview. It runs the same script as the published site, so what plays there is what goes online. - 4
Click Publish
Type an address: 3 to 40 letters, digits and dashes. That is the name before the site domain. Click Publish. - 5
Share the link
The dialog shows the site's link and Version 1, marked Live. Anyone with the address can open it. - 6
Keep shipping
Change the design, Publish again. Each publish is a new version, and the earlier ones stay exactly as they were.
Publish lives everywhere you are
We put the same dialog behind five doors, so you never have to go hunting for it.
The website template in the editor, signed in. Publish is opened four ways, each showing the same Publish dialog: the Publish button in the top bar; Publish website… in the ⋯ menu; the rocket button in the web preview's header; and the command palette, where typing publish finds Publish website….
The website template on the canvas. From the ⋯ menu, Web preview docks the page beside the canvas as a real website. The screen picker goes to another of the site's pages, and the width picker narrows the window to a phone's, where the page reflows.
Also send to GitHub and Vercel
The site we host is one place it can go. Under Also send to in the Publish dialog, a published version can be pushed to a repository of yours on GitHub or deployed to a project of yours on Vercel. Connect the account once in Integrations, then click New GitHub repository or New Vercel project. PopCraft makes it, named after the site, and sends the version straight away.
A push is one commit on the default branch, and PopCraft leaves your README, your workflows and your CNAME alone. A Vercel send is a production deployment of your project, which means the project's own domains work. That is today's answer to "can it live at my domain?"
A website that is published as Version 1, with a GitHub account connected. In the Publish dialog, under Also send to, New GitHub repository is clicked: a private repository named after the site is made in the account, added to the list, and the site is pushed to it at once. The row shows a link to the commit.
A website that is published as Version 1, with a Vercel account connected. In the Publish dialog, under Also send to, the search field lists every project the connected accounts hold; typing brightside-site narrows it to one, and clicking it adds the project and deploys the site at once. The row shows a link to the deployment, marked Building.
Every site in one list
ONE CLICK EACH
CLICK!SAFE DELETE
PHEW!Publish without the mouse
The agent, the CLI and the REST API run the same commands as the button. The agent and the terminal ask you before anything changes what is online.
# ask the agent, in words
> Publish this page as a website at launch-day.
> Put version 1 back online.
# or the CLI, with the desktop app running
$ popcraft run --ui publish.site --address launch-day
$ popcraft run --ui publish.status --json
$ popcraft run --ui publish.setVersion --version 1
# or the REST API, with a sites:publish token
$ curl -X PATCH -H "Authorization: Bearer $POPCRAFT_TOKEN" \
-d '{"currentVersion": null}' https://popcraft.app/api/v1/files/KEY/siteOver the API you upload the files yourself (the server does not draw the design): export the site, send the hashes, upload what is missing, commit. The publishing docs have every step.
Publish, export, or both
Publish is the easy road. It is not the only one. Export as web code › Website (static files) hands you the very same site as a zip: a page of HTML per screen, a 404 page if you made one, the site as data, the script that plays it and the pictures. Upload the folder anywhere that serves static files. Pick Website (Next.js project) instead and a developer gets a real codebase to keep building.
The website template on the canvas. From the ⋯ menu, Export and Export as web code… open the web export; Website (static files) is picked and Export downloads a zip. The zip is then unzipped and opened in a browser on its own, outside PopCraft: the landing page appears, and clicking Pricing in its navigation goes to the pricing page without a reload.
The coming-soon page, published, with its email sign-up marked as a form and a Neon account connected. In the Publish dialog, under Database, New Neon database is clicked: a project named after the site is made in the Neon account and its database attached, and it is listed. Three visitors then sign up on the site (sent by the recording, as the site sends them). Submissions is clicked and a table shows the three, newest first, with when each was sent and its email.
What to know before you hit the button
PLAN LIMITS
THE BADGE
ADDRESSES
PUBLIC MEANS PUBLIC
Questions, answered
Do I need a hosting account?
No. Publish uploads the site and PopCraft serves it at an address on its site domain. You only need to be signed in. A file that lives only on your device is saved to your account by its first publish.
Can I use my own domain?
Not on a site PopCraft hosts, yet. If the site has to live at your own domain today, send it to a Vercel project of yours from the Publish dialog and add the domain to that project in Vercel, or export the static files and upload them to any host.
What happens to old versions?
Nothing. Every publish is kept exactly as it was, each with an address of its own. Make live on any version puts it back online. Take offline stops serving the site and keeps every version.
How many sites can I publish?
Your plan sets how many websites a team can have: the free plan has one. A site counts while it exists, online or offline, and a new version of a site you already have does not count. Delete a site in Home › Market to free its place.
How big can a site be?
Up to 2,000 files and 200 MB, with any one file up to 20 MB.
Is a published site private?
No. Anyone with the address can see it. Do not publish what should stay private.
Can I publish from a script?
Yes. With the desktop app running, popcraft run --ui publish.site publishes the open file. A personal access token with the sites:publish scope can publish, roll back and take a site offline over the REST API.
Goes great with
LIVE! YOUR TURN.
Click Publish. Get a link. Roll back any time. Free to start, in your browser or on your Mac.