Scaffold generator for an SST-based AWS AppSync + DynamoDB repo with example User CRUD using @mikecbrant/appsyncjs-dynamo and tests using @mikecbrant/appsyncjs-test-utils.
npm install @mikecbrant/create-appsyncjsCreate a new repository scaffold for an AWS AppSync application using SST v3 (Pulumi), with DynamoDB and example User CRUD resolvers.
With pnpm (recommended):
``bash`
pnpm dlx @mikecbrant/create-appsyncjs my-app
With npm:
`bash`
npm create @mikecbrant/create-appsyncjs@latest my-appor
npx @mikecbrant/create-appsyncjs my-app
This will generate a new project in my-app/.
Flags to run non-interactively:
``
--entity, -e Entity name (singular, PascalCase)
--description, -d Project description for package.json
During interactive generation you'll be prompted for:
- Entity name (singular, PascalCase). Default: User.package.json
- Project description to place in .
- SST v3 config provisioning an AppSync GraphQL API and a DynamoDB table (via Pulumi)
- GraphQL schema and AppSync JS resolvers for a basic entity (get/put/update/delete)
- Resolvers authored in TypeScript that use @mikecbrant/appsyncjs-dynamo@mikecbrant/appsyncjs-test-utils
- Tests using to mock the AppSync util API
`bash`
cd my-app
pnpm i
pnpm build:resolvers
pnpm test
pnpm deploy # requires AWS credentials
You can import either the named create export or the default export object.
`js
// Named export
import { create } from '@mikecbrant/create-appsyncjs';
// Default export (object with create)
// import createApp from '@mikecbrant/create-appsyncjs';
// const { create } = createApp;
await create({
templateDir: '/path/to/pkg/scaffold',
dest: './my-app',
entity: 'User',
description: 'My AppSync + DynamoDB starter',
});
`
- Node.js >= 22 (both generator and generated project)
- Default AWS region: us-east-1create-sst
- Testing/tooling: Vitest; scripts align with (sst load-config -- vitest run)
- Authentication: default is an API key (no user pool).
Dependency strategy: the scaffold template includes hard-coded baseline versions for internal packages. Immediately after files are generated, the generator runs pnpm up --latest in the new project directory to bump all dependencies to their latest versions (including potential major releases). If this step fails (for example, if pnpm` isn’t installed), you can run it manually later.