Developer docs  /  Import, deploy & export
The framework

Bring a repo. Leave with everything.

Any folder that follows the structure can be imported as a zip or a public GitHub URL. Imports never dead-end, deploys stop auto-shipping once you have a public audience, and your source and data are exportable at all times.

On this page

Import

From the console, open Import and bring either:

  • A zip of the project folder, up to 50 MB. Files at the zip root or under a single top-level folder both work; GitHub's "Download ZIP" output imports as-is.
  • A public GitHub repository URL, like https://github.com/you/your-app. The platform fetches the default branch directly.
  • Optionally, a .sql data file to restore into the project database after the first deploy. Pair it with a source zip to move a whole running app.

An import never dead-ends. A clean repo deploys immediately. A repo with problems still becomes a project: the validator's blocker list is attached and the console walks you through fixing each one before the first deploy. Either way the project starts private; nothing is on the open web until you publish it.

Deploy

A deploy is atomic and ordered: the validators run first, then migrations apply in lexical order, then routes register and static files publish. If a validator fails, nothing ships.

Draft behavior follows your audience:

  • Before you publish, every deploy goes straight to your URL. You are the only audience; iterate at full speed.
  • After you publish, deploys land at slug-draft.hatchable.site, visible only to collaborators, and the live site does not change until someone clicks Promote in the console. Breaking the URL your users are on now requires a human decision, whether the deploy came from you or from an agent.

The toggle lives in the console if you want different behavior, and dry_run_deploy checks a build against every validator without shipping anything.

Export

Both halves of your app are downloadable at any time, on every plan:

  • Source: the Code tab downloads a zip of the working tree, exactly the folder you would re-import.
  • Data: the Database tab downloads a standard SQL dump, restorable anywhere standard SQL runs.

Together they close the loop in the diagram: what you export is what you can import. The one exception is apps installed under a managed license from the marketplace, where the seller's source is not exportable by the buyer.

Working through an agent instead? The build loop has MCP tools for each step: create_project, write_files, dry_run_deploy, deploy. Export stays in the console, in human hands. See the MCP reference.