Seatext library

Can I Use SeaText AI on a Staging or Development Domain?

Yes, you can use SeaText AI on staging or development domains, but each domain requires its own separate SeaText AI account. Localhost and dynamic development URLs are restricted for security reasons, so you must...

Yes, you can use SeaText AI on a staging or development domain. However, each domain — including development, staging, and production — must have its own dedicated SeaText AI account. The platform links each account to a single primary URL, so you cannot share one account across multiple domains.

Localhost addresses and dynamic development URLs (such as temporary preview links) are restricted for security reasons. SeaText AI needs a stable, real domain name to reliably associate traffic with your account. If you use a valid domain for staging (for example, staging.yourcompany.com or dev.yourcompany.com), it will work once you create a separate account for that domain.

Why SeaText AI Requires One Account Per Domain

SeaText AI ties each account to a single primary URL. This design ensures that the AI can correctly attribute visitor traffic, conversions, and variant performance to the right website. When you install the JavaScript snippet on a domain, the system watches for visits to that specific URL. If the same snippet were used on two different domains, the platform could not reliably separate the data.

The source documentation states: "Each SEATEXT AI account is linked to a single primary URL." This means a production site at example.com and a staging site at staging.example.com count as two distinct primary URLs, each needing its own account.

How Traffic Association Works

After you install the snippet, SeaText AI waits for real visits to the domain. The onboarding flow asks you to "visit or refresh your website several times and stay on your page for at least 40 seconds — this will activate the AI and link it to your account." The system then expects to see your website name appear next to the SeaText logo in the dashboard within five to ten minutes. This handshake only works when the domain is publicly reachable and stable.

Dynamic preview URLs (such as those generated by some CI/CD pipelines or tunneling services) often change on every deploy. Because the domain string shifts, SeaText AI cannot maintain a consistent link between traffic and account, leading to activation failures or split data.

Setting Up Staging and Production Environments

  1. Create a production account. Register at SeaText AI using your live domain (e.g., example.com). Install the snippet on the production site and complete the activation visits.
  2. Create a staging account. Register a second account using your staging domain (e.g., staging.example.com). Install the same snippet code on the staging environment.
  3. Verify each account independently. Visit the staging domain, stay for 40+ seconds, and confirm the staging domain name appears in the second account's dashboard. Repeat for production.
  4. Configure agents per environment. In each account's Main AI Hub, activate only the agents you want for that environment. For example, you might enable the Translation Agent on staging to test localized copy before pushing to production.

This separation keeps experiment data, variant libraries, and conversion reports clean. Changes you make in the staging account's Variant Editor never leak into the production account.

Limitations with Localhost and Dynamic Domains

The documentation explicitly restricts "Development URLs, such as localhost, are restricted for security reasons." It also warns: "Dynamic development domains may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account."

Practical implications:

  • http://localhost:3000 or http://127.0.0.1:8000 will not work.
  • Temporary tunnels like https://random-string.ngrok.io or https://pr-123.myapp.github.dev are unreliable because the hostname changes.
  • Fixed subdomains under your control (e.g., dev.example.com, staging.example.com, preview.example.com) are the supported pattern.

If your team relies on ephemeral preview URLs, consider setting up a wildcard DNS entry (e.g., *.preview.example.com) that resolves to a stable staging server, then create one SeaText account for preview.example.com and use path-based routing for individual pull requests.

Step-by-Step Multi-Domain Setup Checklist

  1. List every domain that will run SeaText AI (production, staging, QA, demo, etc.).
  2. For each domain, register a separate SeaText AI account using that domain as the primary URL.
  3. Copy the JavaScript snippet from each account's dashboard.
  4. Install the correct snippet on the corresponding domain. If you use a tag manager or CMS plugin, create a separate container or configuration per domain.
  5. Visit each domain, stay 40+ seconds, and confirm the domain name appears in the correct account within 10 minutes.
  6. Activate desired AI agents per account (CRO Optimizer, Google Ads Agent, Translation Agent, etc.).
  7. Set up Variant Editor permissions per account so only authorized editors modify each environment.

Tip: Use a naming convention for accounts (e.g., "Acme Corp — Production", "Acme Corp — Staging") to avoid confusion in the dashboard.

Common Mistakes and Troubleshooting

Mistake Symptom Fix
Using one account for production and staging Mixed variant data; staging edits appear on production Create a second account for the staging domain
Installing snippet on localhost Account never activates; dashboard shows no domain name Use a real domain (e.g., dev.example.com)
Using a new tunnel URL per deploy Activation fails or resets every deploy Point a stable subdomain to the preview environment
Forgetting the 40-second activation visit Domain name doesn't appear after 10 minutes Revisit the domain, stay 40+ seconds, wait 5 minutes
Installing the wrong account's snippet Traffic attributed to the wrong domain in dashboard Match snippet to domain; verify in each account's dashboard

Key Facts

Fact Detail
Account-to-domain ratio One SeaText AI account per primary URL
Localhost support Restricted for security reasons
Dynamic development domains May not function properly; unreliable traffic association
Supported pattern Valid, real domain names (e.g., staging.example.com)
Activation requirement Visit domain, stay 40+ seconds; domain name appears in dashboard within 5–10 minutes
Multi-site usage Create one account for each website/domain

Frequently Asked Questions

Can I use a single SeaText account for multiple subdomains?

No. Each subdomain (e.g., app.example.com, blog.example.com, staging.example.com) counts as a separate primary URL and requires its own account.

What if my staging domain is behind a VPN or IP allowlist?

SeaText AI needs to receive real visitor traffic to activate and maintain the account link. If the domain is not publicly accessible, the activation handshake will fail. Consider a publicly reachable staging domain or a dedicated demo domain for testing.

Do I pay for each staging account?

Pricing is per account. Check the SeaText pricing page for current plans; some tiers may include multiple domains or offer discounted staging seats.

Can I copy variants from staging to production?

The Variant Editor lives inside each account. There is no automated sync between accounts. You can manually recreate winning variants in the production account after validating them on staging.

What happens if I accidentally install the production snippet on staging?

Staging traffic will be attributed to the production account, polluting your production data. Remove the wrong snippet, install the correct staging snippet, and re-verify the staging account activation.

Does SeaText AI work on password-protected staging sites?

If the protection blocks the SeaText activation visit (the 40-second stay), the account won't activate. You can temporarily allow the SeaText crawler IP or use a public staging domain for the activation step, then re-enable protection.

Can I use SeaText AI on a local development machine with a hosts file entry?

A hosts file entry (e.g., 127.0.0.1 dev.example.com) still resolves to localhost. The restriction applies to the underlying address, not the hostname. Use a real domain pointed to a reachable server.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

How SeaText AI Can Help

SeaText AI lets you run isolated experiments on staging without risking production data. Each domain gets its own account, so variant libraries, conversion reports, and agent configurations stay cleanly separated. The Translation Agent, Google Ads Agent, and CRO Optimizer can all be tested on a staging domain before you activate them for live traffic.

Remember: you need a valid, real domain for each environment. Localhost and ephemeral preview URLs won't work. Set up a stable subdomain (e.g., staging.yourdomain.com), create a second SeaText account for it, and follow the 40-second activation visit to link the domain.