npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

must-cdk

v0.0.111

Published

A collection of AWS CDK constructs that implement common architectural patterns and best practices for AWS services. This library aims to simplify the deployment of common cloud infrastructure patterns while maintaining security, scalability, and operatio

Readme

Must CDK

A collection of AWS CDK constructs that implement common architectural patterns and best practices for AWS services. This library aims to simplify the deployment of common cloud infrastructure patterns while maintaining security, scalability, and operational excellence.

Getting Started

TypeScript/JavaScript

npm install must-cdk
# or
yarn add must-cdk

Python

pip install must-cdk

CLI Tool

Install globally to quickly initialize Amplify projects:

# Install CLI globally
npm install -g must-cdk

# Initialize Amplify project with React template
must-cdk amplify init

# Initialize in specific directory
must-cdk amplify init -d /path/to/project

Features

🏗️ Amplify Patterns

  • Next.js application deployment optimizations
  • Multi-environment branch configurations
  • Custom domain and SSL setup
  • GitHub personal access token authentication
  • Automated build and deployment pipelines
  • Migration path to GitHub Apps for production
  • CLI tool for quick project initialization

🚢 ECS CodeDeploy Patterns

  • Blue/Green deployment strategies
  • Load balanced service deployments
  • Auto-scaling configurations
  • Health check implementations
  • Environment variables support
  • Secrets management integration
  • Custom container names
  • Enhanced container configuration
  • Container access after creation

🌐 CloudFront Patterns

  • API Gateway integrations
  • Multi-origin configurations
  • Cross-region setups
  • Security headers and WAF integration
  • Caching strategies
  • Custom domain configurations

🔌 API Gateway Lambda Patterns

  • REST API implementations
  • WebSocket API setups
  • Custom domain configurations
  • Lambda authorizers
  • Rate limiting and API key management

🏷️ Tags Management

Must CDK provides a unified tagging system that automatically applies tags to all resources across all constructs. This system supports both environment-based tags and construct-specific tags.

Environment Tags

Set tags globally using the TAGS environment variable:

# Format: key1=value1,key2=value2
export TAGS="Product=MyApp,Owner=TeamName,Environment=production,CostCenter=engineering"

# Deploy with environment tags
cdk deploy

Construct-Specific Tags

Add tags directly to individual constructs:

// TypeScript
new AmplifyApp(this, 'MyApp', {
  appName: 'my-application',
  repository: 'https://github.com/user/repo',
  tags: {
    Team: 'frontend',
    Version: 'v1.0.0',
    Component: 'web-app'
  }
});
# Python
AmplifyApp(self, 'MyApp',
  app_name='my-application',
  repository='https://github.com/user/repo',
  tags={
    'Team': 'frontend',
    'Version': 'v1.0.0',
    'Component': 'web-app'
  }
)

Tag Precedence

Environment tags take precedence over construct-specific tags:

# Environment variable
export TAGS="Environment=production,Team=platform"

# In your code
tags: {
  Team: 'frontend',      # Will be overridden by environment
  Component: 'web-app'   # Will be preserved
}

# Final tags applied:
# Environment=production (from env)
# Team=platform (from env, overrides construct tag)
# Component=web-app (from construct)

Documentation

Detailed documentation for each construct can be found in:

Examples

The examples directory contains working examples for each construct category:

  • Amplify deployment patterns
  • ECS with CodeDeploy configurations
  • CloudFront distribution setups
  • API Gateway with Lambda integrations

Each example is provided in both TypeScript and Python with detailed comments and instructions.