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

matrix-svelte

v0.0.3

Published

Svelte components for building Matrix clients

Readme

matrix-svelte

matrix-svelte is a collection of Svelte components that may be helpful for building Matrix clients.

They are built for the Inverse project but presented independently in the hope that they might be useful.

Development

To run the demonstation app:

npm install
npm run dev -- --open

Design Principles

  • We value visual clarity, accessibility and visual stability.

"Rules" (none of these are set in stone, and they also may conflict with each other in some cases):

  • It should be clear which component is selected, and there should be a visible cursor for arrow-key navigation.
  • Everything should be possible and convenient to do with keyboard controls.
  • We sometimes take inspiration from Vim.
  • Nothing should move around unless I triggered it:
    • with notable exceptions:
      • the timeline scrolls when I am at the bottom.
      • the room list may re-order based on activity.
    • this means we leave extra space for things to appear when needed.
  • nothing important should happen on hover

Code style

Always run all the tests, formatting and linting before making a pull request.

Make sure you have Playwright installed:

npx playwright install  # Only needed the first time

Then run all tests and checks:

npm run format
npm run test
npm run check
npm run lint

All of these should pass without warnings before any code is merged.

To create a new component

Building and Publishing Releases

To build the package:

npm run package

Update package.json with the correct version number, then:

npm publish

License

Copyright 2023 Andy Balaam and the matrix-svelte contributors.

Released under the Apache 2.0 license. See LICENSE for info.

Reasoning: I (Andy Balaam) generally prefer the AGPLv3 license, but Apache 2.0 is chosen for compatibility with Matrix Foundation libraries.

Code of conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Contributor Covenant