This is a great idea, and I really appreciate your work (and Apple's support) for the Swift Package Index.
It's nice to be able to go directly to projects of interest. Some context in the cards helps to choose where to go.
But I think we can do better than just a sampling of packages consider popular or good (in some highly-contended fashion).
Others have mentioned focusing on new users. I agree, but my goal is for them to be encouraged and interested. A list of packages helps mature developers with projects in mind meet specific functional needs, but I'd like to inspire them and draw in newbies.
For orienting users to packages, I would do two things (but not here):
-
I would have some overview of developer maturity cycle in Getting Started, before launching into Install instructions. Start by mentioning picking up the language, creating a project, using and publishing packages, and deploying applications and systems, and the available learning resources. That 1 minute orientation to the lay of the land is more useful than diving into the REPL (instead of swift-fiddle?).
-
Revise the Documentation section of the package manager to better explain packages (bearing in mind that the term is used differently in Linux, Java, etc.)
In this preview/demo, I feel explicit claims about the richness, size, and diversity of the ecosystem can seem to be a bit of signaling that triggers more dispute than insight. It seems more convincing to show than tell, and more welcoming to expressly invite users to try to use or make packages, by showing what's cool.
Weirdly, the best and most popular packages can be the most forbidding, requiring entire workflows or application patterns, or offering sophistication beyond mere mortals.
Curation is more than selection; it's also education about appreciation. I'm interested in learning why a package is of interest.
Weirdly, I'm uncomfortable with the package maintainer names (most are collaborations, and many prefer anonymity), but I'd like the curator to speak in her own name and voice about what she likes and why. And I want to hear from many people with different perspectives. Actual people, actual voices, small insights.
So may I recommend a section with a stream of somebody's and nobody's, curators nominating something of interest, for a telling reason?
One way to do it is just to quote the curator and link to the package and to their blog or the Swift forum discussion for more details. I'd be looking to demonstrate all the weird ways packages can be useful or interesting. Functionally, from connecting devices to orchestrating systems, but also other qualities besides functionality: good code, good testing technique, different domains. Some curators might focus on ML workflows, etc. And a good way to introduce a scary behemoth like the vapor mini-ecosystem might be to just point to one small cool bit of real value.
Visiting curators with different takes is a contrast from selected mavens evolving a ranking system with community input or some search based on gold stars or forks. The normalizing aspect creates a target can devolve to the least objectionable process, while a section of diverse curators with diverse reasons might temper and complement that.
Boosting curators as well as package maintainers I think also helps fills a gap in Swift ecosystem, where experts need more encouragement to help others approach things in a Swifty manner.
It only takes a few good examples (refreshed relatively frequently) to be illuminating and encouraging. ("Look at the output of Swift power asserts!") (While any sampling of top-N packages in M categories invites complaints about what was left out.)
P.S. - With respect, the sidebar link doesn't belong just after Download and above Platform Support, before even the Documentation. It should be in Community section, because it more about surfacing open source packages than orienting users to Swift.