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:
- Keep everything local: a self-contained app that runs with
npm installthennpm run dev, with no cloud accounts and nothing published. This is the default. In this mode the team stays offline: it will not reach for Vercel or Supabase. - Deploy to the web: the team can provision a database and deploy to your own Vercel and Supabase accounts when you are ready, and the web publish flow below applies.
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:
- Web, the default publish target (coming soon)
- iOS, marked Coming soon
- Android, marked Coming soon
- 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:
- Publish and quick commit now find a much smaller working set, and what is in it is your own work. The three-way choice you get when publishing with uncommitted changes (see "Connecting GitHub and other services") is about your entries rather than about the whole project, so "Publish committed only" is a much less surprising answer than it used to be.
- The commits are authored by the identity the project is configured with, which for a project connected to GitHub is your connected account. If no identity is configured, Castforge does not commit at all rather than inventing one, and tells you so on the project tile instead of quietly publishing a history authored by a name nobody chose.
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:
- Install (install dependencies)
- Build
- Optimize
- 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:
- 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.
- Confirm and buy. Review the domain and price, then confirm the purchase. Castforge buys the domain and wires it up for you.
- 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):
- iOS (Coming soon). Will require an Apple Developer account (99 USD per year). Castforge plans to guide you through TestFlight (a 3 to 5 day initial review) and App Store submission (1 to 3 day reviews thereafter). App Store review is a process Castforge cannot compress, so there is no "live in seconds" promise here.
- Android (Coming soon). Will use a Google Play Console internal track first (usually 2 to 4 hours), then production review (typically 1 to 7 days). Google charges a one-time 25 USD Play Console fee. Castforge plans to handle signing keys and Play Console upload.
- Desktop (Coming soon). A Castforge Desktop Builder will wrap your web app as a signed installer for Mac, Windows, and Linux, including signing-key management and auto-updater wiring.
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.