{"schemaVersion":"1","contentVersion":"2026-10-18.1","slug":"controls-frontend","title":"Frontend publishing and traffic controls","summary":"Publish pushed code, inspect deployments, understand deployment warnings, and read production traffic measurements.","category":"Control reference","minutes":8,"prerequisites":["Open the named screen in Rumata. Available controls may depend on your account, permissions, and resource state."],"sections":[{"id":"frontend","title":"Frontend screen","blocks":[{"type":"paragraph","text":"Open [System Explorer](/guides/controls-preview#navigation) → [Frontend](/guides/controls-frontend#frontend). This screen manages the published website and its production traffic."},{"type":"table","headers":["Control","What it does"],"rows":[["Visit live site","Open the published address in a new tab. Available when the frontend is deployed and has an address."],["Open code","Switch to the code view for this factory."],["Manage deployments","Open publishing settings and recent deployment history. Opening this dialog does not publish."],["Deployment status","Read whether publishing is in progress, deployed, failed, or otherwise unavailable. A completed prior deployment can remain live while you inspect new work."]]}]},{"id":"deploy","title":"Deploy Project dialog","blocks":[{"type":"paragraph","text":"Deployment builds the latest pushed Git commit. Saving a file in the editor or seeing it in preview is not sufficient to publish it."},{"type":"table","headers":["Control","What it does"],"rows":[["Website address","Choose the site-name portion of the displayed deployment address. Production currently shows .sites.rumata.dev; use the suffix displayed in your environment. The field is disabled during an active deployment."],["Deployment URL / copy icon / external-link icon","Read, copy, or open the address shown in the dialog. If you edit [Subdomain](/guides/controls-frontend#deploy), these controls reflect that draft address; it is not evidence the new address is live."],["App workflows / Review deployment / Deploy project","Choose the workflow versions to publish with the website. Review deployment checks the pushed source and selected workflows; Deploy project starts the reviewed release. Read warnings before confirming."],["Reviewing workflow versions / Checking / Deploying","Wait for the current step to finish. A queued deployment is not a successful deployment; check its final status and any failure reason."],["Close / Cancel / corner X","Dismiss the dialog. This does not undo a deployment already queued."],["Undeploy","Take the frontend offline immediately. This button sends the request directly, without a second confirmation in this dialog."]]}]},{"id":"warnings","title":"Publishing warnings","blocks":[{"type":"paragraph","text":"Some deployments need an extra decision before they can proceed."},{"type":"table","headers":["Control","What it does"],"rows":[["Paid AI warning → workflow row","Open that workflow to review who pays for its AI feature. Publishing can let other people trigger those charges."],["Back to settings","Stop this publishing attempt so you can review billing and access settings."],["Paid AI review → Deploy project","Continue with the reviewed deployment, including the listed paid-AI workflows. If visitors can invoke them, usage may charge the configured payer. This action does not configure budgets, change the payer, or fund anonymous visitors."],["Private workflows / Future workflow saves / Shared workflows","Review which features remain unavailable to visitors, which workflows follow their latest saved version, and which changes also affect other factories. Pin workflow versions when future saves should wait for a separate release."],["No new website changes → Back to settings","Return to update, commit, and push the intended changes before deploying again."],["No new website changes → Deploy project","Rebuild the already-pushed version. Unsaved or unpushed changes are still excluded."]]}]},{"id":"history","title":"Recent deployments","blocks":[{"type":"paragraph","text":"Use deployment history to check which code version was published and when."},{"type":"table","headers":["Control","What it does"],"rows":[["Copy commit SHA","Copy the full Git identifier shown beside a deployment."],["Deployment status / failure reason / asset size and file count","Inspect the outcome and generated site files. Retired identifies a previous deployment that is no longer the active version."],["Retry workflow activation","Retry selected workflow activation when the website is deployed but workflow activation needs attention. Read the failure reason first, then verify the live customer task after retrying."],["Analytics on a deployment","Open traffic measurements for that version’s active production window, when available."],["View frontend analytics","Open traffic for the frontend as a whole."],["Back to deployments / analytics Close","Return from the analytics detail view."]]}]},{"id":"analytics","title":"Traffic measurements and map","blocks":[{"type":"paragraph","text":"One page visit often requests many files. The allowance counts HTTP edge requests rather than visitors or page views."},{"type":"table","headers":["Control","What it does"],"rows":[["Hourly / Daily","Group traffic points by hour or day."],["7d / 30d / 90d","Choose the requested lookback for frontend-wide analytics. Your plan can shorten the available history. A specific deployment uses its active window instead."],["Refresh","Reload analytics. The screen also refreshes about once a minute."],["Traffic chart point hover","Read served and rate-limited requests for the selected time bucket."],["Top locations → country row / map country","Select a location on the traffic map and inspect its request information."],["Request origins → help icon","Read how locations are determined and when traffic may be sampled."],["Shared allowance / served requests / 429 / server errors / bytes / average response","Compare the account-wide request allowance with this frontend or deployment’s traffic. Bytes and response time describe traffic but do not reduce the request allowance."]]}]}],"technical":[],"related":["publishing","controls-workflow-agents","billing"],"sources":["components/window/explorer/FrontendOperationsView.tsx","components/editor/DeployDialog.tsx","components/deployments/FactoryDeploymentReview.tsx","components/deployments/PaidWorkflowReviewDetails.tsx","components/window/explorer/AnalyticsView.tsx","components/window/explorer/overview/TrafficGeographyPanel.tsx"],"updated":"2026-09-29","audience":"general","media":[{"src":"https://docs.rumata.dev/media/manual/frontend.jpg","width":1662,"height":789,"alt":"Sabai Talk Thai Frontend panel with deployment information and live-site controls.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). Historical capture from September 8, 2026. Frontend shows deployment controls; this image does not verify the current live version. On September 29, Sabai Talk Thai showed Not Deployed and retired releases.","sectionId":"frontend"}],"video":null,"url":"https://docs.rumata.dev/guides/controls-frontend"}