← Back to PopCraft

PUBLISH A
WEBSITE!

Pick an address. Click Publish. Get a link. Your design is a real website, with real pages, and every publish is a version you can go back to. No hosting account, no build step, no handoff.
TRY IT FREE →
Publish a website, then open it online0:11

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 PROBLEM

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.

1
click from canvas to live
Every
publish kept as a version, at its own address
2,000
files a site can hold
200 MB
per site, 20 MB per file
LIVE IN SECONDS

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.

Publish a festival presale page and open it online0:08

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.

IT MOVES

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.

An animated launch page with a working waitlist, published0:09

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.

UNDO FOR THE INTERNET

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.

launch-day · version historyLIVE?
  1. Mon 09:12First publish at launch-day. Every screen becomes a page.Version 1
  2. Mon 16:40Headline changed, Publish again. Only the files that changed go up.Version 2
  3. Tue 08:03Legal wants yesterday's copy back. Make live on Version 1.Version 1
  4. Tue 08:30Launch moved to Thursday. Take offline. The address stops answering.Nothing
  5. Thu 10:00Launch day for real. Make live on Version 2.Version 2
  6. Thu 10:01Versions 1 and 2 are still there, each at its own address.Version 2
Publish again, go back, take it offline, put it back0:15

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.

Change the address and publish again0:07

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.

WHAT YOU DO

Five buttons. That is the whole manual.

YOU WANTYOU CLICK
Put your latest design onlinePublish again. Only the files that changed are uploaded.
See an earlier versionVersion N in the list. Each has its own address.
Go back to an earlier versionMake live on that version. Visitors get it from now on.
Stop serving the siteTake offline. The address stops answering; versions are kept.
Change the addressType a new one and Publish again.
FROM ZERO

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.
DOORS

Publish lives everywhere you are

We put the same dialog behind five doors, so you never have to go hunting for it.

PUBLISH
The button in the top bar of a Web file
⋯
Publish website… in the more menu, in any kind of file
▶ ▾
The arrow beside Play, in a Web file
🚀
The rocket in the web preview's header
⌘K
Type publish in the command palette
Top bar, ⋯ menu, web preview, command palette0:14

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….

Preview first: it runs the same script as the live site0:07

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.

YOUR STUFF, YOUR ACCOUNTS

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 new GitHub repository, with the site pushed to it0:05

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 new Vercel project, deployed0:07

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.

FOR THE TEAM

Every site in one list

MARKET TAB

On Home, the Market tab lists every website the team has published, whether each is online, and how many the plan allows.

ONE CLICK EACH

Open the file, take a site offline, put it back online with its latest version, or delete it to free its place in the plan.

SAFE DELETE

Deleting a site removes its versions and its address. The design file stays, and so does anything already sent to GitHub or Vercel.
FOR ROBOTS AND TERMINALS

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/site

Over 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.

OR TAKE THE FILES

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 static site as a zip, running on its own0:10

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.

A database for the site's forms and sign-in0:08

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.

THE FINE PRINT

What to know before you hit the button

PLAN LIMITS

Your plan sets how many sites a team can have, and the free plan has one. A site counts while it exists, online or offline. New versions of a site you already have are free.

THE BADGE

On the free plan a small PopCraft badge is added to each page as it is served. Your published files are not touched.

ADDRESSES

3 to 40 letters, digits and dashes, on PopCraft's site domain. A few names are reserved, like www, api and docs. Custom domains on hosted sites are not here yet: use Vercel for that today.

PUBLIC MEANS PUBLIC

Anyone with the address can open the site. There is no password on a published site, so keep secrets out of it.
ASKED & ANSWERED

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.

THE MANUAL, FOR THE DETAILS

LIVE! YOUR TURN.

Click Publish. Get a link. Roll back any time. Free to start, in your browser or on your Mac.

OPEN POPCRAFT →