App builder

Publish sites, SEO, domains, and analytics

Publish from App Builder, configure search metadata, share previews, connect or buy a domain, and manage live deployment state.

Publishing creates a live deployment from the current saved project. Preview links, published sites, and custom domains are separate surfaces with different purposes. Sites you publish are hosted by agaro.

Share a work in progress preview

Use Share or the preview link control to enable a temporary public preview link. Copy that link for review before launch.

A preview link exposes the current work in progress. Disable it when external review is complete. It is not the same as a durable published address and should not be used as the production URL.

Open Publish

Publishing now lives in the editor's Settings view, not in a popup. Select Publish in the editor top bar, or open Settings in the editor pane and choose Publish. For a new site, a short guide leads you through four steps: address, site information, review, and done. A slim progress header shows where you are.

Before continuing, verify that the preview is healthy and that the project name reflects the site rather than an internal temporary label.

The security check

The security check sits above every step. It scans the app's files, and its database, before you publish. Serious problems block publishing, and each one comes with how to fix it. Once they are fixed the check passes by itself.

Examples of what blocks publishing:

  • A secret key, private key, or backend database key written into code that anyone can open, or a secret placed in a variable every visitor can read.
  • A database table with no row level security, or one that anyone can read without signing in.
  • Setup SQL that turns row level security off.
  • A call to a service that a published app has no backend for, or a call to a secret API straight from the browser.
  • Code that runs text as code, builds markup from text that came from outside, or loads a script, stylesheet, frame, or form over plain http.
  • A link that runs a script.

Things worth a look but not blocking, such as a table with no access policy or an image loaded over plain http, are listed as notes that you can show or hide. Fix with the builder sends the problems to the builder as a fix turn, and you decide when to publish again. A red dot beside Publish and Security in Settings means the check found blocking problems. If the database cannot be checked right now, the check says so and offers Check again. Publishing also runs the server's own safety scan, and a very large project may have some files left out of the check, which the panel states.

Choose a published address

Agaro hosting is always offered. A published site receives a platform address based on its deployment slug. A free site subdomain can also resolve as:

text
https://your-site-slug.erp.agaro.ai

Reserved or invalid labels cannot be used. Slugs must be DNS safe and unique among live deployments.

Publishing to your own Vercel account has ended. Sites are hosted by agaro and served from agaro's domain, and Settings → Publishing now only offers Disconnect Vercel, which deletes the access token stored for an older connection.

Configure site information and SEO

The site information step supports:

  • Search title
  • Meta description
  • Favicon
  • Social sharing image
  • Keywords
  • Search indexing choice
  • Google Analytics identifier where supported

AI can draft these values from the project and workspace brand. Review every field before publishing. The search preview shows how title and description may be truncated. Keep the title near 60 characters and the description near 160 characters when practical.

Search indexing controls whether crawlers should index the deployment. Turning indexing on does not guarantee placement or ranking in a search engine.

Review commerce readiness

For a storefront, the Publish section checks product catalog and tenant Stripe readiness. Resolve any missing product or payment setup before launch:

  • Add or activate products under Products.
  • Connect the tenant's own Stripe account under Settings → Payments.
  • Confirm price, currency, images, and stock behavior in Preview.

agaro does not silently use the platform Stripe account for a tenant's customer sales.

Publish and verify

Review the address, destination, and SEO summary, then select the final publish action. Publishing builds a deployment and marks it live only after the deployment path succeeds.

When complete, copy or open the live URL from the manage view. Test the public site in a normal browser session. For a storefront or form, complete an end to end test with safe test data and confirm the resulting record appears in the correct workspace.

Connect a domain you already own

Use the custom domain control to enter a domain you control. agaro provides DNS records appropriate to the domain shape:

  • An apex domain generally uses the displayed A record.
  • A subdomain generally uses the displayed CNAME.
  • A verification TXT record proves control where required.

Add the records at your DNS provider exactly as shown. Return to the domain panel and recheck status. DNS propagation can take time, and the domain remains unverified until the public records match.

Do not remove an old production record until the new deployment has been verified and you understand the traffic change.

Buy a new domain

The Get a domain panel can search supported registrations and show annual retail pricing. Select an available domain, provide the required registrant details, review registration and renewal disclosures, then continue to hosted checkout.

After confirmed payment, the platform registers the domain and configures its DNS toward the chosen deployment. Purchased domains appear under Owned with status, expiry, automatic renewal state, and target deployment.

Domain purchase spends money and creates a registration in the supplied registrant's name. Verify spelling and legal contact details before checkout. Registry rules can impose transfer locks after registration or contact changes.

Manage a live deployment

Reopen Settings → Publish to see the current deployment URL, status, publication time, basic page view count, last viewed time, SEO configuration, and connected domain state.

Publishing again creates the next live deployment from the current project. Update republishes the current version at the same address, and Edit settings takes you back through the steps with your address filled in. A failed update leaves the live site unchanged, and the panel says so.

Unpublish

Unpublishing removes the deployment from live serving. It does not delete the editable project or its version history. Connected domains stop serving the site when no live deployment is available.

Use unpublish for a deliberate takedown. Do not delete the project as a substitute, because project deletion and deployment serving are intentionally independent.

Analytics

The builder records honest root page view totals for supported agaro hosted deployments and shows the most recent view time. A new site correctly begins at zero views.

For deeper analytics, configure the supported analytics identifier in site information. Provider reporting, consent obligations, and script blocking remain outside the basic page view counter.

Troubleshooting

Publish fails

Return to Preview and confirm the project is healthy. Review the publish error, fix the project, and retry. If the failure is TypeScript errors, which the preview never shows, the panel lists them in plain words and offers Fix it, which sends exactly those errors to the builder. Do not attach a custom domain to a failed deployment.

Publish is blocked by the security check

Read the problems listed under Fix before publishing. Each names the file and how to fix it. Use Fix with the builder, then publish again once the check passes.

My custom domain stays unverified

Compare the displayed DNS records with the public records at your provider. Remove conflicting records, check that the host name is entered correctly, wait for propagation, then select Recheck.

The domain opens an older site

Confirm which live deployment the domain points to and whether the newest project version was published. Preview changes alone do not update a live domain.

A purchased domain is still configuring

Payment completion and registration are separate steps. Recheck the Owned domain status. If the status does not advance, keep the purchase record and contact support rather than buying the same domain again.

Search results show old text

Publish the revised SEO metadata, then allow the search engine to crawl the page again. Search engine caches are not controlled by the builder.