Agents can read a page index at https://migrateforge.com/llms.txt, or request any page with Accept: text/markdown.

Compare

PHP to Java migration: manual rewrite vs AI agents vs parity-gated

Kiro and Cursor are general AI coding environments; AWS has shown they can drive a PHP-to-Java migration if you build the harness yourself. MigrateForge ships that harness.

Parity-first is becoming the consensus

In October 2026, AWS published an open-source PHP-to-Java migration engine built on the same core idea: treat the original PHP application as the specification, and build the verification harness before writing the Java.

We agree with their principles, which match how MigrateForge works: discovery before translation, build the judge before the code, fix the loop rather than patching the output, and keep one shared methodology that improves with every project.

Their write-up is also admirably honest about where the sample stops. In their walkthrough, four of thirty-seven models were ported, and the parity harness itself was not built. They call that

“the single biggest gap.”

That gap is the work. Describing a verification approach is straightforward. Building one that refuses to pass when something is untested, and then living with it when it fails you, is the slow part.

Where MigrateForge is today: four migrated waves across two applications, each verified on every recorded journey, comparing responses, database writes and outgoing API calls — not responses alone. We publish coverage alongside parity, and we test the checker itself by planting deliberate bugs.

Read the AWS post → AWS sample repo → See our proof →

The thinking behind this comparison →

AWS and Kiro are products of Amazon Web Services. We’re not affiliated with or endorsed by AWS.

PHP to Java migration: manual rewrite vs AI agents vs parity-gated

Compare · five approaches

Gate on recorded journeys

  • Rewrite

    Engineers rebuild the system by hand.

  • AI assistant

    Inline autocomplete and code generation.

  • AWS Kiro

    General AI coding environment; can drive PHP→Java with a DIY harness.

  • AWS Transform

    Agentic portfolio modernization that can reuse the same DIY skills.

  • MigrateForge

    Local-first AST engine and 3D shadow replay to Java 21 Spring Boot.

Where the approaches differ

Gate comparison across rewrite, AI assistant, AWS Kiro, AWS Transform, and MigrateForge.
Capability Rewrite AI assistant AWS Kiro AWS Transform MigrateForge
Behavioural proof on recorded journeys Partial No Partial Partial Yes
Cutover blocked until journeys match No No No No Yes
Source stays on your machines Yes No Partial Partial Yes
Built for PHP → Java modernisation Partial No Partial (DIY methodology via the AWS sample) Partial (DIY methodology via the AWS sample) Yes

Dimension by dimension

Primary focus

Rewrite

Line-by-line refactoring by engineers.

AI assistant

Inline autocomplete and code generation.

AWS Kiro

General AI coding environment; specs and agent hooks for multi-step work.

AWS Transform

Portfolio-scale agentic modernization using shared skill files.

MigrateForge

Legacy modernisation: PHP to Java 21 and Spring Boot, with a shipped parity gate.

Behavioural proof

Rewrite

Manual QA and unit tests.

AI assistant

None built in. A person still has to check behaviour.

AWS Kiro

Specs, agent hooks, property-based tests

AWS Transform

Same DIY methodology as the Kiro sample when you supply the skills.

MigrateForge

Replay of recorded journeys: responses, database writes, and outgoing API calls. Four published waves reached 100% parity, with every data write verified. The match covers journeys that were recorded.

Undocumented logic

Rewrite

A rewrite can miss rules that were never written down.

AI assistant

A prompt can miss side effects the model was not shown.

AWS Kiro

Depends on someone writing the requirements down.

AWS Transform

Depends on discovery skills and human review of flags.

MigrateForge

Recorded live traffic is what gets replayed. Behaviour that was never recorded is outside the claim.

Cutover gate

Rewrite

A person’s sign-off.

AI assistant

A test pass in the editor.

AWS Kiro

You build and run the parity harness yourself.

AWS Transform

You build and run the parity harness yourself.

MigrateForge

Cutover stays blocked until the recorded responses, database writes, and outgoing API calls match. The published waves had 0 write-effect differences.

Source code

Rewrite

Stays with the team doing the rewrite.

AI assistant

Sent to the assistant’s cloud API.

AWS Kiro

Runs in a cloud or IDE workspace.

AWS Transform

Runs in AWS Transform’s agentic environment.

MigrateForge

Local-first. Application source, the database, and the sandbox stay on your machines. Only AI requests leave.

Price

Rewrite

Not a measured figure. An illustrative industry range for a traditional agency rewrite of ~50,000 LOC is on the pricing page ($180k–$350k, 6–9 months).

AI assistant

Not a figure this site measures.

AWS Kiro

Not a figure this site measures.

AWS Transform

Not a figure this site measures.

MigrateForge

A range, not a fixed tier and not a quote. The two published free reports, both medium and HIGH, put Assessment at ₹2.5–3.5 lakh ($3,000–$4,200) and Migration from ₹20,000–₹32,000 per 1,000 PHP lines (HIGH: upper half). For ~50,000 LOC that is about $12k–$19k migration. Duration is not a published figure.

Kiro and Cursor are general AI coding environments; AWS has shown they can drive a PHP-to-Java migration if you build the harness yourself. MigrateForge ships that harness.
3D parity diff engine: live or recorded traffic against legacy PHP and generated Java 21 Spring Boot; gate at 0 write-effect differences.
Shadow replay compares HTTP responses, database write-effects, and outbound payloads. Cutover stays blocked until write-effects show 0 differences.

After the move

Once the application is on Java 21 and Spring Boot, tools like Cursor or AWS Kiro can help build new features. MigrateForge is the cutover gate on the way there: local-first AST translation plus 3D shadow replay that holds cutover until write-effects on recorded journeys show 0 differences.

Pricing

Start with a free migration report.

Or email us to book a call if you would rather talk through the PHP application first.