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

  1. Open /dashboard/company/domains.
  2. Enter host and select mode.
  3. Copy generated DNS records and provider integration config.
  4. 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.xml and /sitemap.xml (subdomain mode) or/blog/rss.xml and /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.