Workshop Cloud includes built-in publishing. Click Publish, and your app is deployed to serverless infrastructure with a unique URL that anyone can access.Documentation Index
Fetch the complete documentation index at: https://docs.workshop.ai/llms.txt
Use this file to discover all available pages before exploring further.
Preview Pane
The preview pane shows your running application as Workshop builds it. It appears in the right sidebar and updates live as Workshop writes code.Start App
For templates that include a dev server (React App, Web App, Data App), Workshop automatically starts your application and displays it in the preview pane. You can also control the dev server manually:- Start App — Click the play button in the preview pane header to start or restart the dev server
- Stop — Click the stop button to shut down the running server
- Restart — If your app gets into a bad state, stop and restart to get a fresh server process
How Publishing Works
Click Publish
Configure visibility
- Public — Anyone with the URL can use your app. No sign-in required.
- Private — Only people you explicitly invite by email can access it. Requires a paid plan.
Deploy
Custom Project URLs
Every published app gets a unique URL based on your project’s slug — an auto-generated identifier likegentle-elephant-alice. The resulting URL follows the pattern:
Custom Domains
On the Scale and Max plans, you can serve your published app from your own domain (e.g.app.yourcompany.com) instead of the default workshop.build URL. Workshop issues and renews the SSL certificate for your domain automatically once DNS is pointed at the Workshop origin.
Prerequisite: you must already own the domain (or subdomain) you want to use, and have access to edit DNS records at your registrar or DNS provider (Namecheap, GoDaddy, Route 53, etc.). Workshop does not sell or register domains on your behalf.
Open the Publish popover
Tell Workshop your hostname
app.yourcompany.com), and click Add. Workshop enables routing for that hostname and shows you the CNAME target to add at your DNS provider.
Add the CNAME record at your DNS provider
origin.workshop.build:Wait for Active status
- One custom domain per app. To switch domains, remove the existing one first, then add the new hostname.
- Subdomains (
app.yourcompany.com,www.yourcompany.com) are the recommended choice — they point to Workshop via a standard CNAME record. - Apex domains (
yourcompany.comwith no subdomain) are supported via A/AAAA records to Workshop’s anycast IPs after a one-time TXT ownership check. Workshop classifies apex vs subdomain automatically from the hostname you enter; see Apex domains below for the steps. - The default
{slug}.workshop.buildURL continues to work alongside your custom domain.
Apex Domains
To serve your app from an apex (root) domain likeyourcompany.com instead of www.yourcompany.com, Workshop uses A/AAAA records pointed at our global anycast IPs. Because the DNS standard forbids a CNAME at the apex, Workshop cannot infer ownership from your DNS the way it does for subdomains, so you add a one-time TXT record first, then the A/AAAA records.
Add the apex domain in Workshop
yourcompany.com), and click Add. Workshop returns a one-time verification token along with DNS instructions.Add the TXT record at your DNS provider
_workshop-verify with the token from the popover as its value:_workshop-verify (not the full _workshop-verify.yourcompany.com.). The popover shows the exact label and token, with copy buttons for both.Click Verify domain
www.yourcompany.com, app.yourcompany.com) continue to use the simpler CNAME flow above.@ row or charges to add A records there, use www.yourcompany.com as your Workshop hostname instead and configure a URL redirect from the apex to www at your registrar. The CNAME at www works on every registrar.
Public vs Private Apps
Public Apps
- Select “Anyone on the internet” in the Visibility dropdown
- No sign-in required for visitors
- Available on all plans including the free Discover tier
Private Apps
- Select “Only people invited” in the Visibility dropdown
- Invite specific people by email in the “Who can access” section
- Visitors who aren’t invited see an “Access Restricted” page
- A visitor opens your private app URL
- If they’re not signed in, they’re redirected to a sign-in page showing your app name and your identity as the owner
- They sign in with Google or request an email magic link
- After signing in, they’re redirected back to your app automatically
What Happens During Deployment
When you click Publish, Workshop performs these steps:- File packaging — Your project files are collected and uploaded to the deployment infrastructure
- Resource validation — Workshop scans your code for references to secrets and connectors that aren’t included in the project context. If any are found, deployment pauses and shows you which resources are missing (see Resource Validation below)
- Secret injection — Any secrets you’ve configured (API keys, database credentials) are securely injected into the deployment environment
- Connector credentials — If your project uses managed connectors (Workshop-provided AI connectors), fresh API keys are auto-generated for the deployment
- App startup — Your app’s start command is auto-detected and executed (Streamlit run command or FastAPI server)
- URL routing — Traffic is routed to your app through the project slug URL
Resource Validation
Before deploying, Workshop scans your code for references to secrets and connectors that aren’t included in the project context. If any are found, deployment pauses and shows you which resources are missing so you can fix the issue before your app goes live with broken credentials. You can add the missing resources to your project context directly from the prompt, skip validation and publish anyway, or dismiss and fix the code first.Updating a Published App
After making changes to your project, click Update in the Publish popover to push the latest version. The deployment URL stays the same — visitors see the new version once the update completes.Stopping a Published App
To take your app offline:- Open the Publish popover
- Click Stop
- Confirm the action
Viewing Published Apps
On the Projects page, published apps display a green Live indicator with the deployment URL. You can filter your projects by the Live tag to see only published apps. Clicking the URL opens the app in a new tab.Hide Workshop Branding
On paid plans, you can remove the Workshop badge from your published apps. Toggle the Hide branding option in the Publish popover’s advanced settings. Private apps can always hide branding regardless of plan.Plan Limits
| Feature | Discover (Free) | Build | Scale | Max |
|---|---|---|---|---|
| Public apps | Unlimited | Unlimited | Unlimited | Unlimited |
| Private apps | Not available | 1 | Unlimited | Unlimited |
| Invited viewers (per private app) | N/A | 5 | Unlimited | Unlimited |
| Custom slug rename | No | Yes | Yes | Yes |
| Custom domains | No | No | Yes | Yes |
| Hide branding | No | Yes | Yes | Yes |
Troubleshooting
Deployment blocked by missing resources
Deployment blocked by missing resources
Deployment timed out
Deployment timed out
App shows 'Temporarily Unavailable'
App shows 'Temporarily Unavailable'
Can't set visibility to Private
Can't set visibility to Private
Slug rename is disabled
Slug rename is disabled
Custom domain stuck on Pending
Custom domain stuck on Pending
origin.workshop.build exactly, and allow a few minutes for DNS propagation. Click Check status to re-check. If the status stays pending for more than ~15 minutes, use dig or nslookup to verify the CNAME resolves correctly, and that no conflicting A/AAAA records exist for the same hostname.Add custom domain option is missing
Add custom domain option is missing
Apex domain stuck on TXT verification
Apex domain stuck on TXT verification
_workshop-verify TXT record. Propagation typically takes under five minutes but can occasionally run longer. Click Verify domain again, or run dig _workshop-verify.yourcompany.com TXT from your terminal to confirm the record is visible. If the value is correct but verification still fails, double-check that the host label is the relative _workshop-verify rather than the FQDN form (_workshop-verify.yourcompany.com.); some registrars accept both, others reject the FQDN form.Apex domain stuck on Pending after adding A/AAAA records
Apex domain stuck on Pending after adding A/AAAA records
dig yourcompany.com A (expect 34.8.221.48) and dig yourcompany.com AAAA (expect 2600:1901:0:be48::). Two common gotchas:- Registrar URL forwarding overrides A records. If your registrar has a “domain forwarding” or “URL redirect” rule pointing the apex elsewhere, that takes precedence; disable it before adding the A/AAAA records.
- Stale records at
@. Some registrars keep parking-page A records at the apex; remove them so only Workshop’s anycast IPs are returned.
Registrar won't let me add an A record at the apex
Registrar won't let me add an A record at the apex
@ row or charge extra to edit it. If you can’t unlock it, use www.yourcompany.com as your Workshop hostname instead, and set up a URL redirect from the apex to www at your registrar. The subdomain CNAME flow described above works on every registrar.