Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.modelcode.ai/llms.txt

Use this file to discover all available pages before exploring further.

keeps expanding the kinds of modernization projects it can take on. This page describes what is supported today so you can pick projects that will produce the best results, and know what to expect before you start.
This list reflects the current state of the platform. We are actively adding support for more languages, frameworks, and application types — check back regularly, and reach out to support@modelcode.ai if you have a use case you’d like to see covered.

At a Glance

currently supports backend migration projects that match the criteria below.
DimensionWhat’s supported today
Project shapeOne source repository → one target repository (1:1)
Transformation typeLanguage-to-language translation or framework upgrade
Source/target languagesPython, Java, Go, C#, PHP, Ruby, Kotlin, Rust, Scala, C++, C, Groovy, Clojure, Ada
Application shapeRESTful services or CLI tools
Frontend codeComing soon!
Runtime environmentLinux / macOS (POSIX)
FrameworksAll common frameworks and micro-frameworks for the supported languages
Dev environmentMust be set up by a developer locally or on a virtual machine (install, build, test)
TestingTestable without a UI

Project Shape: One-to-One Migration

A supported project starts with one source repository and produces one target repository. The two can be:
  • The same repository, migrated in place (for example, a framework upgrade)
  • A brand-new repository that is a 1:1 rewrite of the original (for example, a language translation)
Monorepo decomposition, service splits, and multi-repo merges are not yet supported — but multi-repo support is coming soon.

Transformation Types

Two categories of transformation are supported:
  • Language-to-language translation — e.g. Ada → C++, Python 2.7 → Python 3.12 with code-level changes
  • Framework upgrade — e.g. Spring Boot 2 → Spring Boot 3, Django 2 → Django 5
Both can be combined in a single project (for example, rewriting a Ruby on Rails app into Go with Gin).

Supported Languages

supports modernization projects whose source and/or target is one of the following languages:

Python

Java

Go

C#

PHP

Ruby

Kotlin

Rust

Scala

C++

C

Groovy

Clojure

Ada

For each of the above, all common frameworks and micro-frameworks (web, RPC, CLI, background worker, etc.) are in scope.

Application Shape

The target application must be one of:
  • A RESTful service (HTTP API, gRPC gateways exposed as REST, etc.)
  • A command-line (CLI) tool
It must be testable without a UI validates migrations by running the build, tests, and programmatic checks. If the only way to exercise the application is through a graphical interface, it’s not a fit today.

What’s Not Supported Yet

To set expectations clearly, the following are not currently supported:
  • Frontend code of any kind — this includes web apps (React, Angular, Vue, server-rendered HTML/templating), mobile apps (iOS/Android/React Native), and desktop apps (Electron, WPF, etc.). Frontend support is coming soon!
  • Windows-only projects that cannot run in a Linux/macOS (POSIX) environment
  • Projects whose build, test, or run steps cannot be reproduced on a local machine or VM by a developer
  • Multi-repo topologies (monolith decomposition, microservice merges, cross-repo rewrites). Multi-repo support is coming soon!
If your project includes a frontend alongside a backend you want migrated, consider scoping the migration to the backend only.

Development Environment Requirements

Before starting a migration, a developer on your team should be able to:
  1. Clone the repository onto a Linux or macOS machine (or VM / container)
  2. Install dependencies
  3. Build the project
  4. Run its test suite
needs to be able to reproduce these steps in its sandbox. See Build Environment for how to configure install/build/test commands.

Checking Whether Your Project Is Supported

When you create a project, analyzes your source repository and flags in the Project Spec whether it matches the supported criteria above. If it doesn’t, you’ll see a notice at the top of the Project Spec with an explanation. See Project Knowledge for how this surfaces in the UI.

Still Not Sure?

If you’re unsure whether your project qualifies, or you have a modernization in mind that doesn’t quite fit, we’d love to hear about it — reach out to support@modelcode.ai. Your use case may already be on the roadmap.

Coming to Morph in May…