SeaText Development vs Production: Separate Accounts, Not Modes
SeaText does not have a built-in development mode or production mode toggle. Instead, each domain — including development and production environments — requires its own SeaText account linked to a single primary URL. Development...
Direct answer
SeaText does not offer a development mode and a production mode inside one account. The platform ties each account to one primary URL. If you run a staging site, a local environment, and a live site, you need three separate SeaText accounts — one per domain. Development addresses like localhost or dynamic preview URLs are blocked for security, so you must register a real domain (for example staging.example.com) for any non-production environment.
Why the distinction matters
Treating environments as separate accounts changes how you plan rollouts, testing, and billing. You cannot flip a switch to move from test to live; you provision a new account, install the snippet on the new domain, and wait for the dashboard to recognise the site. This design prevents accidental optimisation on staging traffic and keeps production data clean, but it adds administrative steps whenever you spin up a new environment.
The separation ensures that AI agents do not experiment with copy on your live revenue-generating pages without explicit consent. In a single-account model, an AI agent testing a new headline might run on your staging server, gather data, and then accidentally push a variant to production if the environment flag is misconfigured. With separate accounts, the production dashboard only sees production traffic. Staging tests remain isolated. This reduces risk during high-stakes launches.
Billing is also affected. Each account incurs its own subscription cost. Teams must budget for staging and production separately. This cost structure encourages smaller, focused staging environments rather than full duplicates of production infrastructure. It also simplifies auditing. You can see exactly how much you spend on development testing versus live optimization.
How SeaText handles multiple environments
According to the installation guide, "If you need to use SEATEXT AI on multiple domains (e.g., a development domain and a production domain), you must create separate accounts for each domain. Each SEATEXT AI account is linked to a single primary URL." The same document notes that "Development URLs, such as localhost, are restricted for security reasons. Ensure you use a valid, real domain for these cases. Dynamic development domains may not function properly, as SEATEXT AI might be unable to reliably associate traffic with your account."
This architecture relies on domain fingerprinting. When the JavaScript snippet loads, it reports the hostname to SeaText servers. The system matches this hostname against the primary URL registered to the account. If they do not match, the AI agents remain inert. This prevents the script from running on unauthorized domains. It also ensures that data aggregation happens only for the intended site.
The restriction on localhost serves multiple security purposes. First, it prevents local development machines from being exposed to external AI agents that might scrape internal configurations. Second, it ensures that testing happens on a server accessible to the same CDN and security policies as production. This mimics real-world conditions more closely than a local host would. Dynamic URLs, like those from Vercel preview deployments, change frequently. SeaText cannot reliably associate traffic with a fixed account if the URL changes every time a developer pushes code. Therefore, stable subdomains are required for any non-production environment.
Practical workflow for a typical team
- Register a real subdomain for staging (e.g.,
staging.yourdomain.com) and another for production (yourdomain.com). - Create a SeaText account for the staging subdomain. Install the JavaScript snippet via the Headers and Footers plugin or your preferred injection method.
- Visit the staging site several times, staying at least 40 seconds per visit, until the site name appears in the SeaText dashboard (usually within five minutes).
- Repeat steps 2–3 for the production domain using a second SeaText account.
- Configure agents, languages, and testing rules independently in each dashboard.
For technical teams, the installation process involves precise steps. You must ensure the snippet loads before other scripts that might alter the DOM. Use the Headers and Footers plugin in WordPress to paste the code into the header section. This ensures the AI agents initialize early. If you use a custom theme, inject the code via a child theme function or a dedicated plugin. Do not hardcode it into the theme file directly, as updates might overwrite it.
Activation requires visitor interaction. The system needs to verify human presence. A single page load is not enough. You must visit the page and stay for at least 40 seconds. This delay allows the agent to load, fingerprint the domain, and link it to your account. Once the site name appears in the dashboard, the connection is active. If it takes longer than ten minutes, check your firewall settings. Sometimes strict CSP rules block the SeaText script. Ensure your Content Security Policy allows requests to SeaText domains.
Configuration differs between environments. In staging, you might enable aggressive A/B testing to find winning headlines quickly. In production, you might limit testing frequency to avoid user fatigue. You can set different language packs for each environment. If your production site is English-only, but you test German translations in staging, separate accounts make this easy. You do not need to toggle settings globally. Each dashboard operates independently.
Security implications of separate accounts
Using separate accounts enhances security by limiting the blast radius of a potential compromise. If a staging account is exposed, the production data remains safe. The API keys and tokens for each account are distinct. This isolation is critical for enterprise teams handling sensitive customer data. A single-account model would require a robust internal permission system to prevent developers from accidentally changing production settings. Separate accounts remove that dependency.
The localhost restriction is a key security control. Allowing AI agents on localhost could expose local services to external queries. For example, a developer might have an admin panel running on localhost:3000. If SeaText agents could scan this, they might inadvertently expose internal paths. By requiring a valid domain with TLS, SeaText ensures traffic travels over encrypted channels. This aligns with modern web security standards.
Dynamic URL blocking also protects against traffic hijacking. If SeaText accepted random URLs, a malicious actor could create a temporary domain and associate it with your account. This would dilute your data and potentially skew optimization results. By locking accounts to fixed primary URLs, SeaText ensures that only you can control which sites use your subscription. This prevents accidental or malicious use of your AI credits on unintended domains.
Limitations and gotchas
- No localhost: You cannot point SeaText at
http://localhost:3000or similar. Use a real domain with a valid TLS certificate. - Dynamic preview URLs: Services that generate random subdomains per deploy (e.g., Vercel preview deployments) may not work reliably because SeaText associates traffic with a fixed primary URL.
- Cost per domain: Each account carries its own subscription. Budget for staging and production separately.
- No cross-environment sync: Copy variants, translation memories, or agent settings manually if you want parity between staging and production.
Teams often face challenges with cost management. Since each domain requires a separate subscription, scaling to multiple environments increases expenses. You must plan your staging strategy carefully. Do not create accounts for every minor branch. Limit staging accounts to the main integration environment. This keeps costs predictable.
Manual sync is another limitation. If you find a winning variant in staging, you must replicate it in production. There is no automatic export or import feature. This manual step ensures that you review changes before they go live. It acts as a safety checkpoint. However, it adds time to the deployment pipeline. Document your winning variants in a shared spreadsheet to streamline this process.
Terminology
- Primary URL
- The single domain (or subdomain) that a SeaText account is bound to. Changing it requires support assistance.
- Headers and Footers plugin
- A lightweight WordPress plugin (WPBeginner's "Insert Headers and Footers") recommended for pasting the SeaText JavaScript snippet without editing theme files.
- Activation visit
- Visiting the site after installation and staying ≥40 seconds so SeaText can fingerprint the domain and link it to the account.
FAQ
Can I use one SeaText account for both staging and production by just changing the URL?
No. The account is locked to one primary URL. You must open a second account for the second domain.
What if my staging environment uses a dynamic URL like pr-123.myapp.vercel.app?
Dynamic URLs are explicitly called out as unreliable. Map a stable subdomain (e.g., staging.myapp.com) to the preview deployment and register that subdomain with SeaText.
Does SeaText charge extra for a development account?
Each account follows the standard pricing. Check the pricing page for current tiers; there is no separate "developer" discount mentioned in the documentation.
How long does it take for a new domain to appear in the dashboard?
Usually a few minutes after the activation visits. The guide suggests waiting at least five minutes; if the site name is not visible after ten minutes, contact support.
Can I copy test results from staging to production automatically?
Not currently. You would need to replicate winning variants manually in the production dashboard.
Is there any way to run SeaText on localhost for offline development?
No. Localhost and similar development URLs are restricted for security reasons. Use a real domain with HTTPS.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.