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 🙏

© 2024 – Pkg Stats / Ryan Hefner

static-jekyll-site

v1.18.0

Published

CDK Construct for generating a static site that can be updated automatically by AWS Code Pipeline

Downloads

16

Readme

What it does

Creates an a static Jekyll website running on AWS Fargate. The website is automatically rebuilt and redeployed when changes are pushed to Github courtesy of AWS Code Pipeline.

Assumptions

  • You are building the site using Jekyll.
  • You are hosting the site on a subdomain
  • Website will be public (IP restrictions coming soon!)
  • Website can be built using a Docker image that is supplied to the component

How to use it

This is an AWS CDK Construct which makes it dead simple to use in your CDK code.

Just install with npm:

npm add static-jekyll-site

And then require the construct and use it in your stack like any standard CDK resource!

import { StaticJekyllSite } from 'static-jekyll-site'

export class ExampleStack extends Stack {
  constructor(scope: App, id: string, props?: StackProps) {
    super(scope, id, props)

    const image = new DockerImageAsset(this, `${slug}-image`, {
      directory: './example/docs',
      repositoryName: slug
    })

    new StaticJekyllSite(this, 'example-site', {
      slug: slug,
      tld: 'mobileposse.com',
      subdomain: 'example.mobileposse.com',
      zoneid: 'ZXK70TKQ5GQBE',
      ssl: '[certificate-arn]',
      repo: 'static-site',
      branch: 'master',
      image: image
    })
  }
}

See the example directory for a functional example.

Requirements

  • This is designed to work with AWS CDK but feel free to borrow/moidfy the code to suit your purpose.

Motivation

We have several internal and external sites that all need to be updated automatically on a continual basis. We also make small changes to the underlying infrastructure and also to keep up with the latest CDK version and it's tedious making these changes in multiple projects/branches. A single CDK component to do everything seemed ideal.

How it Works

This is actually a relatively simple use of CDK Constructs. There are no custom resources involved, just a single, reusable Construct that can be shared across proejcts.

Building the Example Stack

The source code includes a reference CDK project inside the example directory which consists of a single static-jekyll-site.

You can build the stack with:

yarn cdk:deploy

And you can destroy it with:

yarn cdk:destroy

Publish to NPM (Official maintainers only)

Add npm user to your local machine (one time setup)

npm login

Push the release (you will be asked the new version)

yarn compile
npm publish --access public

Push the tagged source back up to Github

git push --tags