
Before browser editors became the default, many writers composed posts in desktop clients and sent them to a weblog engine. That workflow required a contract for authentication, post fields, categories, media and publication state. XML-RPC and the MetaWeblog API became widely recognized parts of that contract; AtomPub and Micropub later expressed similar workflows through HTTP resources.
XML-RPC: procedure calls in XML
XML-RPC represents a method call and its parameters in XML over HTTP. Its appeal to early blog tools was practical: clients and servers in different languages could agree on a small set of types and method names. The protocol does not itself define what a blog post is; an application-facing API supplies that vocabulary.
The MetaWeblog API
The MetaWeblog API specification defines entry points for creating, editing and retrieving posts, with a struct carrying familiar RSS-style fields. Its core signatures make the remote-procedure model visible:
metaWeblog.newPost(blogid, username, password, struct, publish)
metaWeblog.editPost(postid, username, password, struct, publish)
metaWeblog.getPost(postid, username, password)
Compatibility depended on details beyond the signatures. Engines differed in which optional fields they stored, how they named categories, what HTML they accepted, how they returned media URLs and whether a draft round-tripped without loss. A client could successfully publish while still dropping metadata the server understood.
AtomPub: collections and resources
The Atom Publishing Protocol treats entries as HTTP resources grouped into collections. A client discovers a service document, creates an entry by posting to a collection, and edits the resulting resource with standard HTTP methods. RFC 5023 defines this model. Compared with an RPC method name, the resource has a URL and participates directly in HTTP semantics.
Micropub: a modern authoring endpoint
Micropub defines a client-to-server API for creating, updating and deleting posts with an HTTP endpoint. Its content model is designed to carry post properties without requiring a browser-based editor. Discovery and authorization remain important parts of the complete workflow.
Micropub is not a drop-in synonym for MetaWeblog or AtomPub. They make different choices about representation, discovery and authentication. A migration that exposes a new API should describe it as a new compatibility surface, then test clients against the fields the publication actually uses.
Media complicates every protocol
Text can be round-tripped in a single request; media introduces filenames, MIME types, size limits and public URLs. The MetaWeblog API includes a media-object call. Resource-oriented protocols can create or reference media through their own mechanisms. Regardless of protocol, the engine must decide whether an uploaded file is immutable, how collisions are handled and whether a returned URL will remain valid after a storage migration.
A compatibility test matrix
- Create a draft, read it back and compare every field.
- Publish an entry, then edit title, body, date and categories separately.
- Upload a small media file and verify its public URL.
- Confirm that failures return a machine-readable error rather than a success page.
- Check time-zone handling at both daylight-saving boundaries.
- Confirm that editing does not change the public permalink or feed identifier.
Record the supported surface
Document the supported endpoint, authentication model and field subset next to the system's operational runbook. That note lets a maintainer distinguish an intentionally retired method from a routing failure after a proxy or framework change, and it gives migration tests a concrete contract.
Security and retirement
Older publishing endpoints sometimes expect credentials inside each call. That history makes transport security, rate limits and deliberate endpoint retirement important. If a protocol is no longer offered, it should fail clearly rather than accept partial requests. If it remains active, it deserves the same logging, authentication review and backup testing as the browser editor.
Remote publishing is a reminder that a blog is an interoperable system, not just a set of pages. Continue with feeds for the outbound half of that system.