Documentation
Domains
Configure custom-domain hosting for your blog. Subdomain mode serves the hosted blog from root /. Subpath mode keeps your existing host and rewrites a selected path to the blog runtime.
Hosting Modes
SUBDOMAIN: bind blog.example.com and serve blog runtime from root /.
SUBPATH: keep existing host (for example www.example.com) and rewrite custom base path (for example /blog or /articles) to internal blog runtime.
Add Domain
- Open
/dashboard/company/domains. - Enter host and select mode.
- Copy generated DNS records and provider integration config.
- Apply DNS/proxy config, then click
Refresh.
DNS Records
Every binding requires TXT ownership verification:
TXT _texta-verify.<host> = texta-verification=<token>
SUBDOMAIN additionally requires:
CNAME <host> -> cname.vercel-dns.com
Status Lifecycle
Domain polling runs every 5 minutes and advances bindings through: PENDING_DNS -> VERIFIED -> TLS_READY -> LIVE.
If checks fail, status becomes ERROR with troubleshooting hints in dashboard.
Required Proxy Paths
Proxy/rewrite these paths for both modes:
/blog-assets/:path*/_blog/:path*/api/blog-request/.well-known/:path*/rss.xmland/sitemap.xml(subdomain mode) or/blog/rss.xmland/blog/sitemap.xml(subpath mode)
SUBDOMAIN: main app route is /.
SUBPATH: main app route is your selected base path, rewritten to internal runtime.
Provider Templates
Dashboard provides templates for vercel, cloudflare, nginx andcloudfront. Use them as source of truth for rewrite order and forwarded headers.
For full provider examples, see Subpath Hosting.
Unknown Host Policy
Unbound hosts return 421 by default. You can switch to 404 with BLOG_UNKNOWN_HOST_STATUS=404 for compatibility.