Skip to content

EmDash alternative

Hatamoto vs EmDash

Hatamoto and EmDash both ship an MCP server and sandboxed plugins. Hatamoto gives you the same plugin limits on any server. EmDash works best on Cloudflare, and it supports more languages and staff roles.

44 lines compared

Updated 28 October 2026, against EmDash 1.3.1 and its documentation.

Hatamoto ahead
11 Crawler reports, schema, forms and updates that install themselves
EmDash ahead
16 Languages, roles, sign-in options and Cloudflare hosting
About the same
17 Editing, SEO basics, redirects and the CLI

Line by line

The full comparison

44 lines in nine groups. Open a group to see each line. "Ahead" means better out of the box for a typical business website.

Hatamoto aheadEmDash aheadAbout the same

Platform and hostingHatamoto 2EmDash 4Even 3
Platform and hosting: Hatamoto vs EmDash
LineHatamotoEmDashAhead
What you runOne Go binary and a Postgres databaseA TypeScript app built on Astro, on Cloudflare Workers or Node.jsEven
LicenceApache-2.0, open sourceMIT, open sourceEven
HostingYour own server, VPS or container hostCloudflare Workers with D1 and R2, or any Node.js serverEmDash
Running costFree software, you pay for a small serverStarts on the Workers free plan. Sandboxed plugins need Workers Paid, from US$5 a monthEmDash
DatabasePostgres onlyD1, SQLite, libSQL or PostgresEmDash
Same behaviour on every hostYes. Sandbox, cache and scheduler are inside the binaryFull plugin limits on Cloudflare only. On Node.js only wall time is enforcedHatamoto
Developer toolingGo only, no Node or npmNode, npm and an Astro buildHatamoto
Sites in more than one languageNo, one language per siteYes, per-locale entries with hreflangEmDash
Several sites from one installNo, one install per siteNo, one deployment per siteEven
Editing and contentEmDash 2Even 4
Editing and content: Hatamoto vs EmDash
LineHatamotoEmDashAhead
Writing postsRich text editor that pastes cleanly from Google Docs and WordTipTap editor that stores Portable TextEven
Building pagesSection-based page builder with live previewInline visual editing on the live Astro siteEven
Custom content typesSet up in the admin, no codeSet up in the admin, each one stored as its own SQL tableEven
Revisions and schedulingBuilt inBuilt in, with a publishing calendarEven
CommentsNot includedIncluded, and carried over in site exportsEmDash
User rolesOwner and editorFive roles, from Subscriber to AdminEmDash
SEO and AI searchHatamoto 3Even 3
SEO and AI search: Hatamoto vs EmDash
LineHatamotoEmDashAhead
SEO titles and descriptionsBuilt inBuilt inEven
SitemapsBuilt inBuilt in, with image entriesEven
Schema markup (JSON-LD)Built in for every content typePosts and the home page onlyHatamoto
Redirects and 404 logBuilt inBuilt in, with gone rulesEven
AI crawler reportsWhich AI read which page, and the visits it sentNot in the documentationHatamoto
Allow or block AI crawlersPer crawler and purpose, from the adminOne robots.txt switch that blocks AI trainingHatamoto
AI agents and developer toolsEmDash 3Even 1
AI agents and developer tools: Hatamoto vs EmDash
LineHatamotoEmDashAhead
MCP serverBuilt in, with scoped API keysBuilt in, with OAuth 2.1 sign-in and scoped tokensEmDash
Command linehatamoto CLIemdash CLIEven
Charging AI agents per requestNot includedx402 payments as a separate packageEmDash
Your own front endThemes are built in, no headless modeBring any Astro front end, with a REST API and typed clientEmDash
SpeedEmDash 1Even 2
Speed: Hatamoto vs EmDash
LineHatamotoEmDashAhead
Page cachingIn memory, cleared on every editAstro route cache, cleared by tags on publishEven
Where pages are served fromYour server, with any CDN in front if you want oneCloudflare's network when hosted thereEmDash
Page weightServer-rendered, about 70 lines of scriptDepends on your Astro themeEven
Site featuresHatamoto 3Even 1
Site features: Hatamoto vs EmDash
LineHatamotoEmDashAhead
FormsBuilt in, with spam protection and CSV exportFirst-party plugin, still at version 0.2Hatamoto
Visitor analyticsBuilt in, no cookiesNot in the core feature listHatamoto
WebhooksBuilt in and signedNot in the core feature listHatamoto
Plugins and themesHatamoto 1EmDash 2Even 1
Plugins and themes: Hatamoto vs EmDash
LineHatamotoEmDashAhead
Plugin safetyEvery plugin runs in a WebAssembly sandboxRegistry plugins are sandboxed. Native plugins run with full accessHatamoto
Where plugins come fromA signed first-party registryAn open registry on AT Protocol that anyone can hostEmDash
Plugin toolkit maturityVersion 0, may still changeVersion 0.x, may still changeEven
ThemesA small catalogue, each one checked before it goes liveAny Astro project, so any Astro developer can build oneEmDash
Security and dataHatamoto 2EmDash 1Even 1
Security and data: Hatamoto vs EmDash
LineHatamotoEmDashAhead
Staff sign-inPassword, rate limits and a private admin addressPasskeys first, plus GitHub, Google or Microsoft sign-inEmDash
UpdatesSigned and automatic, with release channels and rollbackUpdate the npm packages and redeployHatamoto
Full-site exportOne command exports everythingSite packages with content, media and redirectsEven
Data sent homeNone, unless the owner opts in to an install countNot documentedHatamoto
Track record and communityEmDash 3Even 1
Track record and community: Hatamoto vs EmDash
LineHatamotoEmDashAhead
MaturityPre-1.0, runs hatamoto.dev1.0 in September 2026, now on 1.3EmDash
Who is behind itAn independent open source projectStarted by Cloudflare, with community maintainersEmDash
CommunitySmall and growingAbout 14,000 GitHub stars and nearly 200 outside contributorsEmDash
Importing from WordPressBuilt in over the REST API or a WXR file, with a URL auditBuilt in from a WXR file or an exporter pluginEven

