Designing for an open-source project is still fairly new to me. Before that, I used to work on more conventional SaaS products. The big difference for me has been the community. It is such a major component of an OS project. On the design side, the sheer size of active contributors and users brings a whole new dimension to it. You can't ignore the community, you have to embrace it. Fully.
One good example is Strapi Market - the plugin marketplace project we've been working on for the past few months. Even though it's still in its infancy, we already learned so much.
Our goal is on one hand to offer a place where developers can showcase their plugins, and on the other hand, to create a place where users can find qualitative and secure plugins.
A key factor for a great user experience is to find and use a plugin quickly and easily. To get there, trust is the name of the game.
Plugin developers might know very well what their plugin is all about, but what about the end-users? How do they know they can safely use an unknown piece of code? Besides, a plugin can work today but what about tomorrow or in a few months?
To reduce any frictions at this step of the journey for Strapi users, we focused our efforts around 3 areas:
The first step is to provide as much information as possible, without overwhelming the user either. Relevancy is key.
First, the marketplace provides basic information such as the plugin name, a short description, and an illustration. Ideally, people should get in a glimpse of what the plugin is about and if they should dig deeper.
In addition, trust is a human thing. So we highlight details about the people behind a plugin. Being a company, an individual, or a group of contributors.
Last but not least, numbers can be a quick way to compare apples to apples (Or in this case, plugins to plugins). They also give a good sense of the quality. In our case, we’d love to show the number of currently in-use projects in the future. We believe it’s a better indicator of a plugin's helpfulness than the number of installs, as it truly shows if a plugin is actually being used.
We want to keep our marketplace open to any contributors wanting to share their work. We also want to ensure all the plugins are reviewed in order to provide a qualitative and secure ecosystem of available plugins. To do that we need some sort of review process to highlight trustworthy plugins.
On that note, we'll make sure that our users know which plugins have been verified and the ones which haven't. Prominent disclaimers will be visible to explain the risks of using such plugins. We could also recommend verified plugins that are similar in terms of functionality. In any case, the code will always be visible for someone to investigate further.
We are still unsure of the volume of plugins we'll have to verify. Our internal team will probably be able to manage the process for a while, and eventually, we'll find a more scalable solution to avoid bottlenecks. We'd love to get the vetted community members to help us with that. If not, we might need to hire an external agency to do it. In any case, these are good problems to solve as they will come with a growing number of plugins.
Although a bit debated these days, a proven way to quickly assess the quality of something is a rating system. We are considering setting up a rating system with optional comments to gather quantitative and qualitative input from users who actually tried a plugin.
Moreover, we want to be proud of what people find in our marketplace. To increase the clarity of what can be expected in terms of quality we plan to have different labels showing key aspects of a plugin. Here are some we are thinking of: "Made by Strapi", "Made by a community star", and “Popular plugins”. We also want to highlight some interesting pieces of information to know about a plugin, like if it's in Beta, if it's new, or if it's maintained so that you'll always know what you are signing for.
About maintenance, we are aware that quality is not set in time and will have to be maintained over time for our marketplace to be sustainable. We'll make sure to provide information about the activity level of a plugin, such as the last update, the number of open Github issues it has, and so on. We'll also foster direct communication between developers and users to ensure that community-feel we all love.
I hope this post gives you a better sense of what we are aiming for and how we are planning to get there.
It is critical we get the user experience right from the beginning as we'll be able to capitalize on the marketplace popularity and reputation to bring new features. One of them is monetization. It's a big aspect of our long-term strategy to make sure our community members can generate value from all their efforts. We hope it'll empower them to build sustainable businesses out of Strapi and hence have a strong incentive to provide even more value to our community.
Feel free to reach out for any comment, feedback and/or insights.
Thank you for reading :)
Raffaele is a Senior Product Designer at Strapi working on building a trusted plugin ecosystem for the Strapi community.