Open-source project
aws-samples/aws-cdk-examples avatar
aws-samples/aws-cdk-examples

aws-cdk-examples: AWS's official sample repo for the CDK, organised by language rather than by service

Example projects using the AWS CDK

5,660 stars2,468 forksTypeScriptApache-2.0

At a glance

What is it?
aws-samples/aws-cdk-examples is the official collection of example projects for the AWS Cloud Development Kit, split into TypeScript, Python, C#, Java and Go folders, aimed at readers who already know the basics.
Who is it for?
Use aws-cdk-examples as a pattern library once you have finished the CDK Developer Guide or Workshop and want to see how a service or infrastructure shape is expressed in your own language. Do not use it as a first tutorial, as a dependency you pin to a release, or as evidence that every pattern exists in every language, and check the folder for your language before you plan around it.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • aws-samples/aws-cdk-examples5,660 ★ · +25
Star history
Repository2026-09-232026-11-14
aws-samples/aws-cdk-examples5.6k5.7k

25 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The repository is a folder per language, so the example you want may live in a different tree

The top level of the repository has one directory for each supported CDK language: csharp, go, java, python and typescript. There is no shared folder of language-neutral examples. The README calls the repository the official list of CDK example code and says each language has its own subsection of examples.

The consequence for a reader is that a search by service name is not enough. If you know that a pattern exists in TypeScript, you still have to open the python or java directory and look for the equivalent by hand. Links in the README table point at typescript, python, csharp, java and go paths on the master branch, while the default branch of the repository is main, so verify that a link lands where you expect before you rely on it. Treat the directory listing in your language as the authoritative index.

Language parity is an aim, not a guarantee

The stated goal is complete language parity, meaning the same subset of examples exists in every language. The word used is ultimate aim, which describes a direction and not a current state. The repository does not promise that the Go folder matches the TypeScript folder today.

If you work in Go or Java and you are porting an example from another language, expect to translate some of it yourself. A missing example in your language is not evidence that the pattern cannot be built; it only means nobody has contributed it yet. The README invites contributions of fixes to existing examples and additions of new ones, so a gap in your language is also the easiest place to contribute. Before you commit a team to a sample as a template, open the matching directory and confirm the specific example is there.

Every language is marked Stable, and Developer Preview is reserved for future additions

The README links each language folder with a JSII language-stability label. TypeScript, Python, .NET, Java and Go are all listed as Stable. The text also says that as additional languages are added, they will appear marked as Developer Preview, and that some languages are fully supported by JSII while others are not.

In practice this means there is no preview-language caveat to account for today: all five folders carry the same label. It also means a sixth language, if one is added, would arrive with a weaker promise. Note that the label describes JSII support for the language, not the quality, age or test coverage of the examples in that folder. A Stable label tells you the language binding is supported. It does not tell you that a particular example was written recently or runs against the latest CDK.

It positions itself as an intermediate resource, so it skips the explanation a beginner needs

The README says this is considered an intermediate learning resource and should typically be referenced after reading the Developer Guide or the CDK Workshop. It then lists the Developer Guide, API Reference, the CDK repository, the Construct Hub and the Workshop as official resources, and AwesomeCDK as the one community resource.

The consequence is plain: the examples demonstrate a common service implementation or an infrastructure pattern, and they assume you already know what a construct, a stack and an app are. If you open the repository without that background, you will see code with little explanation of why it is shaped the way it is. Read the Developer Guide first, work through the Workshop, and then come here to see how a specific service is wired up in your language.

Larger applications are not in this repository, and only one is linked

A separate section lists larger examples hosted in their own repositories. At the moment the table has one entry, aws-cdk-changelogs-demo, owned by AWS. It is described as a full serverless Node.js application stack deployed using CDK, built from AWS Lambda, AWS Fargate, DynamoDB, Elasticache, S3 and CloudFront.

So the main repository is about small, focused patterns, and a complete multi-service application is somewhere else. If you want to see how many services fit together in one CDK app, follow the link to that separate repository. Note also that the table is open to additions: the README tells owners of other repositories to read the CONTRIBUTING guide if they want to be listed. A single row is the entire catalogue of larger examples, so do not expect this section to cover your industry or your architecture.

There are no GitHub releases, so you cannot pin an example to a tagged version

The repository has no GitHub releases. The last push was on 2026-11-02 and the repository is not archived, so changes are still landing on the main branch. Without tags, the only way to freeze the code you copied is to record a commit hash yourself.

This matters because the examples are written against the CDK as it exists when they are committed. If you copy an example today and your own project pins an older CDK version, the example may not match your version, and the repository gives you no release to check out that corresponds to it. Keep the commit hash you copied from in your own notes, and read your project's CDK version before you paste code across. Do not assume that the head of main matches the version of the library you have installed.

SNAPSHOT_TESTING.md and the mergify config sit at the root, so contributors have a process to follow

The top level includes SNAPSHOT_TESTING.md, a scripts directory, a mergify configuration file, a semantic.yml file, an editorconfig, a CONTRIBUTING.md and a CODE_OF_CONDUCT.md. Open SNAPSHOT_TESTING.md to see how the repository expects examples to be tested before you add one.

The repository is maintained as a contribution project with a documented process and automation around pull requests. A contributor should read CONTRIBUTING.md and SNAPSHOT_TESTING.md before opening a pull request. The license is Apache-2.0, and the repository also carries a NOTICE file, so keep both in view if you copy example code into a product and need to carry the license text along.

Editorial conclusion

Use aws-cdk-examples as a pattern library once you have finished the CDK Developer Guide or Workshop and want to see how a service or infrastructure shape is expressed in your own language. Do not use it as a first tutorial, as a dependency you pin to a release, or as evidence that every pattern exists in every language, and check the folder for your language before you plan around it.

Frequently asked questions

What is AWS CDK in simple terms?

The AWS Cloud Development Kit is the toolkit this repository's examples are written for. The examples show service implementations and infrastructure patterns you can use when building your own infrastructure with the CDK.

Which languages does aws-cdk-examples cover?

It has folders for TypeScript, Python, C#, Java and Go. All five are labelled Stable for JSII language stability, and the stated aim is complete parity across them.

Does aws-cdk-examples publish releases?

No. The repository has no GitHub releases, and the last push was on 2026-11-02. To freeze an example you have to record the commit you copied it from.

Official sources

  1. aws-samples/aws-cdk-examples on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/aws-samples-aws-cdk-examples.svg)](https://hysenlabs.com/projects/aws-samples-aws-cdk-examples)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/aws-samples-aws-cdk-examples.svg)](https://hysenlabs.com/projects/aws-samples-aws-cdk-examples)

Was this useful?