Migrations you can prove
With Scriba AI your legacy system becomes a modern, idiomatic application, verified with differential tests against the original and delivered with the evidence that proves it.
No LLMs
Proprietary specialized models, deterministic components and verification gates between phases.
Idiomatic code
Business logic is reconstructed, not translated line by line: no JOBOL.
Verified equivalence
Differential tests compare the migrated system's outputs with the original's.
Fixed, guaranteed price
No subscription, no usage-based fees, no hidden costs.
A COBOL ILE batch on IBM i, migrated to Java and React
A real project, delivered with the same method we apply to every PoC and every engagement.
A COBOL ILE batch on IBM i that extracts the financial transactions of a leasing company, migrated to Java 25 / Spring Boot 4.1 with a React 18 / TypeScript frontend and a SQL Server database managed with Liquibase, following the client's backend and frontend instruction files.
COBOL ILE
Batch on IBM i
- BackendJava 25 · Spring Boot 4.1
- FrontendReact 18 · TypeScript
- DatabaseSQL Server · Liquibase
The reviewers' findings were resolved by Scriba and tracked in the change history.
Six phases, with a verification gate between each one
Scriba is a system of specialized models and deterministic components, coordinated by a fully proprietary orchestration layer. Every input is routed to the component that consumes it.
Parsing
Syntax tree built with parsers specific to each language and dialect.
Semantic analysis
Types, dependencies, control flow and side effects.
Logic reconstruction
Business rules made explicit, traced and separated from the legacy runtime.
Multi-model
Specialized models in an ensemble: disagreement triggers an escalation.
Validation
Compilation, types, client rules, differential tests on behaviour.
Generation
Idiomatic code in the target, project structure, build and evidence.
Deterministic verification gates: no phase moves forward unless the previous one has been verified.
How a migration is set up
Three typical scopes, to show how working with Scriba looks. They do not describe completed projects and report no results.
Mainframe batch
Financial services- Typical scope
- A COBOL batch on z/OS with its copybooks, parameter tables and the JCL that runs it: a closed process that still runs today and can therefore be compared.
- Declared target
- Java with Spring Boot and Spring Batch, schema managed with Liquibase, following the rules in instructions.md.
- How it is verified
- Output files and database extracts compared bit for bit with those of the original system on the same inputs.
Online function on IBM i
Insurance- Typical scope
- A complete RPG online function: its 5250 terminal screens, the programs and files involved, with external dependencies declared as interfaces.
- Declared target
- Java or C#/.NET backend with REST APIs and a React frontend, following your team's conventions.
- How it is verified
- End-to-end tests on the screen flows, plus database extracts taken before and after execution.
Calculation module
Manufacturing- Typical scope
- A PL/I calculation module with well-defined interfaces to the rest of the system and parameter tables that drive its logic.
- Declared target
- Java or C#, with documented compatibility components for decimal arithmetic and return codes.
- How it is verified
- Unit tests for every business rule and differential tests on the reference datasets, with per-field tolerances where declared.
Where legacy systems still run the business
Banking
Core banking, batch, payments
Insurance
Policies, claims, reserves
Leasing
Contracts, schedules, transactions
Logistics
Shipping, warehousing, tracking
Manufacturing
ERP, production, supply chain
Public sector
Taxes, registries, services
What would a manual migration cost?
The simulator estimates the cost of a manual migration from the parameters you enter and compares it with a savings assumption that you set.
It is an indicative estimate, not a quote: Scriba's price is fixed and guaranteed, and is set after analysing your package.
How do you prove that the migrated system behaves like the original?
It's the question to ask any vendor. We answer with tests and quality gates agreed in advance, on a scope of your own of up to 30,000 lines.