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

toolbox-optimizer-docker

v2.7.1-alpha.0

Published

Thin wrapper around the amp-optimizer

Downloads

27

Readme

Introduction

amp-optimizer-docker is a Docker container that exposes an AMP Optimizer server for optimizing your amphtml using the same server-side-rendering optimizations as the Google AMP Cache.

How it works

The AMP Optimizer server accepts POST requests at port 3000 and requires an HTML body. It then runs the HTML through the optimizer package, and returns the result as the response.

Configuration

There are two different kinds of configuration you can supply to the container:

  1. Static configuration via environment variables: On startup, the container will search for environment variables prefixed with AMP_OPTIMIZER_ and pass the values as configuration options when initializing the underlying optimizer library. The full list of options are available here. Options should be specified in SCREAMING_SNAKE_CASE as opposed to camelCase. For example, in order to configure the preloadHeroImage option, you would declare the environment variable named: AMP_OPTIMIZER_PRELOAD_HERO_IMAGE.
  2. Per-request configuration: there are some options that can only be set on a per-request basis. For example, the canonical flag for specifying an AMP page's canonical link. These can be specified via query params, e.g. /?canonical=http://example.com.

Usage

Running a basic optimizer server

via:

$ docker pull amp-toolbox-docker-optimizer
$ docker run -it amp-toolbox-docker-optimizer

More complex configurations

The amp-toolbox-docker-optimizer image can be layered and composed using any of the usual container orchestration tools, like Docker Compose or Kubernetes. An example of using Docker Compose is provided under the demo directory.

Best Practice: Cache server-side-rendered AMPs

To achieve best performance, transformations shouldn't be applied for every request. Instead, transformations should only be applied the first time a page is requested, and the results then cached. Caching can happen on the CDN level, on the site's internal infrastructure (e.g.: Memcached), or even on the server itself, if the set of pages is small enough to fit in memory.