Back to all guides

Publishing and deploying

Preview how Castforge publishes your project to the web, building it inside the desktop app, deploying to your own Vercel project, what is in your git history when you publish now that each finished turn is committed, and connecting a custom domain. Web publishing is being finalized and is coming soon; iOS, Android, and Desktop are coming soon too.

Overview

When your app is ready to share, Castforge can build it and deploy it to the web from inside the desktop app, to your own Vercel project. You watch the build run stage by stage, and can connect a custom domain through a guided wizard.

Web publishing is still being finalized: it is marked Coming soon in the publish panel, alongside iOS, Android, and Desktop. This guide previews how the web flow works and where it deploys (to infrastructure you own, not a Castforge-hosted address). See the "Coming soon" section for what each target will require when it lands.

Choosing local or web when you create a project

When you set up a new project, Castforge asks how it should deploy, and the choice shapes how your team builds:

You are picking whether this project is built to ship to the web at all, not which app store it targets. Web is the first publish target and is coming soon; iOS, Android, and Desktop remain Coming soon too.

Opening the publish panel

Open the publish panel from the Publish button in the top bar of a project workspace. The panel slides in from the right. Its backdrop is intentionally light, so the Preview pane stays visible and you can keep iterating while the panel is open.

At the top of the panel are four destination cards:

  1. Web, the default publish target (coming soon)
  2. iOS, marked Coming soon
  3. Android, marked Coming soon
  4. Desktop, marked Coming soon

Web is selected by default.

Publishing to the web

Select the Web card to see the web publishing flow.

Deploy to your own Vercel project

Castforge deploys your app to your own Vercel account, so the live app runs on infrastructure you own and control. Vercel gives every project a deployment URL you can share as soon as the deploy lands, so you have a working address without buying a domain first, and it stays available while a custom domain's DNS is still propagating. Castforge does not host a castforge.ai staging subdomain for your app.

Connect Vercel and Supabase in advance

You do not have to wait for web publish to ship before linking your accounts. From Connections, you can connect your Vercel and Supabase accounts now, so they are linked and ready the moment web publish lands. Getting this out of the way early means your first deploy has one less step.

If a connection is not configured on Castforge's side yet, the connect flow tells you so honestly with a "connection not ready" message, rather than erroring out. If you are signed out when you start a connection, Castforge sends you to sign in first and then brings you right back to finish linking the account.

What's changing

Before you publish, Castforge can summarize your git diff in plain English, explaining new features, fixes, and breaking changes in a short paragraph, so you know what this deploy contains.

What is in your git history when you publish

Publishing and pushing send commits, so what reaches your hosting provider is whatever is in your git history at that moment. It is worth knowing what your team put there.

A project Castforge has worked on carries one commit per completed turn. As each card finishes in your project's main folder, that turn's work is committed, so the history reads as a sequence of steps rather than a single initial commit with everything else left uncommitted. A turn that finishes no card does not get its own commit, and what it wrote goes into the next one, so some commits carry more than a single turn's work. Earlier builds committed nothing as they worked, so a project started before this shipped can still be in that older shape; "Recovery and troubleshooting" covers the Save to history button that gets one out of it.

Two things this changes at publish time:

Hosting providers

Web deploys go to Vercel by default (recommended). You can also deploy to Cloudflare Pages by bringing your own Cloudflare API token. The provider that powers a given flow depends on where you start the publish from in the app.

The build pipeline

The Publish to Web action is currently shown as Coming soon and does not run a real deploy yet. This section previews what it will do once web publish lands.

When it ships, clicking Publish to Web will start a build. Castforge will run a four-stage pipeline and animate each stage as it progresses:

  1. Install (install dependencies)
  2. Build
  3. Optimize
  4. Deploy

The button will show "Building..." while the pipeline runs. When a deploy finishes, your app will be reachable at its Vercel deployment URL; if a stage fails, the failing stage will be marked and the error shown so you can fix it and publish again. Until web publish is live, the action does not produce a working URL, so do not treat the current preview as a real deployment.

You can review past builds in the Recent builds section of the panel.

Connecting a custom domain

From the Web destination, choose Get a custom domain to open the domain wizard. It is a three-step modal:

  1. Search. Type a name to search for available domains (searched via Cloudflare Registrar). Available domains show a yearly price; taken or premium ones are not selectable. Pick the one you want.
  2. Confirm and buy. Review the domain and price, then confirm the purchase. Castforge buys the domain and wires it up for you.
  3. Connect. Castforge reserves the domain, points DNS at your project, and provisions an SSL certificate. Your Vercel deployment URL keeps working here so you have a working address while everything settles.

DNS takes time to propagate

DNS does not switch over instantly. Custom domains typically take 5 to 30 minutes to propagate after they are connected. During that window your app stays reachable at its Vercel deployment URL, and Castforge emails you when your domain is live. Plan for a short wait rather than an immediate cutover.

Sharing a live preview link

Castforge is designed to let you generate a shareable, live link to your deployed app so others can view it (and, depending on the settings you pick, inspect or comment). This sharing surface is currently turned off in the beta build and has no reachable entry point. It will be re-enabled in a later release. For now, to let someone see your app, share your Vercel deployment URL or your connected custom domain after publishing.

Coming soon: iOS, Android, and Desktop

These destinations are visible in the publish panel so you can see where Castforge is headed, but they are not functional yet. Each card opens an honest description of what it will involve when it ships (targeted for a future release):

Web is the first of these targets and is itself coming soon; the mobile and desktop targets follow.

Common questions

Where do my web deploys go?

To Vercel by default. You can also deploy to Cloudflare Pages by bringing your own Cloudflare API token. Either way, Castforge runs the same Install, Build, Optimize, Deploy pipeline.

Do I need a custom domain to publish?

No. Your Vercel project gets a deployment URL that works as soon as your deploy lands. A custom domain is optional and can be added later through the domain wizard.

How long until my custom domain works?

Typically 5 to 30 minutes for DNS to propagate after the domain is connected. It is not instant. While you wait, your app stays live at its Vercel deployment URL, and Castforge emails you when the domain is live.

Can I publish iOS, Android, or Desktop apps now?

Not yet. Those destinations are shown as Coming soon and are not functional. Web publishing is coming soon as well; the mobile and desktop targets follow it.

Where do I choose whether a project deploys locally or to the web?

At project setup. The new-project flow has a deploy-mode choice: keep everything local (the default, a self-contained npm run dev app with no cloud accounts) or deploy to the web (your own Vercel and Supabase). A local project stays offline; a web project unlocks the web publish flow described above. Web is the first publish target and is coming soon; other targets follow.

My history has commits I did not write. Where did they come from?

From your team. Castforge commits each turn's work as cards finish, in one commit per turn, authored by the git identity the project is configured with. The subject reads like "castforge: coder completed 2 cards" and the body names the cards. Anything you had uncommitted before a run started is untouched and still yours to commit. See "Working in a project" for the full description, and "Recovery and troubleshooting" for how Castforge decides what belongs to a turn.

My build failed. What do I do?

The pipeline marks the stage that failed and shows the error. Read the message, fix the underlying issue in your project (the same way you would for a local build), and click Publish to Web again.

Can I share a link so someone else can view my app?

Share your published Vercel deployment URL or your connected custom domain. The dedicated in-app "share live preview link" feature is turned off in the current beta build and will return in a later release.

Can I keep working while a deploy or domain connection runs?

Yes. The publish panel uses a light backdrop so the Preview stays visible, and a connecting domain finishes in the background while you keep iterating.