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

taliesin

v0.0.0

Published

Poetic web UI

Downloads

27

Readme

Taliesin

Taliesin is a frontend web framework. It is intended to be the standard application framework of the BadOS operating system, but it can also be used outside of BadOS.

Philosophy

Taliesin has the following priorities:

Product

  • Immediate utility
    • over perfect solutions that may never ship
  • Addressing a need
    • over making money
  • Simple, text-based UI
    • over complex information architecture
  • Focused workflows
    • over multitasking
  • Standardized UX
    • over branding and individuality
  • Contentment with what can be done simply
    • over risk-taking and pushing the limits of what's possible

Code

  • Confidence in code
    • over magic that "just works"
  • Test-loving code
    • not just "testable code"
  • Self-sufficient code
    • that doesn't need a mountain of dependencies
  • A stable platform
    • enabling long-lived, evolving applications
  • Minimal hardware and software requirements
    • over the latest technology
  • A framework you could write yourself
    • but be glad you don't have to

Why???

I ask myself that question a lot, too! I observe the interminable parade of new technologies, each more dubiously valuable than the last, and wonder, "why? Why??? WHYYYYY."

Maybe we're searching for the Holy Grail. Maybe we want to believe these technologies will be the silver bullet that makes programming easy. Maybe we're just chasing what's new and hip. Or maybe we're seeing real problems with the way we produce software, but we keep coming up with fantastically wrongheaded solutions.

The recent history of software-development tooling, especially in the JavaScript world, has been characterized by additive solutions to small problems. When we see something that's not working quite as smoothly as it could, we add a new tool to our tech stack to patch the problem.

The downside of this approach is that each tool we add has to be understood and maintained. New concepts and dependencies add complexity to our systems. To overcome this complexity requires arcane knowledge and overwhelming force.

  • Arcane knowledge means understanding the full stack of tools you're using. To be an excellent Rails programmer, you can't be content to know just the Rails APIs, you have to understand Ruby syntax and semantics and maybe be able to imagine how you'd implement parts of Rails yourself. Occasionally you'll need to understand how Ruby itself is implemented—how else could you decide intelligently between MRI and JRuby, or understand the behavior of your "multithreaded" program?
  • Overwhelming force usually means turning things off and then turning them on again. When we don't understand what's causing our problem, sometimes the only way to fix it is to start over from a known good state—which often means going back to square one.

Of course, there's a third option for dealing with complexity: create a new layer of tooling to simplify it. Brilliant! No one's tried that before.

I now believe that there are very few problems that can be solved by the addition of new entities to a system. Rather, when we encounter a problem, our first step should be to ask what it would take to remove the cause of the problem. Rather than constantly acquiring new tools that ultimately just weigh us down, we should pare down our tools and our skills and simplify our products and processes.