AnalysisOct 18, 20265 min read5 sources

A stable interface made webmention.io’s Ruby-to-PHP rewrite viable

Aaron Parecki reports that webmention.io moved from Ruby to PHP without requiring users to change integrations. The practical lesson is narrower than an AI productivity claim: preserve the contract, and an internal rewrite can be less disruptive.

In one minute

Aaron Parecki reports that webmention.io moved from Ruby to PHP without requiring users to change integrations. The practical lesson is narrower than an AI productivity claim: preserve the contract, and an internal rewrite can be less disruptive. Aaron Parecki reports that webmention.io moved from Ruby to PHP without requiring users to change integrations. The practical lesson is narrower than an

Aaron Parecki reports that webmention.io moved from Ruby to PHP without requiring users to change integrations. The practical lesson is narrower than an AI productivity claim: preserve the contract, and an internal rewrite can be less disruptive.

Summary

Aaron Parecki says he rewrote webmention.io from Ruby to PHP with Claude Code, while users did not need to change their integrations. He links the work to older code relying on abandoned ORMs and old Ruby versions. The account reports a useful compatibility outcome, but does not independently validate edge cases or measure how much the assistant changed the time or cost of the rewrite.

What happened

Parecki’s published account describes Claude Code appearing in commits across several of his IndieWeb projects and explains that he has used it to help rebuild them. The specific outcome highlighted in the evidence is webmention.io’s rewrite from Ruby to PHP without requiring users to alter their integrations. Parecki identifies abandoned ORMs and old Ruby versions in the legacy code as part of the maintenance problem. His role, as described in the account, includes understanding protocol semantics, reviewing changes and deciding what ships. He also says he has shipped more improvements, but the account provides no comparative productivity data. A planned automatic migration from IndieAuth.com to IndieKey is mentioned; its completion and effect on users are not established here.

What the archive adds

The archive’s most relevant context is about release responsibility, not proof of this rewrite’s quality. Anthropic’s code-review account says approving a pull request remains a human decision and describes staged releases and rollback. An InfoQ account discusses rapid iteration with Claude Code, but does not independently validate Parecki’s work. According to dossier finding d2, Anthropic frames migrations as worthwhile when an existing trade-off becomes limiting or an ecosystem shrinks; that supports reading abandoned dependencies as a migration incentive, not as evidence that an assistant alone makes rewrites safe.

Trend signal

Coding assistants are being applied to maintenance work on established services, not only to new features. The significance here is that a service’s internals could change while its users’ integrations remain untouched. That shifts the measure of success away from how much code an assistant produces and toward whether the external behavior people rely on survives. The case suggests an assistant may help a maintainer undertake an otherwise costly rewrite, but it does not show that this result generalizes to services with different contracts or less knowledgeable owners.

Why now

The primary account says the older Ruby code relied on abandoned ORMs and old Ruby versions, creating a maintenance reason to rebuild. According to dossier finding d2, Anthropic describes migrations as attractive when a known trade-off becomes limiting or an ecosystem shrinks; the finding frames coding assistance as making migration work more feasible, not as creating the need. Dossier finding d3 describes a separate Ruby ecosystem example involving maintainer continuity. Together, these point to legacy upkeep and shrinking dependency support as drivers, with assistant-enabled implementation a possible facilitator.

Connections to other events

The reported Ruby-to-PHP migration is the concrete evidence: Parecki says users did not have to change their integrations. Our read is that a stable protocol-facing contract can insulate users from an internal rewrite and make legacy modernization practical. That is not the same as proving full compatibility: the account, as supplied, does not include an independent audit or detailed test results for edge cases. The assistant’s contribution may have lowered implementation effort, but the source does not quantify that effect; the key reported safeguard is the maintainer’s understanding of the protocols and responsibility for review.

Why it matters

For maintainers, treat an agent-assisted rewrite as a contract-preservation project. Document the behaviors users observe before changing internals, then verify those behaviors through representative tests and monitor the release for regressions. For users, unchanged integration requirements are encouraging, but ongoing reliability and security matter more than the language used inside the service. For small infrastructure projects, the case suggests that coding assistance may make dependency-driven modernization more attainable—provided someone can assess whether the result still behaves as promised.

What happens next

  • Parecki will publish a status update on the planned automatic migration from IndieAuth.com to IndieKey. (6 months, 55%). Watch for: A project post or documentation gives a completion or progress update and states whether users must take action.
  • A follow-up about the rebuilt services will document at least one concrete compatibility or reliability check. (12 months, 40%). Watch for: A release note, project document or published account names a test, incident, user disruption or rollback outcome tied to the rewrite.

Limits and uncertainty

This is one maintainer’s account. The evidence reports that integrations did not require changes, but does not establish that every client or edge case was tested, or provide an independent security review. The claim of more shipped improvements is not a measured productivity result. The evidence also does not isolate Claude Code’s contribution from the maintainer’s expertise, time or the decision to move away from legacy dependencies. The conclusion would be weaker if later experience showed regressions or substantial ongoing maintenance costs.

Skill to build now

Practise contract-first testing this week: choose one documented protocol behavior in a service you maintain, write a test for its expected observable result, then use that test to review a small internal change proposed by an assistant. Record any cases the test does not cover before expanding the change.

Reader takeaway

This week, document one specific protocol behavior your service promises—such as the observable response to a representative Webmention—and turn it into a regression test. If you use an assistant to propose an internal change, check that behavior before accepting the change; use the protocol’s documented expectations, not confidence in generated code, as the standard.

Open question

How much evidence—beyond unchanged integration requirements—would convince users that a protocol-facing rewrite preserved behavior they depend on but rarely exercise?

Evidence / sources

  1. 1aaronparecki.com/2026/10/17/5/rebuilding-my-indieweb-projects
  2. 2claude.dev/blog/solving-code-review-at-anthropic
  3. 3infoq.com/presentations/engineering-ai
  4. 4claude.com/form/projects
  5. 5x.com/claudeai/status/2100632677904744716
All Analysis

Next reads

Read next

Open the graph
  1. 01topicTrendsExplore the trends topic hub.
  2. 02archiveAnalysisOpen the latest authorial analysis.
  3. 03source ledgerSource LedgerInspect the public source evidence graph.
Who read this page?Machine requests, hidden until opened

Loading the privacy-safe route aggregate...

Open the JSON contract