<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Intally</title>
    <description>The latest articles on DEV Community by Intally (@intally).</description>
    <link>https://dev.to/intally</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3912990%2F1d5d3b59-0249-4220-8106-de7dfa997e96.png</url>
      <title>DEV Community: Intally</title>
      <link>https://dev.to/intally</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/intally"/>
    <language>en</language>
    <item>
      <title>I Audited 70 Companies' llms.txt Files. Most Don't Have One.</title>
      <dc:creator>Intally</dc:creator>
      <pubDate>Fri, 15 May 2026 17:28:04 +0000</pubDate>
      <link>https://dev.to/intally/i-audited-70-companies-llmstxt-files-most-dont-have-one-22g2</link>
      <guid>https://dev.to/intally/i-audited-70-companies-llmstxt-files-most-dont-have-one-22g2</guid>
      <description>&lt;h1&gt;
  
  
  I Audited 70 Companies' llms.txt Files. Most Don't Have One.
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;/llms.txt&lt;/code&gt; proposal has been around since late 2024. Two years in, every SEO blog has a tutorial on it. Every "GEO" thinkpiece mentions it as a checkbox. WP Engine has published five articles about it in the last month. Mintlify built a feature for it.&lt;/p&gt;

&lt;p&gt;What nobody's done is check whether the people who should have one actually do, and whether what they shipped is any good.&lt;/p&gt;

&lt;p&gt;So I ran a script over 70 sites — the AI labs, the docs platforms, the dev infrastructure giants, the modern SaaS darlings, the WordPress media — and pulled their &lt;code&gt;/llms.txt&lt;/code&gt;. Here's what I found.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: 31 of 70 (44%) had a real &lt;code&gt;llms.txt&lt;/code&gt;. The other 56% either returned 404, served an HTML fallback (SPA routes catching the path), or 403'd a bot. Of the 31 that exist, 12 (41%) don't follow the format llmstxt.org itself defined. File sizes range from 648 bytes to 280 KB — a 432× spread. The companies you'd expect to lead — OpenAI, Hugging Face, Google AI, Mintlify, GitBook, Readme — don't have one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I tested, and how
&lt;/h2&gt;

