Stack | Options |
---|---|
Infrastructure | AWS CDK SST Pulumi |
Database | Prisma EdgeDB TypeORM |
Frontend and Backend (API) | Swagger GraphQL tRPC |
AWS Cloud Development Kit - Website
import * as cdk from 'aws-cdk-lib';
import {NodejsFunction} from 'aws-cdk-lib/aws-lambda-nodejs';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as path from 'path';
export class CdkStarterStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const myFunction = new NodejsFunction(this, 'my-function', {
memorySize: 1024,
timeout: cdk.Duration.seconds(5),
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'main',
entry: path.join(__dirname, `/../src/my-lambda/index.ts`),
});
}
}
Serverless Stack - Website
import * as sst from "@serverless-stack/resources";
export default class MyStack extends sst.Stack {
constructor(scope: sst.App, id: string, props?: sst.StackProps) {
super(scope, id, props);
// Create the HTTP API
const api = new Api(stack, "Api", {
routes: {
"GET /notes": "src/list.handler",
"GET /notes/{id}": "src/get.handler",
"PUT /notes/{id}": "src/update.handler",
},
});
// Show the API endpoint in the output
stack.addOutputs({
ApiEndpoint: api.url,
});
}
}
Universal IaC - Website
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
// Create an AWS resource (S3 Bucket)
const bucket = new aws.s3.Bucket("my-bucket");
// Export the name of the bucket
export const bucketName = bucket.id;
ORM a la Hibernate/Entity Framework - Website
Database
Prisma Client - Website
Database
Prisma Client for TypeScript
Graph-relational database - Website
Database
EdgeDB TypeScript Client
The Wild West
In all seriousness, consider that using TypeScript in a backend will pay massive dividends in run-time safety for your applications.
Back-end
Convert JSON into code - Website
Front-end
OpenAPI Specification - Website
Back-end
OpenAPI Specification - Website
Front-end
RTK-query Codegen - Website
Front-end
RTK Codegen
GraphQL Specification - Website
Back-end
Now Playing Apollo GraphQL Server
Multiple Options - Website
Front-end
Now Playing GraphQL React App
End-to-end typesafe APIs - Website
Back-end
trpc-server -> tmdb-router
TypeScript RPC - Website
Front-end
trpc-client
Slides + Code