{"id":13625905,"url":"https://github.com/unboundedsystems/adapt","last_synced_at":"2025-04-13T06:20:50.533Z","repository":{"id":38455473,"uuid":"202770236","full_name":"unboundedsystems/adapt","owner":"unboundedsystems","description":"ReactJS for your infrastructure. Create and deploy full-stack apps to any infrastructure using the power of React.","archived":false,"fork":false,"pushed_at":"2023-03-04T04:46:16.000Z","size":13465,"stargazers_count":403,"open_issues_count":30,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T04:59:36.528Z","etag":null,"topics":["aws","cloud","containers","deploy","deployment","devops","docker","infrastructure-as-code","javascript","k8s","kubernetes","nodejs","react","reactjs","typescript"],"latest_commit_sha":null,"homepage":"https://adaptjs.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unboundedsystems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-08-16T17:18:33.000Z","updated_at":"2025-02-18T08:22:04.000Z","dependencies_parsed_at":"2023-12-02T16:44:54.846Z","dependency_job_id":null,"html_url":"https://github.com/unboundedsystems/adapt","commit_stats":{"total_commits":2045,"total_committers":6,"mean_commits":340.8333333333333,"dds":"0.35892420537897307","last_synced_commit":"b031be916872376ad3108310bf9d47e02d824746"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unboundedsystems%2Fadapt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unboundedsystems%2Fadapt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unboundedsystems%2Fadapt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unboundedsystems%2Fadapt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unboundedsystems","download_url":"https://codeload.github.com/unboundedsystems/adapt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665756,"owners_count":21142123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloud","containers","deploy","deployment","devops","docker","infrastructure-as-code","javascript","k8s","kubernetes","nodejs","react","reactjs","typescript"],"created_at":"2024-08-01T21:02:05.132Z","updated_at":"2025-04-13T06:20:50.510Z","avatar_url":"https://github.com/unboundedsystems.png","language":"TypeScript","readme":"[![Adapt logo](https://adaptjs.org/img/logo_lockup.svg)](https://adaptjs.org)\n\n[![npm](https://img.shields.io/npm/v/@adpt/cli?color=blue)](https://www.npmjs.com/package/@adpt/cli)\n![npm](https://img.shields.io/npm/dt/@adpt/core)\n[![Gitter](https://badges.gitter.im/UnboundedSystems/Adapt.svg)](https://gitter.im/UnboundedSystems/Adapt)\n[![License](https://img.shields.io/github/license/unboundedsystems/adapt)](https://opensource.org/licenses/Apache-2.0)\n\n# Adapt - ReactJS for your infrastructure.\n\nAdaptJS is a system to easily, reliably, and repeatably deploy your full-stack applications.  Adapt specifications look like [React](https://reactjs.org) apps, but instead of rendering browser DOM elements like `\u003cinput\u003e`, or `\u003cdiv\u003e`, Adapt specifications use elements like AWS `\u003cEC2Instance\u003e`, Kubernetes `\u003cPod\u003e`, or `\u003cMongoDB\u003e` database.\nAn Adapt description for a complete front end and back end app stack looks like this:\n\n```jsx\nimport Adapt from \"@adpt/core\";\nimport { NodeService, ReactApp } from \"@adpt/cloud/nodejs\";\nimport { Postgres } from \"@adpt/cloud/postgres\";\n\nfunction MyApp() {\n  const pg = Adapt.handle();\n\n  return (\n    \u003cAdapt.Group\u003e\n      \u003cReactApp srcDir=\"../frontend\" /\u003e\n      \u003cNodeService srcDir=\"../backend\" connectTo={pg} /\u003e\n      \u003cPostgres handle={pg} /\u003e\n    \u003c/Adapt.Group\u003e\n  );\n}\n```\n\nEach of the components above renders to simpler components until they get to primitive infrastructure.\nYou can also specify a style sheet to customize how components render to infrastructure (e.g., Docker vs. Kubernetes vs. AWS).\nStyles can also swap out components entirely, for example, using a test database for your test environment and a hosted database service for production.\n\nIf you're already familiar with React, you'll feel right at home with Adapt.\nBut if not, don't worry, knowledge of React isn't required to start using Adapt.\nYou can get started with a starter, write your code and deploy, and come back to the Adapt specification when you need to change how it gets deployed.\n\n## Getting Started\n\nFor a new project, it's easy to get started with Adapt by using a starter template.\nThe [Getting Started Guide](https://adaptjs.org/docs/getting_started) will walk through installing Adapt and deploying your first starter app.\n\n## Creating and deploying an app\n\nThis example creates a new full-stack app from a starter template.\nIt has a [React](https://reactjs.org) UI, an [Nginx](https://nginx.org) web server, a [Node.js](https://nodejs.org) API server, and a [Postgres](https://postgresql.org) database, then deploys it to [Kubernetes](https://kubernetes.io/):\n\n```bash\n# Install adapt\nnpm install -g @adpt/cli\n\n# Create a new app from a starter template\nadapt new hello-react-node-postgres ./myapp\ncd myapp/deploy\n\n# Deploy full stack locally using Docker\nadapt run laptop\n\n# Or just as easily deploy everything to Kubernetes\nadapt run k8s-test\n```\n\n## Adapt in action\n\nThis demo shows using Adapt to create and deploy a simple app called MovieDB that has a [React](https://reactjs.org) UI, an [Nginx](https://nginx.org) web server, an Nginx URL router, a [Node.js](https://nodejs.org) API server, and a [Postgres](https://postgresql.org) database, then deploys it to [Kubernetes](https://kubernetes.io/):\n\n![Adapt in action](https://adaptjs.org/docs/assets/getting_started/adapt-demo-scaled.gif)\n\n## More info\n\n* [Adaptjs.org](https://adaptjs.org)\n\n    Learn more about Adapt.\n\n* [Getting Started Guide](https://adaptjs.org/docs/getting_started)\n\n    This guide will walk you through setting up Adapt and then deploying an example MovieDB app.\n\n* [Deploying on Google Kubernetes Engine](https://adaptjs.org/blog/2020/01/10/simple-hosting-react-app-on-google-cloud)\n\n* [Adapt Documentation](https://adaptjs.org/docs)\n\n    Adapt tutorials, API References, and more.\n\n## Getting Help\n\n[![Gitter](https://badges.gitter.im/UnboundedSystems/Adapt.svg)](https://gitter.im/UnboundedSystems/Adapt)\n\nWe'd love to hear about your experience with Adapt!\nJoin us on our [Gitter channel](https://gitter.im/UnboundedSystems/Adapt) to ask questions or to give us your feedback and suggestions.\n\nIf you've found a bug, you can also [file an issue](https://gitlab.com/unboundedsystems/adapt/issues).\n\n## Sponsors\n[\u003cimg alt=\"Adaptable.io\" src=\"https://adaptable.io/img/color%20lockup.svg\" width=\"200px\"\u003e](https://adaptable.io)\n\nAdaptable is the easiest way to deploy your app. [Deploy an app now](https://adaptable.io)!\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funboundedsystems%2Fadapt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funboundedsystems%2Fadapt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funboundedsystems%2Fadapt/lists"}