Manual installation
To get started with AWS Amplify we recommend that you use our quickstart starter template. However, for some use cases, it may be preferable to start from scratch, either with a brand new directory or an existing frontend app. In that case we recommend to use npm with create-amplify
.
npm create amplify@latest
? Where should we create your project? (.) # press enter
Running this command will scaffold a lightweight Amplify project in your current project with the following files:
├── amplify/│ ├── auth/│ │ └── resource.ts│ ├── data/│ │ └── resource.ts│ ├── backend.ts│ ├── tsconfig.json│ └── package.json├── node_modules/├── .gitignore├── package-lock.json├── package.json└── tsconfig.json
If needed, you can manually install AWS Amplify without using create-amplify
or the starter template. This guide will walk you through how to initialize your project, install dependencies, and author your first backend.
Manual setup
First, if your frontend framework of choice doesn't have it already, create your project's package.json
with npm init -y
. Then, install the Amplify dependencies for building a backend:
npm add --save-dev @aws-amplify/backend@latest @aws-amplify/backend-cli@latest typescript
Next, create the entry point for your backend, amplify/backend.ts
, with the following code:
import { defineBackend } from '@aws-amplify/backend';
defineBackend({});
Now you can run npx ampx sandbox
to create your first backend!
You can use define*
functions to define your resources. For example, you can define authentication:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: true }});
Or define your data resource:
import { a, defineData, type ClientSchema } from '@aws-amplify/backend';
const schema = a.schema({ Todo: a.model({ content: a.string(), isDone: a.boolean() }) .authorization(allow => [allow.publicApiKey()])});
export type Schema = ClientSchema<typeof schema>;export const data = defineData({ schema});
Each of these newly defined resources are then imported and set in the backend definition:
import { defineBackend } from '@aws-amplify/backend';import { auth } from './auth/resource';import { data } from './data/resource';
defineBackend({ auth, data});
Upgrade existing projects
You can also update an existing frontend app. To upgrade existing Amplify code-first DX (Gen 2) apps, use your Node.js package manager (for example, npm
) to update relevant backend packages:
npm update @aws-amplify/backend@latest @aws-amplify/backend-cli@latest
Next steps
We recommend the following next steps: