Skip to content

Amazon Modern Widgets

Beautiful, fast and SEO-friendly Amazon product cards for your blog, powered by your own server, your partner tag and the Amazon Creators API.

Get started GitHub User guide

Product card rendered by AMW

Why AMW?

  • Modern product cards


    Image, title, price, savings badge and a localized call to action, styled independently of your theme. The whole card links to Amazon with your partner tag.

  • Fast pages


    One deferred, brotli-compressed script, lazy loading as cards scroll into view, and three cache layers in front of the Amazon API.

  • SEO friendly


    schema.org Product JSON-LD for every product and sponsored nofollow links.

  • Seven languages


    French, English, Spanish, German, Italian, Portuguese and Dutch, picked from your page's lang.

  • Secure by default


    Untrusted data never rendered as HTML, strict validation, per-IP rate limiting, non-root Docker image.

  • Easy to run


    Docker image for amd64 and arm64, Docker Compose with Redis, npm package, or ./start.sh from source.

Three guides

  • User guide


    What AMW does, the product cards, caching, the HTTP API and Swagger UI, security, with screenshots.

    Read the user guide

  • Installation


    Step by step: credentials, Docker or npm, reverse proxy on your blog's domain, configuration, verification, upgrade and troubleshooting.

    Install AMW

  • Developer guide


    Architecture, code layout, dev container, tests, CI/CD, releases and the contribution workflow.

    Contribute

Quick start

cp .env.example .env      # add your Amazon Creators API credentials
./start.sh docker         # AMW + Redis on http://localhost:9080/item
<div class="amw" id="B084DN3XVN"></div>
<script src="/item/widget.js" defer></script>

Works with any website or CMS that lets you insert HTML: Ghost, WordPress, Drupal, Joomla, Dotclear, static site generators...

Source code github.com/ltoinel/amw
npm package amazon-modern-widgets
Docker images ltoinel/amw and ghcr.io/ltoinel/amw
Tutorial (French) Amazon affiliation with Modern Widgets
Contact GitHub issues: share your blog posts and feedback
License MIT