&lt;p&gt;I picked 70 sites across eight buckets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI labs&lt;/strong&gt; (Anthropic, OpenAI, Mistral, Cohere, Perplexity, Hugging Face, Google AI, Replicate, ElevenLabs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI coding tools&lt;/strong&gt; (Cursor, Codeium, Windsurf, Claude, Aider)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs platforms&lt;/strong&gt; (Mintlify, GitBook, ReadMe, Redocly, Docusaurus)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev infra&lt;/strong&gt; (Vercel, Supabase, Stripe, Cloudflare, Fly, Netlify, Railway, Render, Bun, Deno)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern SaaS&lt;/strong&gt; (Linear, Notion, Retool, Raycast, Framer, Airtable, Segment, Amplitude, Mixpanel, PostHog)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WordPress ecosystem&lt;/strong&gt; (Kinsta, WP Engine, Yoast, ManageWP, Cloudways, WordPress.com, WP Tavern)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;llms.txt origin&lt;/strong&gt; (llmstxt.org, fast.ai, AnswerAI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community / publishing&lt;/strong&gt; (dev.to, Hacker Noon, Substack, Indie Hackers, GitHub, GitLab)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For each, I fetched &lt;code&gt;https://&amp;lt;domain&amp;gt;/llms.txt&lt;/code&gt; with a regular browser User-Agent, no special headers. I parsed the body to check whether it was actual markdown (starts with &lt;code&gt;#&lt;/code&gt; heading) or HTML (a SPA fallback catching the route).&lt;/p&gt;

&lt;p&gt;Then I measured seven dimensions on each real sample:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;File size in bytes&lt;/li&gt;
&lt;li&gt;Lines&lt;/li&gt;
&lt;li&gt;Number of H2 sections&lt;/li&gt;
&lt;li&gt;Total markdown links&lt;/li&gt;
&lt;li&gt;Percentage of links pointing to deep internal pages vs. marketing root vs. external&lt;/li&gt;
&lt;li&gt;Whether it follows the &lt;code&gt;# Title&lt;/code&gt; + &lt;code&gt;&amp;gt; intro blockquote&lt;/code&gt; format from the spec&lt;/li&gt;
&lt;li&gt;First 200 characters (to spot HTML fallbacks the heuristic missed)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. No login, no API key, no special crawler. Just plain HTTP GET, the same any LLM crawler would do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 1: More than half of the obvious candidates don't have one
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Outcome&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;%&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Real &lt;code&gt;llms.txt&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;44%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;404&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;31%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML fallback (200 but SPA-served)&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;13%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403 / 530 / timeout&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;11%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The 44% headline already sounds bad. But the picture is worse than that, because the "should obviously have one" cohort is the loudest part of the miss list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI&lt;/strong&gt;: 403 on the root, 404 on platform.openai.com. They've built the most-talked-about LLM in the world and don't help it find their own docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hugging Face&lt;/strong&gt;: 404. The platform whose entire reason for existing is hosting models that read text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI (ai.google.dev)&lt;/strong&gt;: 302 redirect, no &lt;code&gt;llms.txt&lt;/code&gt; at the destination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mintlify (the company that sells "llms.txt as a feature" to its customers)&lt;/strong&gt;: 404 on their own marketing site, 530 on their docs site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitBook, ReadMe&lt;/strong&gt;: both 404.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;fast.ai&lt;/strong&gt;: 404. Jeremy Howard's own site. He's the one who &lt;em&gt;proposed&lt;/em&gt; &lt;code&gt;llms.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WP Engine, Kinsta, WP Tavern, ManageWP&lt;/strong&gt;: 404 or HTML fallback. The same WordPress-hosting companies running 5-article-a-month content series about GEO and AI search ranking don't have one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A reasonable counter-argument: "an &lt;code&gt;llms.txt&lt;/code&gt; only helps if your site is what an LLM would link to in an answer; OpenAI doesn't need to optimize for ChatGPT citing OpenAI." Fine. But that doesn't explain Mintlify, whose entire pitch right now is "add llms.txt with one click using our platform." If they don't run their own dogfood, you should ask why.&lt;/p&gt;

&lt;p&gt;The HTML fallback group (9 sites returning 200 but with an HTML body) is also revealing. &lt;strong&gt;Cohere docs, Cursor docs, Codeium, Windsurf, Claude.ai, Kinsta, Notion, Segment, Deno&lt;/strong&gt; all fall here. These are companies on Next.js / Vue / similar SPAs where the framework's catch-all route is returning the app shell for &lt;code&gt;/llms.txt&lt;/code&gt;. No one noticed. No one's monitoring. An LLM crawler hitting their &lt;code&gt;/llms.txt&lt;/code&gt; gets an HTML page that doesn't even mention the word "llms.txt."&lt;/p&gt;

&lt;p&gt;This is the most damning category. 404 is a deliberate non-answer. HTML fallback is an unaware non-answer. You ran a tool, you copied a snippet from your CMS, you assumed it worked, and it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 2: 41% of the files that exist don't follow the format
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;llms.txt&lt;/code&gt; spec, as defined by &lt;a href="https://llmstxt.org/" rel="noopener noreferrer"&gt;llmstxt.org&lt;/a&gt; itself, is dead simple. There are exactly two required structural elements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A single &lt;code&gt;# Title&lt;/code&gt; H1 at the top.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;&amp;gt; blockquote&lt;/code&gt; line right after the H1, summarizing what this site is.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. The rest is sections, links, optional &lt;code&gt;## H2&lt;/code&gt; groupings — all free-form.&lt;/p&gt;

&lt;p&gt;Of 29 unique samples (after deduping &lt;code&gt;cloudflare.com&lt;/code&gt; / &lt;code&gt;www.cloudflare.com&lt;/code&gt; and &lt;code&gt;cursor.com&lt;/code&gt; / &lt;code&gt;www.cursor.com&lt;/code&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;17 (59%) follow the H1 + blockquote pattern.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12 (41%) skip the blockquote.&lt;/strong&gt; Some skip the H1 too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The non-compliant list is not who you'd expect:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site&lt;/th&gt;
&lt;th&gt;Sections&lt;/th&gt;
&lt;th&gt;Links&lt;/th&gt;
&lt;th&gt;What's wrong&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;docs.anthropic.com&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1,415&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docs.stripe.com&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;td&gt;528&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;render.com&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;295&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bun.sh&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;317&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;netlify.com&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;developers.cloudflare.com&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docs.mistral.ai&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;Single section, no intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;elevenlabs.io&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cursor.com&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No blockquote, &lt;strong&gt;and&lt;/strong&gt; has 0 markdown links — just raw URL list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;replicate.com&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;No blockquote intro, near-zero links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;amplitude.com&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No blockquote, 0 links&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;supabase.com&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;No blockquote intro&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Anthropic — the company whose docs platform is &lt;em&gt;literally the reference customer&lt;/em&gt; for the LLM ecosystem — ships 150 KB of links with no opening blockquote. Stripe ships 90 KB of structured docs index with no intro line. These aren't beginner sites. They have technical writers.&lt;/p&gt;

&lt;p&gt;What this looks like in practice: someone on the platform team auto-generated an &lt;code&gt;llms.txt&lt;/code&gt; from the docs sitemap, shipped it, and never read the spec. The crawler hitting it gets a sea of links with no context about what the site &lt;em&gt;is&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Cursor's is the strangest. Twenty sections, beautifully nested, zero markdown links — every entry is a raw URL on its own line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Get Started&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; https://cursor.com/docs.md
&lt;span class="p"&gt;-&lt;/span&gt; https://cursor.com/docs/get-started/quickstart.md
&lt;span class="p"&gt;-&lt;/span&gt; https://cursor.com/docs/models-and-pricing.md
&lt;span class="p"&gt;  -&lt;/span&gt; https://cursor.com/docs/models/claude-4-6-sonnet.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also has at least one concatenation bug: &lt;code&gt;https://cursor.comhttps://cursor.com/changelog.md&lt;/code&gt; shows up unescaped. If an LLM crawler was strict about markdown link parsing, half of Cursor's file would be invisible to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 3: File sizes vary by 432×, and nobody agrees what this file is for
&lt;/h2&gt;

&lt;p&gt;The smallest real &lt;code&gt;llms.txt&lt;/code&gt;: 648 bytes. That's &lt;a href="https://llmstxt.org" rel="noopener noreferrer"&gt;llmstxt.org&lt;/a&gt; — the site that defined the spec — pointing to three docs.&lt;/p&gt;

&lt;p&gt;The largest: 279,743 bytes. That's PostHog, dumping what looks like their entire docs sitemap, with prose annotations, 54 H2 sections, and 2,555 markdown links pointing to &lt;code&gt;.md&lt;/code&gt; variants of every doc page.&lt;/p&gt;

&lt;p&gt;Between them, eight orders of practical magnitude:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bucket&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tiny (&amp;lt;1 KB)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;llmstxt.org (648 B)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Small (1-5 KB)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;railway.app (1.4 KB), supabase.com (1.3 KB), amplitude.com (2.8 KB), replicate.com (3.4 KB), mistral.ai (4.9 KB), cohere.com (4.8 KB), hackernoon.com (4.9 KB), answerai.com (1.8 KB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium (5-20 KB)&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;linear.app, cursor.com, framer.com, yoast.com, wordpress.com, cloudflare.com, elevenlabs.io, docs.mistral.ai, developers.cloudflare.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large (20-100 KB)&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;docs.perplexity.ai (22 KB), github.com (28 KB), bun.sh (33 KB), render.com (36 KB), netlify.com (20 KB), stripe.com (64 KB), cloudways.com (64 KB), docs.stripe.com (93 KB), redocly.com (98 KB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Huge (100 KB+)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;docs.anthropic.com (152 KB), posthog.com (280 KB)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Median: 9.4 KB. Mean: 34.7 KB. The mean is misleadingly high because of the two huge outliers — most sites are actually quite small.&lt;/p&gt;

&lt;p&gt;This spread maps directly to two different philosophies of what &lt;code&gt;llms.txt&lt;/code&gt; &lt;em&gt;is&lt;/em&gt;. The spec text is ambivalent on this, so people just picked:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Philosophy A (the spec example)&lt;/strong&gt;: &lt;code&gt;llms.txt&lt;/code&gt; is a tiny pointer file. A few hundred bytes. A title, a one-line summary, and a handful of links to the most important pages. The LLM is supposed to crawl those pages separately. Sites like llmstxt.org (648 B), supabase.com (1.3 KB), railway.app (1.4 KB), answerai.com (1.8 KB) follow this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Philosophy B (the index dump)&lt;/strong&gt;: &lt;code&gt;llms.txt&lt;/code&gt; is a comprehensive sitemap-for-LLMs. Every documented page gets a link. PostHog (280 KB) and Anthropic docs (152 KB) ship more or less their entire docs map this way. Stripe (90 KB) is the same idea slightly trimmed.&lt;/p&gt;

&lt;p&gt;There's no consensus on which is right. Mintlify's product (when it works) emits Philosophy B. Hand-written ones tend toward Philosophy A. A 280 KB file is presumably a lot for a model to ingest as context; a 648 B file is presumably too little for a model to actually find anything useful.&lt;/p&gt;

&lt;p&gt;The honest answer is nobody knows yet which works better, because nobody has published data on whether either approach causes more LLM citations or traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 4: Link quality is actually fine — but link &lt;em&gt;quantity&lt;/em&gt; hides the misses
&lt;/h2&gt;

&lt;p&gt;The good news: when sites do put links in their &lt;code&gt;llms.txt&lt;/code&gt;, the links are mostly useful.&lt;/p&gt;

&lt;p&gt;Across all 7,557 markdown links in the 29 samples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;73.8% are deep internal pages&lt;/strong&gt; (paths with two or more segments — &lt;code&gt;docs.example.com/api/v2/something&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;23.3% are external&lt;/strong&gt; (mostly references to standards, SDKs, GitHub repos)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2.9% point to marketing roots&lt;/strong&gt; (the homepage or top-level category pages — &lt;code&gt;/pricing&lt;/code&gt;, &lt;code&gt;/about&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That 2.9% marketing-root number is encouraging. The fear with &lt;code&gt;llms.txt&lt;/code&gt; was that companies would use it as a marketing-funnel SEO play — link the AI to your homepage and your pricing page. They mostly aren't. The actual links point at useful documentation.&lt;/p&gt;

&lt;p&gt;The bad news is that count is heavily skewed by a few big files. PostHog alone contributes 2,555 of those 7,557 links — a third of the total dataset. Anthropic, Redocly, Stripe, Cloudways add another 3,000+. Most sites have between 0 and 100 links.&lt;/p&gt;

&lt;p&gt;Four sites have &lt;strong&gt;zero markdown links&lt;/strong&gt;: amplitude.com, cohere.com, cursor.com, hackernoon.com. Cursor and Hackernoon use raw URL strings (technically usable by some crawlers, technically not markdown). Amplitude and Cohere just describe their products in prose, which is arguably useful context but not what the spec is for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 5: The WordPress ecosystem is almost entirely missing
&lt;/h2&gt;

&lt;p&gt;Out of seven WordPress-ecosystem candidates I tested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloudways&lt;/strong&gt;, &lt;strong&gt;Yoast&lt;/strong&gt;, &lt;strong&gt;WordPress.com&lt;/strong&gt;: have one. ✅&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kinsta&lt;/strong&gt;: returns HTML fallback (you'd think they had one — they didn't). ❌&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WP Engine, ManageWP, WP Tavern&lt;/strong&gt;: 404. ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is striking because WP Engine in particular has been publishing aggressively about "GEO" — Generative Engine Optimization. Five separate articles in the last month, including "Technical GEO: Ensuring Sites are Machine Readable." The author of those articles works for a company whose own marketing site doesn't have &lt;code&gt;llms.txt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Kinsta's HTML fallback is the more interesting case. They publish content telling agencies how to make sites AI-friendly. They probably believe they have an &lt;code&gt;llms.txt&lt;/code&gt; because someone enabled a plugin. The plugin doesn't work — the Next.js router catches &lt;code&gt;/llms.txt&lt;/code&gt; and serves the React shell. Nobody on their team checked.&lt;/p&gt;

&lt;p&gt;Across the WordPress ecosystem, the gap between content about &lt;code&gt;llms.txt&lt;/code&gt; and ownership of &lt;code&gt;llms.txt&lt;/code&gt; is roughly total.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 6: The "HTML fallback" problem is bigger than it looks
&lt;/h2&gt;

&lt;p&gt;The nine sites returning 200 OK with HTML are worth highlighting separately because, from any monitoring tool's perspective, they look like success.&lt;/p&gt;

&lt;p&gt;If you run a curl with &lt;code&gt;-I&lt;/code&gt; against &lt;code&gt;kinsta.com/llms.txt&lt;/code&gt;, you get a 200 response. Your CDN logs say everyone who hit &lt;code&gt;/llms.txt&lt;/code&gt; got data back. Nothing's broken.&lt;/p&gt;

&lt;p&gt;But the body is the React app. An LLM that tries to parse the response as markdown gets a 50 KB blob of &lt;code&gt;&amp;lt;div class="..."&amp;gt;&lt;/code&gt; and JavaScript bundle URLs. It has no way to know this wasn't deliberate.&lt;/p&gt;

&lt;p&gt;This affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cohere docs&lt;/strong&gt;, &lt;strong&gt;Cursor docs&lt;/strong&gt; (sister sites of two of the most-cited Real samples, but the docs subdomains catch-all)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codeium&lt;/strong&gt;, &lt;strong&gt;Windsurf&lt;/strong&gt;, &lt;strong&gt;Claude.ai&lt;/strong&gt; — AI coding tools missing their own &lt;code&gt;llms.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notion&lt;/strong&gt; (the SaaS most likely to be cited by an LLM)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Segment&lt;/strong&gt;, &lt;strong&gt;Kinsta&lt;/strong&gt;, &lt;strong&gt;Deno&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of these are running modern JavaScript frameworks where a catch-all route handles unknown paths. The fix is one line of config to make &lt;code&gt;/llms.txt&lt;/code&gt; 404 explicitly, or to serve a real file. Nobody's done it.&lt;/p&gt;

&lt;p&gt;If your site is built on Next.js / Nuxt / Astro / similar, this is the first thing to check. Hit your own &lt;code&gt;/llms.txt&lt;/code&gt; with &lt;code&gt;curl&lt;/code&gt; and read the bytes. If you see &lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;, you have a problem regardless of whether you intended to have an &lt;code&gt;llms.txt&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding 7: We have no idea if any of this works
&lt;/h2&gt;

&lt;p&gt;The hardest part of writing this audit was admitting that we don't yet have evidence &lt;code&gt;llms.txt&lt;/code&gt; does anything useful.&lt;/p&gt;

&lt;p&gt;I looked for it. Specifically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is there public data showing that sites with &lt;code&gt;llms.txt&lt;/code&gt; get cited more often in Perplexity, ChatGPT, or Claude answers than equivalent sites without?&lt;/li&gt;
&lt;li&gt;Are LLM crawlers actually requesting &lt;code&gt;/llms.txt&lt;/code&gt;? (Cloudflare publishes some bot traffic data, but not specifically for this path.)&lt;/li&gt;
&lt;li&gt;Has any A/B-tested case study been published showing that adding &lt;code&gt;llms.txt&lt;/code&gt; changed citation share, referral traffic, or anything measurable?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The answer to all three, as of mid-2026, is "not really." There are anecdotes. There are tutorials. There are case studies that read like vendor marketing. There is no rigorous public evidence that &lt;code&gt;llms.txt&lt;/code&gt; moves the needle.&lt;/p&gt;

&lt;p&gt;It's possible — likely, even — that big LLM providers are reading it as a hint, the same way some search engines read sitemap.xml. It's also possible they're not, and the entire conversation around this file is the SEO industry filling the silence about how AI answer engines actually rank sources.&lt;/p&gt;

&lt;p&gt;The interesting fact is that even the companies whose business model would &lt;em&gt;directly benefit&lt;/em&gt; from &lt;code&gt;llms.txt&lt;/code&gt; working — the model providers — mostly aren't writing one for their own docs. That's either because they know something the SEO industry doesn't, or because they're as confused as everyone else.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I think this means
&lt;/h2&gt;

&lt;p&gt;A few cautious takeaways. Not advice — &lt;code&gt;llms.txt&lt;/code&gt; advice on the internet is already a glut. Just observations from staring at 31 real files for a day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The standard is winning by default, not by adoption.&lt;/strong&gt; It's the only proposal in this space with public buy-in. But "I've heard of it" and "I've added it to my site" are not the same conversation. Most sites haven't added it. Most that have, half-added it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The Philosophy A vs B divide is the actual open question, not "should you add llms.txt at all."&lt;/strong&gt; A 648-byte pointer file and a 280-kilobyte sitemap dump can't both be the correct interpretation of the same spec. Until someone publishes real data on which retrieves better, every "best practices" article is guessing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The HTML fallback problem is the single highest-leverage fix.&lt;/strong&gt; If you run a modern JavaScript framework and you've never checked your own &lt;code&gt;/llms.txt&lt;/code&gt; response body, you probably have a silent miss. One curl will tell you. One line of routing config will fix it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Following the spec is almost free, and almost nobody does it.&lt;/strong&gt; Forty-one percent of the files that exist skip the blockquote intro. The crawler reading these files has to guess what the site is about from the URL list alone. Adding a single sentence in &lt;code&gt;&amp;gt; blockquote&lt;/code&gt; form takes ten seconds and probably matters more than the elaborate hierarchy below it. Probably.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The gap between "writes about llms.txt" and "has llms.txt" is enormous, especially in the WordPress and hosting ecosystem.&lt;/strong&gt; This is either an opportunity (everyone else is asleep) or a tell (the people closest to SEO have done the math and skipped it). Take your pick.&lt;/p&gt;

&lt;h2&gt;
  
  
  The samples
&lt;/h2&gt;

&lt;p&gt;If you want to look at the source data: I'm publishing the 31 real &lt;code&gt;llms.txt&lt;/code&gt; files I pulled, plus the probe script and the analysis output, under a public mirror. The format and methodology are simple enough that you can rerun this audit in five minutes against your own list of suspect sites.&lt;/p&gt;

&lt;p&gt;Worth doing on your own site, at least. The HTML fallback bug is silent, the spec is short, and the upside — if &lt;code&gt;llms.txt&lt;/code&gt; ever does matter — is just a properly-formatted text file away.&lt;/p&gt;

&lt;p&gt;If you find your own audit produces wildly different conclusions, I'd genuinely like to see it. Especially if anyone has citation-share data showing this stuff actually works. So far, on this question, the marketplace of opinions is loud and the marketplace of evidence is silent.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;About the data&lt;/strong&gt;: 70 candidate sites probed on 2026-05-16 using vanilla HTTP GET with a desktop browser User-Agent. 31 returned real &lt;code&gt;llms.txt&lt;/code&gt; files. After deduping mirror domains (cloudflare.com / &lt;a href="http://www.cloudflare.com" rel="noopener noreferrer"&gt;www.cloudflare.com&lt;/a&gt;, cursor.com / &lt;a href="http://www.cursor.com" rel="noopener noreferrer"&gt;www.cursor.com&lt;/a&gt;), 29 unique samples. Probe script, raw responses, and per-site analysis are mirrored.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method limits&lt;/strong&gt;: Only the root &lt;code&gt;/llms.txt&lt;/code&gt; path was probed. Some sites may host &lt;code&gt;llms.txt&lt;/code&gt; at a subdomain or under a versioned path. I didn't check &lt;code&gt;/llms-full.txt&lt;/code&gt; (the optional verbose variant from the spec). Sites that block automated requests by IP or User-Agent (Reddit, parts of Indie Hackers) may have real files I couldn't see. The HTML-fallback class is a false-negative risk that probably understates real adoption by 1-3 sites.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Another WordPress AI Writer Plugin? Here Are 4 Honest Reasons We Built One</title>
      <dc:creator>Intally</dc:creator>
      <pubDate>Mon, 11 May 2026 22:59:33 +0000</pubDate>
      <link>https://dev.to/intally/another-wordpress-ai-writer-plugin-here-are-4-honest-reasons-we-built-one-36b2</link>
      <guid>https://dev.to/intally/another-wordpress-ai-writer-plugin-here-are-4-honest-reasons-we-built-one-36b2</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://intally.hkdfc.net/en/news/another-wordpress-ai-writer-plugin-here-are-4-honest-reasons-we-built-one" rel="noopener noreferrer"&gt;intally.hkdfc.net&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Search the WordPress plugin directory for "AI writer" today and you'll find dozens of options. GetGenie, Bertha, AIomatic, ZipWP, CodeWP, ContentBot — big-vendor plugins, indie plugins, subscription plugins, lifetime-deal plugins. All of them exist.&lt;/p&gt;

&lt;p&gt;Building one more is a position we have to defend.&lt;/p&gt;

&lt;p&gt;We spent months building WP AI Writer, and the reason isn't complicated: &lt;strong&gt;the triangle of Chinese-language site owners, bilingual (Simplified + Traditional) publishing, and BYOK pricing is something almost no plugin on the market covers at the same time&lt;/strong&gt;. Here are the four walls we kept hitting. Decide for yourself whether they're your walls too.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 walls
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Wall 1: OpenAI-only, and the API doesn't reach servers in mainland China
&lt;/h3&gt;

&lt;p&gt;About 95% of the major AI writer plugins default to OpenAI. A few add Claude or Gemini. None of those APIs are reliably reachable from servers inside mainland China — connections time out, or return 403.&lt;/p&gt;

&lt;p&gt;The workaround is a proxy. Proxies are unstable, cost money, and get rate-limited. A tool for writing blog posts shouldn't require you to solve a network-routing problem first.&lt;/p&gt;

&lt;p&gt;For Chinese-market sites, the more realistic option is to wire in domestic providers directly: DeepSeek, Tongyi Qianwen, Zhipu, Kimi, Wenxin, iFlytek. They're cheap (DeepSeek runs around ¥0.03–¥0.08 per 1500-word article), stable, and compliant inside China.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;almost none of the popular Western AI writer plugins connect to those providers&lt;/strong&gt;. Their target user isn't you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wall 2: Word-count subscriptions, and the markup gets locked in by the plugin
&lt;/h3&gt;

&lt;p&gt;Open any major AI writer plugin's pricing page. The pattern is almost always:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic $29/month — 50,000 words&lt;/li&gt;
&lt;li&gt;Pro $79/month — 200,000 words&lt;/li&gt;
&lt;li&gt;Enterprise $199/month — unlimited&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It sounds like a lot, even compared to ChatGPT Plus. The issue is that &lt;strong&gt;all those words ultimately go to an OpenAI API call&lt;/strong&gt; — the plugin is adding a markup on top of the underlying API.&lt;/p&gt;

&lt;p&gt;If you have your own OpenAI / Claude / DeepSeek API key, you should in principle pay only the raw API cost. A 1500-word post with GPT-4o-mini costs roughly $0.005. A 1500-word post with DeepSeek costs roughly ¥0.05. Even at 200 posts a month, your raw API spend is $1–$10. The subscription plugin still charges $79.&lt;/p&gt;

&lt;p&gt;Where does the rest go? Into the plugin vendor's margin.&lt;/p&gt;

&lt;p&gt;Whether that business model is reasonable is a separate question. But &lt;strong&gt;if you don't want to pay that markup, what you actually need is BYOK&lt;/strong&gt; (Bring Your Own Key): a plugin that charges a one-time fee or modest annual license, and lets you pay the API cost directly with no middleman.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wall 3: Running both a Simplified and a Traditional site means writing every article twice
&lt;/h3&gt;

&lt;p&gt;This wall is specific to the Chinese-language web, and it's invisible to anyone who doesn't operate one. But it's not a language-output problem — it's a workflow problem.&lt;/p&gt;

&lt;p&gt;Any plugin can produce Traditional or Simplified Chinese output. You just tell it which one in the prompt. That's not the wall.&lt;/p&gt;

&lt;p&gt;The wall is: &lt;strong&gt;if you operate both a Simplified site (mainland China / Malaysia / Singapore readers) and a Traditional site (Taiwan / Hong Kong readers)&lt;/strong&gt;, every article goes through publishing twice.&lt;/p&gt;

&lt;p&gt;In theory, a glyph-conversion tool could solve this. But &lt;strong&gt;glyph conversion doesn't fix regional vocabulary&lt;/strong&gt;: 软件 ↔ 軟體, 视频 ↔ 影片, 网络 ↔ 網路, 项目 ↔ 專案, 奶酪 ↔ 起司. If you ship an s2t-converted Traditional article, Taiwan and Hong Kong readers can tell at a glance that the author wrote in Simplified.&lt;/p&gt;

&lt;p&gt;Our fix is to pair WP AI Writer with our other plugin, &lt;code&gt;wp-zhconvert&lt;/code&gt;. Write the article once in Simplified (or Traditional); at publish time, the plugin generates the other variant using an &lt;strong&gt;OpenCC dictionary that does region-aware vocabulary substitution&lt;/strong&gt;, not just glyph conversion. So 视频 becomes 影片 in the Taiwan edition, not just 視頻.&lt;/p&gt;

&lt;p&gt;One write, two regional editions.&lt;/p&gt;

&lt;p&gt;If you only run a single-variant site, you don't need this feature — the free-tier prompt lets you specify "output in Simplified" or "output in Traditional" and that's enough.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wall 4: Every Chinese article means tuning a prompt from scratch
&lt;/h3&gt;

&lt;p&gt;This wall isn't technical. It's a time wall.&lt;/p&gt;

&lt;p&gt;Getting an AI to produce a Chinese article that's actually publishable means a long prompt. You have to specify: scenario (blog post, product overview, news release, tutorial, comparison review, case study, FAQ, industry commentary), target reader profile, word-count range, SEO keyword distribution, whether to use subheadings, whether to cite data, whether to include an FAQ section, what tone to hit. Writing a prompt template that produces stable output usually takes 5–10 revisions.&lt;/p&gt;

&lt;p&gt;Writing one is fine. Writing 12 will take you a week.&lt;/p&gt;

&lt;p&gt;What we did is unglamorous: &lt;strong&gt;we pre-tuned 12 prompt templates for common Chinese scenarios so you don't have to&lt;/strong&gt;. Install the plugin and you can pick "blog post + tutorial-leaning + SEO keyword density," or "product overview + decision-comparison + with FAQ section." Each template exposes its parameters in the UI so you can fine-tune.&lt;/p&gt;

&lt;p&gt;If 12 isn't enough, Pro supports &lt;strong&gt;custom prompt templates&lt;/strong&gt; — create, edit, delete. Templates can be written in Chinese, English, or a mix; &lt;strong&gt;the language isn't locked&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The wall we're solving here isn't "competitors can't do this." It's "save you the time of tuning templates yourself."&lt;/p&gt;

&lt;h2&gt;
  
  
  Run the numbers
&lt;/h2&gt;

&lt;p&gt;We think BYOK is the better deal for Chinese site owners. Here's the actual math:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: a content site publishing 60 articles a month, about 1500 words each.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setup&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;th&gt;Yearly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Western subscription AI plugin (mid-tier)&lt;/td&gt;
&lt;td&gt;$79&lt;/td&gt;
&lt;td&gt;$948&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WP AI Writer Pro (annual) + DeepSeek API&lt;/td&gt;
&lt;td&gt;$79/yr + ~¥3/month ≈ ¥575/yr&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~¥575 ($80)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WP AI Writer Pro (lifetime) + DeepSeek API&lt;/td&gt;
&lt;td&gt;$279 one-time + ~¥3/month&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~¥36/yr from year 2&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Roughly one year to break even on the lifetime tier; from year two onward, you're paying API cost at face value.&lt;/p&gt;

&lt;p&gt;If you'd rather use GPT-4o, the API runs a bit more ($0.01–$0.05 per article), but &lt;strong&gt;you're still an order of magnitude cheaper than a subscription plugin&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing and features, in plain text
&lt;/h2&gt;

&lt;p&gt;We don't hide pricing, and we're explicit about what the free tier actually does:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free&lt;/strong&gt; (no purchase, install and use):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All 13 AI providers (BYOK)&lt;/li&gt;
&lt;li&gt;12 Chinese prompt templates&lt;/li&gt;
&lt;li&gt;Gutenberg sidebar generation&lt;/li&gt;
&lt;li&gt;SEO meta auto-fill (Yoast / Rank Math)&lt;/li&gt;
&lt;li&gt;5 generations per day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pro — $79/year or $279 lifetime&lt;/strong&gt; (5-domain license):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unlimited generations&lt;/li&gt;
&lt;li&gt;AI image generation (DALL-E / Gemini — featured + inline)&lt;/li&gt;
&lt;li&gt;AI refine (select text, rewrite with an instruction)&lt;/li&gt;
&lt;li&gt;CSV batch generation (up to 50 articles + scheduled publishing)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wp-zhconvert&lt;/code&gt; bilingual auto-publishing&lt;/li&gt;
&lt;li&gt;Brand voice profiles (AI extracts your style from existing posts)&lt;/li&gt;
&lt;li&gt;Real-time SEO feedback&lt;/li&gt;
&lt;li&gt;Custom prompt templates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Max — $199/year or $699 lifetime&lt;/strong&gt; (unlimited domains):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Everything in Pro&lt;/li&gt;
&lt;li&gt;REST API (&lt;code&gt;/wp-json/wp-ai-writer/v1/generate&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Team collaboration (multi-author workflow, role-based permissions)&lt;/li&gt;
&lt;li&gt;White-label (custom plugin name, logo, colors)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The free tier is genuinely usable on its own — &lt;strong&gt;not a 7-day trial, not a feature-stripped demo&lt;/strong&gt;. What Pro unlocks is scale and automation, not basic functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this plugin isn't for
&lt;/h2&gt;

&lt;p&gt;We make a tool, not a miracle. So we'll be direct about who shouldn't buy it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You write only English for Western readers.&lt;/strong&gt; Stick with GetGenie or Bertha. Their OpenAI integrations are mature and their English prompt libraries are more ready-made out of the box.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're happy with your current subscription plugin and the monthly fee doesn't sting.&lt;/strong&gt; BYOK savings aren't a priority for you, and the cost of migrating may exceed what you'd save.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You only run one variant of Chinese — Simplified only or Traditional only — with no bilingual workflow.&lt;/strong&gt; Wall 3 doesn't apply to you. The other three (domestic providers, BYOK, pre-tuned templates) still might — judge on your own value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want one button that ranks #1 on SEO automatically.&lt;/strong&gt; That doesn't exist, and anyone selling it is selling air. We can help you cut "blank page → 60% done" significantly. The remaining 40% — editing, fact-checking, voice — is still your work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who this plugin is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WordPress operators in mainland China&lt;/strong&gt;: native provider support, controllable cost, no proxy required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-border e-commerce and bilingual brand sites&lt;/strong&gt;: Simplified + Traditional auto-publishing, plus both English and Chinese prompt templates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overseas Chinese bloggers&lt;/strong&gt;: you write Chinese, you want BYOK pricing, you don't want to be locked into a subscription&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small content agencies / SEO shops&lt;/strong&gt;: CSV batch + scheduled publishing + multi-domain licensing (5 on Pro, unlimited on Max) fit a multi-site portfolio&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt;: the Max REST API lets you call generation from your own workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;WP AI Writer is live on Intally, and &lt;strong&gt;the free tier installs and works without a purchase&lt;/strong&gt;. Pro and Max are available as either lifetime or annual.&lt;/p&gt;

&lt;p&gt;If you install and find a provider we don't support, or a Chinese prompt template that doesn't match your use case, email us or drop a note in our Telegram group. We'll add it. We didn't build this plugin to ship-and-vanish; we built it because the gap was real.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>ai</category>
      <category>opensource</category>
      <category>byok</category>
    </item>
    <item>
      <title>WHMCS Alert Email Spam? 4 Solutions Compared for 2026</title>
      <dc:creator>Intally</dc:creator>
      <pubDate>Fri, 08 May 2026 16:08:58 +0000</pubDate>
      <link>https://dev.to/intally/whmcs-alert-email-spam-4-solutions-compared-for-2026-56fg</link>
      <guid>https://dev.to/intally/whmcs-alert-email-spam-4-solutions-compared-for-2026-56fg</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://intally.hkdfc.net/en/news/whmcs-alert-email-spam-4-solutions-compared-for-2026" rel="noopener noreferrer"&gt;intally.hkdfc.net&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  WHMCS alert spam at 3 AM: 4 paths out, with the actual math (2026)
&lt;/h1&gt;

&lt;p&gt;3 AM, phone buzzes 50 times. Not a traffic spike. It's WHMCS, faithfully emailing every invoice paid notification because the default alerting has no dedup, no cooldown, no quiet hours. Every invoice state change is one email. If you run WHMCS, you've been there.&lt;/p&gt;

&lt;p&gt;Worse: built-in alerts only do email. No Slack, no Telegram, no Discord, no SMS. Maintenance window? Every customer alert still pings the on-call phone, no built-in silence. On-call rotation for a small team is basically not a thing. Either every admin gets every email, or one person eats it 24/7.&lt;/p&gt;

&lt;p&gt;Quick disclosure: I run Intally (a small WHMCS / WordPress plugin shop) and one of the four options below is something we built. So this isn't neutral, but I tried to write it honestly, which means flagging the cases where you should not pick option 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four real paths
&lt;/h2&gt;

&lt;p&gt;There are basically four ways to fix this in 2026:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Patch WHMCS default emails and write your own hooks&lt;/li&gt;
&lt;li&gt;Pipe WHMCS into an external SaaS monitoring tool (PagerDuty, Opsgenie, Datadog)&lt;/li&gt;
&lt;li&gt;Buy a WHMCS Marketplace alert module from ModulesGarden or CodeCanyon&lt;/li&gt;
&lt;li&gt;Install a dedicated WHMCS alert plugin (Smart Alerting Hub style)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Below is what each one actually costs in money and time, for a solo or small hosting shop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: roll your own with WHMCS hooks
&lt;/h2&gt;

&lt;p&gt;Best fit: teams with at least one backend dev who already knows WHMCS hooks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost: 0 dollars, free as in beer&lt;/li&gt;
&lt;li&gt;Effort: high. You need to know WHMCS hooks (InvoicePaid, TicketOpen, OrderAdd, dozens of them), write PHP for dedup (Redis or a custom table), Slack webhook forwarding, Telegram bot calls&lt;/li&gt;
&lt;li&gt;Channels: as many as you write. Theoretically unlimited&lt;/li&gt;
&lt;li&gt;Maintenance: hook names shift between WHMCS 8.x and 9.x. Every new channel is a new adapter. Realistically 1 to 2 engineer weeks per year&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;Maintenance silencing ends up as one-off hacks scattered across hooks.php&lt;/li&gt;
&lt;li&gt;On-call rotation, you design the schedule logic yourself&lt;/li&gt;
&lt;li&gt;Alert history, replay, retry on failure, all built from zero&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;If you have a dev who's done WHMCS hooks before and your needs are weird enough that no plugin fits, fine. Otherwise year-one math looks free and year-three math doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: external SaaS monitoring
&lt;/h2&gt;

&lt;p&gt;Best fit: shops already running PagerDuty or Opsgenie for infra.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pricing: PagerDuty starts at $19/user/month. Opsgenie $9 to $29/user/month. Datadog by event volume&lt;/li&gt;
&lt;li&gt;Effort: medium. WHMCS side, write hooks that fire webhooks into the SaaS. SaaS side, configure routing, channels, on-call schedules&lt;/li&gt;
&lt;li&gt;Channels: very wide. SaaS providers ship 30+ integrations out of the box. On-call, dedup, silence, all mature&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;Per-user pricing scales painfully. 10 admins on PagerDuty standard is $190/month, $2,280/year&lt;/li&gt;
&lt;li&gt;SaaS doesn't read WHMCS events natively. You middleware through webhooks, so "invoice paid" arrives as a generic incident, stripped of business context&lt;/li&gt;
&lt;li&gt;For most small shops, paging via PagerDuty for invoice notifications is like calling the SRE team because someone's coffee is cold&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;If you're already paying for PagerDuty for infra, adding WHMCS is cheap. If not, overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: WHMCS Marketplace alert modules
&lt;/h2&gt;

&lt;p&gt;ModulesGarden, CodeCanyon. Search "WHMCS notification" or "WHMCS alert."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price: $179 to $499/year, ModulesGarden tier&lt;/li&gt;
&lt;li&gt;Effort: medium. Install, configure, plug in Slack or Telegram credentials&lt;/li&gt;
&lt;li&gt;Channels: depends on the plugin. Most cover email plus 2 to 3 channels&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;Most older plugins do "email plus Slack" and stop there. No dedup, no cooldown, no on-call rotation&lt;/li&gt;
&lt;li&gt;Maintenance is uneven. If the latest release is from 2024, skip it. WHMCS 8.6 and 9.0 already shifted hook semantics&lt;/li&gt;
&lt;li&gt;5-year cost runs $900 to $2,500, and you may still end up writing hooks to cover the gaps&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Two things to check before you buy: does it actually do dedup or just forwarding, and was it updated in the last 90 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 4: a dedicated WHMCS alert plugin
&lt;/h2&gt;

&lt;p&gt;Smart Alerting Hub style plugins do the full loop: WHMCS events, multi-channel routing, dedup, on-call rotation, all in one module.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price: free tier works, Pro is $69/year or $249 lifetime&lt;/li&gt;
&lt;li&gt;Effort: low. Install, configure channels (paste a Slack webhook, a Telegram bot token), pick which events to subscribe&lt;/li&gt;
&lt;li&gt;Channels: 8 standard (Email, Slack, Telegram, Discord, WhatsApp, SMS, PagerDuty, custom Webhook), no adapter writing&lt;/li&gt;
&lt;li&gt;WHMCS events: 26 (invoice, ticket, order, service, client, network, admin)&lt;/li&gt;
&lt;li&gt;Pro features:

&lt;ul&gt;
&lt;li&gt;Alert dedup with cooldown windows (same event N minutes, only one push)&lt;/li&gt;
&lt;li&gt;Maintenance silence windows (toggle on, alerts paused, no losses)&lt;/li&gt;
&lt;li&gt;Custom message templates ({{variable}} placeholders, override per channel or per event)&lt;/li&gt;
&lt;li&gt;On-call rotation (weekly cycles plus event filtering)&lt;/li&gt;
&lt;li&gt;Alert digest (hourly or daily batched summary)&lt;/li&gt;
&lt;li&gt;Unlimited alerts plus configurable history retention&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;Free tier caps at 100 alerts/day, which a mid-size shop blows through in one busy day. Free also limits you to email plus one extra channel&lt;/li&gt;
&lt;li&gt;No cross-platform incident escalation in the PagerDuty sense (Slack to phone call to manager-on-call)&lt;/li&gt;
&lt;li&gt;Less customizable than raw hooks, though templates cover ~90% of real cases&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Best fit: small to mid WHMCS hosting shops (under 50 admins) needing multi-channel alerts plus on-call plus dedup, without the per-seat SaaS bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Monthly / yearly cost&lt;/th&gt;
&lt;th&gt;Channels&lt;/th&gt;
&lt;th&gt;Dedup / on-call / silence&lt;/th&gt;
&lt;th&gt;5-year cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Roll your own hooks&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;As many as you write&lt;/td&gt;
&lt;td&gt;Build it yourself&lt;/td&gt;
&lt;td&gt;1-2 engineer weeks/yr&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External SaaS&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;$19+/user/month&lt;/td&gt;
&lt;td&gt;30+&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;td&gt;10 users ~ $11k&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketplace module&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;$179-499/yr&lt;/td&gt;
&lt;td&gt;2-3&lt;/td&gt;
&lt;td&gt;Usually missing&lt;/td&gt;
&lt;td&gt;$900-2,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dedicated plugin (Smart Alerting Hub style)&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Free or $69-249 once&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Full (Pro)&lt;/td&gt;
&lt;td&gt;$69-249&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pick by team size
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1 to 3 people, under $5k/month: option 4 free tier. 100 alerts/day plus email plus one Slack channel covers it&lt;/li&gt;
&lt;li&gt;3 to 15 people, $5k to $30k/month: option 4 Pro. $69/year unlocks dedup, on-call, silence&lt;/li&gt;
&lt;li&gt;10 to 50 people already on PagerDuty or Opsgenie for infra: option 2. Unify incident management, eat the per-seat cost&lt;/li&gt;
&lt;li&gt;50+ people with dedicated backend: option 1 plus option 4 or 2 mixed. Big shops have enough custom logic that off-the-shelf doesn't quite fit&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A shortcut if you go with option 4
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://intally.hkdfc.net/plugins/smart-alerting-hub" rel="noopener noreferrer"&gt;Smart Alerting Hub plugin&lt;/a&gt; is the one we built, free tier installs in a few minutes. Out of the box:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboard for channel health and alert stats&lt;/li&gt;
&lt;li&gt;Configure Slack, Telegram, Discord webhooks from the WHMCS admin UI, no code&lt;/li&gt;
&lt;li&gt;Alert history, replayable, retryable, filterable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pro ($69/year or $249 lifetime) unlocks the things you only need once the team grows: cooldown windows, on-call rotation, maintenance silence, custom templates. If you're under 3 people and under 100 alerts/day, free is enough.&lt;/p&gt;

&lt;p&gt;If you end up picking option 1, 2, or 3, that's fine. The reason I wrote this is so you don't pick the cheapest-looking thing and six months later realize you needed dedup and on-call all along, stacking three tools to do what one would've done. The most common WHMCS alert budget overrun I see is "just add Slack" turning into "actually we need dedup, on-call, silence" later. The rebuild costs 5 to 10x the up-front difference.&lt;/p&gt;




&lt;p&gt;WHMCS alerting in 2026 is still underrated. Most shops treat "alert equals email" as a law of physics. Written against actual May 2026 data.&lt;/p&gt;

&lt;p&gt;If your setup or pricing differs, I'd like to know. Drop a note at &lt;a href="https://t.me/intally_channel" rel="noopener noreferrer"&gt;@intally_channel&lt;/a&gt; and I'll update the article.&lt;/p&gt;

</description>
      <category>whmcs</category>
      <category>alerting</category>
      <category>devops</category>
      <category>oncall</category>
    </item>
    <item>
      <title>Accepting Alipay in WHMCS: 4 Options for 2026, with the Actual Math</title>
      <dc:creator>Intally</dc:creator>
      <pubDate>Fri, 08 May 2026 14:12:33 +0000</pubDate>
      <link>https://dev.to/intally/accepting-alipay-in-whmcs-4-options-for-2026-with-the-actual-math-16d3</link>
      <guid>https://dev.to/intally/accepting-alipay-in-whmcs-4-options-for-2026-with-the-actual-math-16d3</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://intally.hkdfc.net/en/news/accepting-alipay-in-whmcs-4-options-for-2026-with-the-actual-math" rel="noopener noreferrer"&gt;intally.hkdfc.net&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Accepting Alipay in WHMCS: 4 options for 2026, with the actual math
&lt;/h1&gt;

&lt;p&gt;WHMCS ships with PayPal, Stripe, and credit card gateways out of the box. If you want to take Alipay (mainland China), or HKD/USD paid via an Alipay+ wallet from a customer in HK / Taiwan / Singapore / Malaysia, WHMCS gives you nothing.&lt;/p&gt;

&lt;p&gt;If you sell hosting and any meaningful slice of your buyers is Chinese-speaking, missing this rail probably costs you 30 to 50 percent of would-be conversions. tbh I underestimated this for years.&lt;/p&gt;

&lt;p&gt;Quick disclosure before the math: I run Intally (a small WHMCS / WordPress plugin shop) and one of our plugins is in option 4 below. So this isn't neutral. I tried to write it the way I'd want someone else to write it for me when I was comparing, which means showing the cases where you should not pick option 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four real paths
&lt;/h2&gt;

&lt;p&gt;There are basically four ways to do this in 2026:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build it yourself against the Alipay Open Platform SDK&lt;/li&gt;
&lt;li&gt;Use a third-party payment aggregator (LianLian, cross-border acquirers, Stripe-Alipay, etc.)&lt;/li&gt;
&lt;li&gt;Buy a ready-made WHMCS module from ModulesGarden or CodeCanyon&lt;/li&gt;
&lt;li&gt;Integrate Antom directly (Ant International's official API, the thing Alipay+ runs on)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Below is what each one actually costs in money and time, if you're a solo or small hosting shop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: roll your own against Alipay Open Platform
&lt;/h2&gt;

&lt;p&gt;Best fit: teams with a dedicated backend dev and high volume.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fee rate: 0 percent platform cut. Bank settlement charges 0.1 to 0.2 percent on top&lt;/li&gt;
&lt;li&gt;Monthly fee: free&lt;/li&gt;
&lt;li&gt;Integration effort: high. RSA2 signing, callback verification, WHMCS gateway hooks (gatewayCallback, refundCallback), plus a reconciliation script&lt;/li&gt;
&lt;li&gt;Settlement: T+1 to your merchant bank&lt;/li&gt;
&lt;li&gt;Maintenance: Alipay's API changes every 1 to 2 years. Signing, async callbacks, refund reconciliation, each has sharp edges. Realistically 2 to 3 weeks of engineer time per year, ongoing&lt;/li&gt;
&lt;li&gt;Docs: all in Chinese, and not great. Noticeably rougher than what you'd expect from a Stripe-tier SaaS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're under $20k/month in volume and don't already have a backend dev who reads Chinese docs comfortably, this is not where I'd start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: third-party aggregators
&lt;/h2&gt;

&lt;p&gt;Best fit: low volume, no dev appetite.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fee rate: 2 to 4 percent. LianLian around 2.5 percent, Stripe-Alipay around 3.5 percent, others vary&lt;/li&gt;
&lt;li&gt;Monthly fee: usually free, some charge $30 to $50/mo&lt;/li&gt;
&lt;li&gt;Integration effort: low. There are existing WHMCS modules, you fill in 3 to 5 fields&lt;/li&gt;
&lt;li&gt;Settlement: T+1 to T+3&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;Stripe-Alipay is restricted in mainland China. Some IP ranges get blocked outright&lt;/li&gt;
&lt;li&gt;Many aggregators don't actually support ALIPAY_CN. They support the Alipay+ wallets used in HK / TW / SEA, which is a different rail&lt;/li&gt;
&lt;li&gt;KYC requirements are not lighter than going direct. You still need the same paperwork&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Quick math. If you do $5,000/mo and pay 2.5 percent, that's $125/mo, $1,500/yr, $7,500 over 5 years. For a lot of shops that's more than the one-time KYC pain of going direct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: WHMCS Marketplace modules
&lt;/h2&gt;

&lt;p&gt;ModulesGarden, CodeCanyon, etc. Search "WHMCS Alipay" and you'll find them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fee rate: the plugin itself is 0 percent. The underlying rail might not be&lt;/li&gt;
&lt;li&gt;Price: $179 to $499/yr typical, ModulesGarden pricing&lt;/li&gt;
&lt;li&gt;Integration effort: medium. Install, configure, test against your merchant account&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;A lot of these plugins are wrappers around an aggregator. So you're paying both the aggregator's 2 to 4 percent cut and the plugin's annual license fee. Double dipping yourself&lt;/li&gt;
&lt;li&gt;Maintenance varies wildly. If the latest release is from 2024, skip it. Alipay's API has shifted at least once since then&lt;/li&gt;
&lt;li&gt;Most of them ship encrypted source. When something breaks you're filing a vendor ticket and waiting&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Two things to check before you buy: does it call the official API directly, and has it been updated in the last 90 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 4: integrate Antom directly
&lt;/h2&gt;

&lt;p&gt;Antom is Ant International's unified payment API for overseas merchants. The consumer-facing brand is Alipay+. It covers ALIPAY_CN (mainland) plus the HK / TW / Japan / Korea / SEA wallets in one integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fee rate: 0 percent platform cut. Your real rate lives in the Antom merchant contract, typically 1.5 to 3 percent. Lower than the aggregators&lt;/li&gt;
&lt;li&gt;Monthly fee: free&lt;/li&gt;
&lt;li&gt;Integration effort: medium. RSA256 signing, callback handling, plus KYC (about 1 week)&lt;/li&gt;
&lt;li&gt;Settlement: T+1 to your merchant bank&lt;/li&gt;
&lt;li&gt;Catches:

&lt;ul&gt;
&lt;li&gt;KYC needs a HK / Singapore / Malaysia (or similar) entity. A pure mainland entity goes through domestic Alipay, which is a different rulebook&lt;/li&gt;
&lt;li&gt;Docs are in English and genuinely good. Better than the Open Platform docs imo&lt;/li&gt;
&lt;li&gt;Get the timestamp or signature wrong by one byte and the whole flow fails. Sandbox debugging usually takes 2 to 5 days the first time&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Cut&lt;/th&gt;
&lt;th&gt;Fixed cost&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Settlement&lt;/th&gt;
&lt;th&gt;Long-term cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build your own&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;T+1&lt;/td&gt;
&lt;td&gt;2 to 3 weeks/yr maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aggregator&lt;/td&gt;
&lt;td&gt;2-4%&lt;/td&gt;
&lt;td&gt;0 to $50/mo&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;T+1 to T+3&lt;/td&gt;
&lt;td&gt;Compounding cut forever&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketplace plugin&lt;/td&gt;
&lt;td&gt;0-2% (depends on rail)&lt;/td&gt;
&lt;td&gt;$179-499/yr&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;T+1&lt;/td&gt;
&lt;td&gt;Annual license + possible double cut&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Antom direct&lt;/td&gt;
&lt;td&gt;1.5-3%&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;T+1&lt;/td&gt;
&lt;td&gt;One-time KYC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pick by monthly volume
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Under $500/mo: aggregator. The total cut is small in absolute dollars and you save the engineering hours&lt;/li&gt;
&lt;li&gt;$500 to $5,000/mo: Antom direct. 1.5 to 3 percent beats aggregator 2.5 to 4 percent over time, and your rate gets negotiable as volume grows&lt;/li&gt;
&lt;li&gt;$5,000 to $30,000/mo: Antom direct. The savings here pay for half an engineer&lt;/li&gt;
&lt;li&gt;$30,000+/mo: build it yourself or stay on Antom direct. Depends on team bandwidth&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A shortcut if you go with option 4
&lt;/h2&gt;

&lt;p&gt;The bottleneck for option 4 is the integration. If you don't want to write the RSA256 signing, the callback dispatcher, and the WHMCS gateway glue from scratch, there are pre-built plugins that do it for you.&lt;/p&gt;

&lt;p&gt;Mine is one of them. &lt;a href="https://intally.hkdfc.net/plugins/antom-gateway" rel="noopener noreferrer"&gt;antom-gateway&lt;/a&gt;, free tier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ALIPAY_CN QR code in the invoice page, no off-site redirect&lt;/li&gt;
&lt;li&gt;RSA256 signing plus platform public key verification&lt;/li&gt;
&lt;li&gt;Multi-region API (Asia / North America / Europe) switchable via dropdown&lt;/li&gt;
&lt;li&gt;11 currencies with correct decimal handling&lt;/li&gt;
&lt;li&gt;One-click refunds&lt;/li&gt;
&lt;li&gt;Sandbox / production toggle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have your Antom credentials, integration goes from "3 weeks of dev time" to "fill 7 fields and save."&lt;/p&gt;

&lt;p&gt;If you end up picking option 1, 2, or 3 instead, that's fine. The reason I wrote this is so you don't pick X and six months later realize Y was the better fit.&lt;/p&gt;




&lt;p&gt;WHMCS-plus-Alipay is still a niche topic. Most English teutorials are 2020-era. This is written with May 2026 data.&lt;/p&gt;

&lt;p&gt;If your setup differs, ping &lt;a href="https://t.me/intally_channel" rel="noopener noreferrer"&gt;@intally_channel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>whmcs</category>
      <category>payments</category>
      <category>alipay</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
