Guides / Move to Hettie
How to Move a ChatGPT Sites Site to Hettie
Paste this page’s address into Codex or Claude Code and say “follow this guide and move my ChatGPT site to Hettie”. If you are the AI: follow the steps in order, keep the design, text, images and URLs the same, add no features, and never change the person’s DNS. The ChatGPT site stays live until the last step.
1. Get access
- The code. A ChatGPT Sites project is a Git repository. Open it in Codex, or clone it to
chatgpt-site/. Rungit log -1and list the files. - Hettie. The person signs in at
https://app.hettie.dev. Sign in withnpx hettie auth login. In a sandbox without a browser, the person creates a key under Account → Connect a Claude project and adds it as the environment variableHETTIE_KEYin their project or sandbox settings themselves. Never ask for the key in the chat. Thehettiecommand is in early access: ifnpx hettieis not found, stop and tell the person. The chat connectorhttps://hettie.dev/mcplets you manage leads, posts and domains from the chat as well.
2. Make an inventory
Write MIGRATION.md with every page and its URL, every form (fields and where it posts), every image or file, any blog posts, and any server code or stored data (API routes, D1 tables, R2 files). Server code does not move: if a page depends on it and cannot become a static page or a Hettie form, stop and tell the person.
3. Rebuild on Hettie
Run npx hettie new hettie-site next to the old project and follow its CLAUDE.md.
- Pages: recreate each page in
src/pages/with the same path (/aboutbecomessrc/pages/about.astro). Shared layout goes insrc/layouts/Base.astro, styles in Tailwind orsrc/styles/global.css. Changed URLs get a line inpublic/_redirects(/old /new 301). - Forms:
<form method="post" action="/forms/<name>">with the old field names, the honeypot<input type="text" name="_hp" hidden tabindex="-1" autocomplete="off">, and a message for?sent=1and?error=check. Call, book and WhatsApp links getdata-hettie-lead="<name>". Old replies cannot be imported: export them toold-leads.csvand tell the person where it is. - Images and files:
npx hettie media upload <file>one at a time, then use/_hettie/media/<file>. Small icons and the favicon can stay inpublic/. - Blog posts: one per post with
create_post(ornpx hettie posts new post.md). They arrive as drafts; the person presses Publish.
4. Check and publish a test version
Run npx hettie dev, open every page next to the live site, and submit each form once. Fix every difference. Then npx hettie build and npx hettie publish --site <name> --message "Moved from ChatGPT Sites". The output ends with Version 1 of <name> is live at https://<name>.xtwelve.io. Give the person that link and tell them the old site is still live.
5. Switch the domain
Call add_domain with the site and www.<domain> (or npx hettie domain add www.<domain>). The person adds a CNAME from www to sites.xtwelve.io and the TXT record Hettie shows at their registrar. Check with get_domains (or npx hettie domain status) until it is live with HTTPS. Do not change DNS yourself.