Skip to content

Effortless AWS

Effortless AWS Deploy in seconds API, database, queues — one deploy Zero infrastructure code Just TypeScript

Export handlers, deploy to AWS. No infrastructure files needed.

Ship the whole product

API, database, queues, email, website — one project, one deploy, automatic IAM wiring.

Deploy in seconds

Direct AWS API calls. No CloudFormation, no state files. Full deploy in ~5-10 seconds.

Type safety everywhere

Define a table once — get typed clients, typed streams, and runtime validation automatically.

Serverless by default

Pay per use, scale to zero, multi-AZ redundancy. Nothing runs when nobody is using your product.

Everything a product needs

Your product needsEffortless handlerAWS resources created
REST APIdefineApiLambda + Function URL + IAM
DatabasedefineTableDynamoDB + optional stream Lambda
Background jobsdefineFifoQueueSQS FIFO + consumer Lambda
File storagedefineBucketS3 + optional event Lambda
Transactional emaildefineMailerSES + DKIM identity
Website / SSR appdefineAppCloudFront + Lambda + S3
Static site / SPAdefineStaticSiteCloudFront + S3

All in the same project, all deployed with one command, all with automatic IAM wiring between them.

All definitions

Build a todo app

Each tab adds a layer — every export creates real AWS infrastructure.

Type and schema — shared across handlers.

src/todo.ts
import { z } from "zod";
export type Todo = { id: string; title: string; done: boolean };
export const Command = z.discriminatedUnion("action", [
z.object({ action: z.literal("create"), title: z.string() }),
z.object({ action: z.literal("done"), id: z.string(), done: z.boolean() }),
]);

Deploy

Terminal window
$ eff deploy
Deployed 2 handler(s) in 6s:
[table] todos arn:aws:dynamodb:eu-west-1:***:table/todo-app-dev-todos
[api] todoApi https://abc123.lambda-url.eu-west-1.on.aws/todos

Need a separate environment? Add --stage:

Terminal window
$ eff deploy --stage prod
Deployed 2 handler(s) in 6s:
[table] todos arn:aws:dynamodb:eu-west-1:***:table/todo-app-prod-todos
[api] todoApi https://xyz789.lambda-url.eu-west-1.on.aws/todos

Fully isolated infrastructure — separate tables, Lambdas, Function URLs. No shared state between stages.

See how Effortless compares to SST, Nitric, Serverless Framework, and others — detailed comparisons.