Compared against EmDash 1.3.1 and its documentation on 28 October 2026. Sources: Cloudflare blog, EmDash on GitHub, EmDash 1.0, plugin sandbox, SEO guide, MCP server, Workers pricing. Found something out of date? Open an issue.

Six differences that matter if you work with AI agents

  • 01

    Both were built for AI agents

    Each has an MCP server, a command line tool and sandboxed plugins. On agents the two are close, so pick on hosting and the differences below.

    Hatamoto's MCP server
  • 02

    The sandbox does not depend on your host

    Hatamoto's plugin sandbox is part of the binary, so a small VPS gets the same limits as any other server. EmDash enforces CPU limits only on Cloudflare.

    How plugins are sandboxed
  • 03

    No npm build to maintain

    The admin, themes and page builder ship inside one Go binary. An EmDash site is an Astro project you build, update and deploy with npm.

    Install Hatamoto
  • 04

    Know which AI read your pages

    Hatamoto reports which AI crawlers fetched each page and how many visitors those assistants sent. EmDash gives you one robots.txt switch to block AI training.

    AI crawler reports
  • 05

    Schema markup on every page type

    Hatamoto writes JSON-LD for every content type, including people and FAQ answers. EmDash covers blog posts and the home page.

    Structured data
  • 06

    Updates install themselves

    Releases are signed and arrive on a channel you choose, with automatic rollback if a new version fails to start.

    How updates work

Being straight with you

When EmDash is the better choice

Choose EmDash if any of these describe your site or your team.

  • You already run on Cloudflare and want a site that can start on the free Workers plan.
  • Your site is published in more than one language.
  • Your developers write Astro and TypeScript and want full control of the front end.
  • You need more than two staff roles, or want passkey and Google sign-in for your team.
  • You want to charge AI agents per request with x402.
  • You want a 1.0 release with Cloudflare engineers behind it.

Moving from EmDash

There is no EmDash importer yet

Hatamoto's importer reads WordPress only. Moving from EmDash is a manual job, though an AI agent connected to both sites can do most of the copying.

  1. 1

    Install Hatamoto

    Run it with Docker or as a single binary, next to a Postgres database. Getting started

  2. 2

    Recreate your content types

    Add a content type in the admin for each EmDash collection, with the same fields. Content types

  3. 3

    Copy the content across

    Read entries from EmDash's REST API or a site package, convert the Portable Text to HTML, then create them through Hatamoto's MCP server or CLI. Connect an AI agent

  4. 4

    Keep every URL working

    Match your old slugs, add redirects for anything that moved, then point your domain at Hatamoto. Redirects

Questions people ask

Written by the Hatamoto team, from EmDash's own documentation as of October 2026.

Is Hatamoto an alternative to EmDash?

Yes, if you want an agent-ready CMS that runs the same way on any Linux server. Both have an MCP server and sandboxed plugins. EmDash is the stronger choice for multilingual sites, larger editorial teams and anyone already hosting on Cloudflare.

Is EmDash locked to Cloudflare?

Not strictly. It runs on Node.js with SQLite or Postgres. Some parts work best, or only, on Cloudflare. The plugin sandbox enforces CPU limits there and only wall time on Node, sandboxed plugins need the paid Workers plan, and the x402 bot-only mode needs Cloudflare Bot Management.

Which one is better for AI agents?

They are close. EmDash's MCP server supports OAuth sign-in, which some AI apps prefer. Hatamoto adds reports on which AI crawlers read your pages and the visits they send, plus per-crawler allow and block rules.

Can I move my EmDash site to Hatamoto?

Yes, by hand. There is no EmDash importer. Export your entries through EmDash's REST API or a site package, convert Portable Text to HTML, and create the pages through Hatamoto's MCP server or CLI. Add redirects for any URL that changes.

Which costs less to run?

A small EmDash site can run on Cloudflare's free Workers plan, although sandboxed plugins need the paid plan from US$5 a month. Hatamoto is free software, and you pay for the server it runs on, which for most sites is a small VPS.

Do their plugin sandboxes work the same way?

The idea is the same. A plugin gets only the permissions it declares. Hatamoto runs every plugin in a WebAssembly sandbox inside the binary. EmDash sandboxes registry plugins in Cloudflare isolates or workerd, and also allows native plugins with full access.

Which is more mature?

EmDash reached 1.0 in September 2026 and has Cloudflare and a larger community behind it. Hatamoto is pre-1.0 and runs hatamoto.dev in production, with signed releases on canary, edge and stable channels.

Other comparisons

  • Hatamoto vs WordPress

    The plugin stack most business sites run on, against one binary with SEO, caching and forms built in.

    Read the comparison