Construct Hub Developer Preview
We are excited to announce the Construct Hub developer preview. It is a one-stop destination for finding, reusing and sharing constructs authored by AWS, AWS Partner Network partners, third parties, and the developer community. In the preview version of the website, we list constructs for Python and TypeScript programming languages. CDK constructs are cloud architecture building blocks and patterns that you can use to stand up complete production-ready cloud applications. The constructs listed in the Construct Hub are authored using the AWS Cloud Development Kit (AWS CDK), CDK for Kubernetes (CDK8s) and CDK for Terraform (CDKtf).
We define constructs as classes, which define a “piece of system state”. Constructs can be composed together to form higher-level building blocks which represent more complex state. AWS, enterprises, start-ups, and individual developers use CDK constructs to share proven architecture patterns as reusable code libraries, so that everyone can benefit from the collective wisdom of the community.
As the CDK developer community has grown, customers have told us that they do not have an easy way to find the construct libraries created by the community because the constructs have been published through various package managers. The Construct Hub will now be a central location where CDK users can find a comprehensive collection of constructs to help them build their applications. The Construct Hub makes it easier for developers to find the high-level building blocks they need to build their applications by listing publicly released construct libraries.
I love the new Construct Hub. It makes it so easy to find already implemented constructs that solve the use cases I need to build. From an author’s point of view, it is great as it increases visibility for your construct libraries and lets people find your projects way easier. The Construct Hub really helps the maintainers and the users of third-party libraries to find each other and to build a wonderful ecosystem.
The Construct Hub is available today in preview and is free to use.
Discovering and using constructs
Browse to https://constructs.dev and search for constructs based on keywords such as names of AWS services used (e.g., “eks”, “dynamodb”), the library’s author (e.g., “pahud”), or the target provisioning engine (e.g., “cdktf”, “cdk8s”). Examples of constructs you can find include datadog-cdk-constructs that instruments Python and Node.js Lambda functions with Datadog, cdk-gitlab-runner that creates a GitLab Runner and executes a pipeline job, cdk-k3s-cluster that deploys a K3s cluster, and many more. The Construct Hub website also includes links to Getting Started resources. Below is an example of search results for constructs that include the “bucket” keyword and support the Python programming language:
Construct libraries listed on the Construct Hub include a detail page with instructions on how to install the package (click “Use Construct”) and an API reference that describes all the classes, interfaces, enums and data types in this library. The API reference and code samples are displayed in the selected programming language and are automatically generated from type information produced by the JSII compiler (JSII is a TypeScript-based programming language for creating multi-language libraries).
In order for your construct to be listed on the Construct Hub, you need to make sure it is authored with the following criteria:
- Published to the npmjs.com registry
- Uses a permissive license (Apache, BSD, MIT)
- Annotated with one of the supported keywords (
- Compiled with JSII
As a construct library publisher, you can improve the presentation of your construct library on the Construct Hub by:
- Adding links to the construct source code and documentation
- Including a README file with usage instructions
- Adding relevant keywords that will be displayed on the package page and can be used for search
Things to know
Here are a couple of things to keep in mind:
- We are working on a construct-hub library to enable customers deploy an instance of Construct Hub for internal use
- The constructs are owned by the publishers of the packages. Constructs are user-generated content that are governed by their own license terms which is displayed in the search results and can be accessed directly through the hyperlinked package page
- CDK Construct Catalog (https://awscdk.io) now redirects to Construct Hub (https://constructs.dev)
We look forward to collaborating with you!
This is an open-source preview, and we need your help to make the Construct Hub the best end-to-end experience for discovering and sharing constructs. You can follow the guidelines above for listing new constructs on the Construct Hub, review your existing constructs (README, code samples) and/or add support for additional programming languages.
Visit the project board in the CDK Labs at AWS GitHub repository to learn about continuing development as the Construct Hub approaches stability. Open an issue for any bugs you may encounter as well as features that you would like to see added, file a pull request, or star the project to show us you care. The Construct Hub FAQ contains additional details on the project. You are also welcome to join the
#construct-hub-dev channel in CDK community Slack workspace.
About the author
Alex Pulver is a Sr. Partner Solutions Architect at AWS SaaS Factory team. He works with AWS Partners at any stage of their software-as-a-service (SaaS) journey to help build new products, migrate existing applications, or optimize SaaS solutions on AWS. His ares of interest include builder experience (e.g., developer tools, DevOps culture, CI/CD), containers, security, IoT, and AWS multi-account strategy.