A TypeScript framework for building type-safe cloud applications with the AWS CDK, unifying infrastructure and runtime code.
Punchcard is a TypeScript framework for building cloud applications with the AWS CDK. It unifies infrastructure and runtime code, allowing developers to declare AWS resources and implement logic in a single application. It solves the problem of disjointed cloud development by treating AWS services as type-safe, generic objects—making them feel like a standard library.
TypeScript developers building serverless or cloud-native applications on AWS who want type safety and a unified development experience for infrastructure and runtime code.
Developers choose Punchcard for its seamless integration of infrastructure and runtime code, eliminating context switching and providing compile-time type safety across AWS services like DynamoDB, SNS, and Lambda, which reduces errors and improves developer productivity.
Type-safe AWS infrastructure.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Represents AWS services as generic, statically typed objects (e.g., DynamoDB as Map<K, V>), enabling compile-time checks and reducing runtime errors, as shown in the DynamoDB DSL examples.
Allows declaring infrastructure and writing runtime logic in a single TypeScript application, eliminating context switching between CDK stacks and Lambda code.
Dependencies automatically configure IAM policies, environment variables, and SDK clients for Lambda Functions, simplifying security and access management.
Provides a chainable API (map, filter, collect) across SNS, SQS, and Kinesis, making stream pipelines feel like in-memory arrays, as demonstrated in the README's Glue integration example.
Tightly coupled to AWS CDK and specific AWS services; porting to other clouds or switching infrastructure tools would require a complete rewrite.
Focuses on a subset of AWS services (e.g., DynamoDB, SNS, Kinesis); for unsupported services, developers must drop to raw CDK or SDK, breaking the type-safe workflow.
Requires deep knowledge of TypeScript, AWS CDK, and Punchcard's custom abstractions (e.g., Shapes, Dependency system), which can overwhelm teams new to any of these.