

Adapt - ReactJS for your infrastructure.
AdaptJS is a system to easily, reliably, and repeatably deploy your full-stack applications. Adapt specifications look like React apps, but instead of rendering browser DOM elements like <input>
, or <div>
, Adapt specifications use elements like AWS <EC2Instance>
, Kubernetes <Pod>
, or <MongoDB>
database.
If you're already familiar with React, you'll feel right at home with Adapt.
But if not, don't worry, knowledge of React isn't required to start using Adapt.
Getting Started
For a new project, it's easy to get started with Adapt by using a starter template.
The Getting Started Guide will walk through installing Adapt and deploying your first starter app.
Creating and deploying an app
This example creates a new full-stack app from a starter template.
It has a React UI, an Nginx web server, a Node.js API server, and a Postgres database, then deploys it to Kubernetes:
npm install -g @adpt/cli
adapt new hello-react-node-postgres ./myapp
cd myapp/deploy
adapt run laptop
adapt run k8s-test
An Adapt description for a complete front end and back end app stack looks like this:
import Adapt from "@adpt/core";
import { NodeService, ReactApp } from "@adpt/cloud/nodejs";
import { Postgres } from "@adpt/cloud/postgres";
function MyApp() {
const pg = Adapt.handle();
return (
<Adapt.Group>
<ReactApp srcDir="../frontend" />
<NodeService srcDir="../backend" connectTo={pg} />
<Postgres handle={pg} />
</Adapt.Group>
);
}
Adapt in action
This demo shows using Adapt to create and deploy a simple app called MovieDB that has a React UI, an Nginx web server, an Nginx URL router, a Node.js API server, and a Postgres database, then deploys it to Kubernetes:

More info
Getting Help

We'd love to hear about your experience with Adapt!
Join us on our Gitter channel to ask questions or to give us your feedback and suggestions.
If you've found a bug, you can also file an issue.