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 enterRunning 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.jsonIf 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 typescriptNext, 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 @aws-amplify/backend-cliNext steps
We recommend the following next steps: