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 🙏

© 2026 – Pkg Stats / Ryan Hefner

achat

v1.0.0

Published

Chat that scales predictably.

Downloads

7

Readme

chat

A technology showcase.

Why?

This repo is designed as a showcase for how to build apps that scale.

We have built chat example apps a couple of times before and the response has been good,
this time our mission is to operate within a very tight set of constraints:

  1. No Servers
  2. Progressive Enhancement (Works when JavaScript is OFF!)
  3. Precisely Predictable (Linear) Performance

What?

Chat. Probably the most scalable implementation you will see.

How?

Lambda

S3

We use S3 to render our initial page and host all our static content. https://aws.amazon.com/s3/

API Gateway

API Gateway routes the requests we make from the front-end through to the Lambda function that will process it. https://aws.amazon.com/api-gateway/

Lambda

https://aws.amazon.com/lambda/

DynamoDB

https://aws.amazon.com/dynamodb/

Cognito

IOT

WebRTC?

Over 50% of browsers (Firefox & Chrome) which means we can cut-out paying for IOT messages for the people who are using good browsers.

http://caniuse.com/#feat=rtcpeerconnection

This also means when we use Electron

How much ($£€) ?

How much does all of this cost...?

Let's break down the cost in the order of the Tech Stack.

S3

https://aws.amazon.com/s3/pricing/

API Gateway

https://aws.amazon.com/api-gateway/pricing/

What is a read/write capacity unit? http://aws.amazon.com/dynamodb/faqs/#What_is_a_readwrite_capacity_unit

Lambda

https://aws.amazon.com/lambda/pricing/

DynamoDB

https://aws.amazon.com/dynamodb/pricing/

Cognito

Amazon Cognito costs $0.15 for each 10,000 sync operations and $0.15 per GB of sync store per month.

https://aws.amazon.com/cognito/pricing/

IOT

$5 per million messages.

A message is a 512-byte block of data processed by AWS IoT – either published to or delivered by the Service. For example, a 900-byte payload is billed as two messages.

https://aws.amazon.com/iot/pricing/

Background Reading

Learning by Doing

  • Access HTTP Headers: http://stackoverflow.com/questions/31372167/how-to-access-http-headers-for-request-to-aws-api-gateway-using-lambda
  • Cookies on Lambda: http://stackoverflow.com/questions/31851860/access-http-request-headers-query-string-cookies-body-object-in-lambda-with
  • Invoke Lambda by HTTP Request: http://stackoverflow.com/questions/29877220/invoke-a-aws-lambda-function-by-a-http-request

Discussion

We considered using S3 as our primary data store, but soon realized its not that "simple"... see: Why does S3 still not support Appending? https://news.ycombinator.com/item?id=10746969