free open source software needs fewer engineers and more designers and product people
It’s been a month since the release of npmx.dev. We had a wonderful release week with many informative and in-depth articles not only about the experience of participating but also about the technical foundation. Thank you to everyone who is helping us on this journey, and a big thanks to everyone who supported us and shared their kind words. If you missed it, read and discover all these wonderful stories in my previous article or in the official release.
At the same time, we’ve just celebrated reaching 3,000 stars, made a number of major releases, and the team gave a really great presentation at atmosphereconf
But it seems I still hadn’t actually answered so many questions - just teased at the end of the previous article. I think it’s time to formulate the answers and finally gather them all in one place.
Prehistory
But to make the answer clearer, it’s worth going back a bit. By the time I joined, it was already a well-organized community that welcomed everyone with warmth and helped us build together. It was an intense and enjoyable time, and together we solved all the problems fairly quickly and completed most of our plans. Then we started talking more about the future, architecture, and details - how to make the service fully-fledged, stable and friendly for everyone.
We thought a lot about accessibility, design, security, performance, copywriting, and, of course, the community. This became a turning point when the code took a back seat. Yes, it happened in less than a month, but it was inevitable. After all, behind technology there is never just code, but people and an idea.
At the same time, there was a post online where we were all discussing the OSS community’s attitude toward non-developers.
I’m not one of those who thinks there’s a big difference in attitude. In most cases, the community is either friendly to everyone or largely closed off within a specific circle. And it’s rare to find a place where code is welcome but ideas and other forms of contribution are not.
Hostages of Habits
Yet in our daily lives, this difference does exist - it’s the infrastructure. When we talk about representing contributors at the service level, perhaps the first thing that comes to mind is the list of contributors on GitHub. It’s also, in a way, the last. Everything else is, at best, isolated efforts by individual projects to make the contributions of other participants visible. But despite these rare attempts, the approach itself doesn’t really change, and this has become an established habit.
But why is there so much focus on this? Don’t get me wrong - code is a very important part of OSS - its value is hard to overstate. But the main value lies in the community, in the people. If we look at projects, the most valuable thing we’re building isn’t individual features - that’s a matter of hours, days, or sometimes even weeks. The most valuable thing is peers. As we build features, the project will continue to grow, but it will gradually approach a plateau. Each new task will contribute less and less to this creation.
Peers, on the other hand, are about exponential growth. But when these peers consist only of developers or another specific group, we very quickly hit the inevitable glass ceiling. A great tool made for oneself and tailored to oneself. Going beyond this zone has always interested me - first as part of work projects, and now [even more so] as an npmx.dev member.
Not a universal experience
“But why go beyond these boundaries if it already works for a million people - it’s a tool for developers, and that’s enough for us”. And behind this lies the same principle as in any other area of our lives. When working with a specific group, we end up in a bubble from which we cease to understand other bubbles.
It’s about design - just because we like it doesn’t mean it aligns with the user experience;
It’s about accessibility, because just because we can see it and control it doesn’t mean others will “see” it too;
It’s about performance, because when it works fast for us it doesn’t mean other users will consistently get the same experience;
It’s about our representation, because what’s obvious to us might be a blind spot even for experienced engineers;
It’s about copyright, illustrations, security, stability, emotions. It’s about us. After all, we are human - unique and so different. And it is precisely this diversity that shapes our future.
An Open Community
It’s hard to call me an optimist, but I know for sure that we’re moving forward toward a bright future. That’s why one of the tasks that I - and many at npmx - set for ourselves as a key goal is to make collaboration among all of us easier, more convenient, and friendlier for everyone.
With this in mind, I participate in many discussions, and it’s largely this mindset that guided the design of npmx and parts of my vision. And yes, we have a design - you may have even seen it mentioned at atmosphereconf.
We work hard to be an open community, but we’re still limited by our services. However, in recent years, aside from AI, there’s been - in my opinion - an even more important shift that’s worth stepping back from for a moment.
At protocol
A decentralized protocol focused on ownership. Your data is owned by you, while additional infrastructure interacts with each user’s data and acts as an intermediary at the general level when necessary.
It solves the problem of connecting users. And that is exactly what we were working on. Any service, any user, any infrastructure can connect to this data and take exactly what they need, displaying it however they want and own this actions the way they want. This vision resonates with many of us, and in fact, it solves exactly what I described above. That’s why we’re built on it - not on specific, off-the-shelf tools but on the protocol and the vision.
This site, by the way, is also powered by atproto, and the article you're reading now is stored in my pds in site.standard.document lexicon
Social Layer
We loosely refer to this level of functionality as the social layer. It’s where all user and package interactions take place - projects, profiles, likes, saves, shares. This already makes up a large part of the project, but in essence, we’re just getting started in this direction. One of the first such updates was likes, and to my delight, the wonderful Svelte has been and remains the leader all this time (now it's already 191).
Nowadays, in our daily lives, we interact with dozens of services just to get basic information - to check stars and downloads, read documentation, view source code, look at vulnerabilities and issues, follow authors, join Discord, check releases, read the author’s articles…
This list goes on and on. And it’s even longer for the project author who shares all of this with their beloved community. The true magic of OSS lies in the people who do this, day in and day out. Thank you for that!
You’re making magic happen, and we can’t do it for other, but we can help make it easier. Npmx has already brought together npm view, GitHub stats, Social Layer, e18e and many more in one place. Integrations with an even longer list of services are coming soon
But even this still largely keeps us in our bubble.
Contribution as a layer
Thinking about how to break out of this bubble, I’ve been talking a lot with people both inside and outside the community in search of details and solutions, including in discussions on the post mentioned earlier
That's definitely true, but first free open source needs ways to become interesting to these people
We have many people ready to join us on the OSS journey, but sometimes there simply isn’t room for them. Some contributions simply go unnoticed, except for our personal appreciation for these people. We try to speak up about what our community does and value it a lot (endlessly). But we want to show this even more, including at an automated level.
That’s why another idea I hope we can implement is “contribution interactions”. Imagine a social network with users, posts, comments, and embeds. But instead of social media accounts - you have tech profiles, instead of posts - releases and articles, instead of comments - ideas and tasks, and instead of likes - contributor recognition and reactions.
Every PR is an important contribution to the project, but equally important contributions include tasks, designs, suggestions, ideas, bug reports, and even posts expressing disagreement. One of the main ideas is to make this visible. In that very same unified space that has already become home to all our daily services, a new layer will appear to strengthen the connections between these areas. After all, to be a contributor, you don’t necessarily have to be on GitHub - it’s enough to love the idea just as much as we do. And our task is to find a way to say thank you in return. To everyone, everywhere.
After all, behind every technology there are always ideas and people.
A few other updates
npmx stays true to its values, remaining not only the service I love so much, but also a warm, welcoming community that I’m so happy and proud to be a part of. Made by wonderful alfon.dev
We conducted some research with the team and shared the results on April 1st!
Light mode only 🎉 We’ve finally completed our user experience research and carefully reviewed the results. To deliver the best possible experience, we’ve decided to remove the dark theme Thank you all for participating! 🤍 You can already see it on https://main.npmx.dev 🎉
Charts, as well as many other details, have become even more accessible
Comparing packages has become much more convenient
Happy that the multi-select feature is finally live on @npmx.dev along with lots of new features, bug fixes, and other updates. https://github.com/npmx-dev/npmx.dev/pull/2096
A wonderful version page has appeared
Happy to share that I built a version history page into @npmx.dev Browse all published versions of any npm package — with a cleaner design, faster loading, and easier search than you'd expect. So happy to finally see it live ✨
And much, much more…
We’re building this project for people, together. Join us on this great journey.