New featured packages on Universe

Hey folks,

We have checked the package list and selected some of the recent new submissions.

First of all, the big one:

The new package on Universe’s home banner is touying :clap: We noticed the traction that touying has gained throughout the community in the past weeks. And rightfully so, with a good user experience, an advanced feature set, and a documentation page.

Both polylux and touying are now featured and we encourage submitting presentation themes / templates based on both. Right now, many of the templates are only for use in a single university, and we’d like to see a greater selection of generic, well-designed templates.

Packages

In this section, I’ll quickly present all packages that we have promoted to Featured in no particular order:

  • zero: Number-formatting and aligning numerals in tables
  • umbra: Impressive drop-shadows
  • game-theoryst: Typesets Game Theory games in Typst
  • alchemist: Draw structural formulae for chemical compounds
  • pavemat: Style matrices with by-field strokes & fills
  • hydra: Section headings in the page header
  • suiji: Random numbers, starting from a set seed

Templates

Likewise, these are the templates that have been newly Featured. Featured templates appear at the top of the project creation dialog in the app and on Universe’s search page.

How to get featured?

If you want to get your package featured, there are a few things we look for: Featured packages should be useful or exciting and provide full documentation with examples that work on copy and paste. Templates should be visually appealing, and all featured packages should have a good, non-descriptive, and memorable name. Finally, it helps if your package has traction in the community!

15 Likes

I wonder if, in addition to the featured packages selected by Typst GmbH staff, there are plans to introduce download counts to help users find high-quality and popular packages?

1 Like

I think download counts wouldn’t be that great of a metric. They would be easy to manipulate and also wouldn’t reflect real usage that accurately. One person using a package a lot would be one download (since it’s cached), but 20 CI runs could be 20 downloads.

What do you think about something like GitHub stars but for Typst Universe as an alternative?

6 Likes

In case that was a plural you, what I think is:

  • It would be best if other Git forges are included, wherever possible (I assume there are APIs for that in all major forges). Unfortunately, GitHub projects get much more stars than projects on other forges (see this reply by @reknih).
  • I’m not sure this should be default sorting, but it should be an option.

I didn’t mean GitHub stars, but something like GitHub stars. Every person with a Typst account could give a Typst star, so to speak.

4 Likes

Sorry, I didn’t read it with enough attention.

Yeah, that seems like a stellar idea :star:

Sounds like a like/thumbs up button with a different name, if all it does is showing how many people find the package useful. Will the feature also collect/show starred packages in some new starred section in the web app or Universe?

I don’t think it makes sense to distinguish packages with 0 stars from ones with 1+ stars. But you would be able to sort by number of stars.

1 Like

Being able to star a package surely helps. This has a precedent in AUR, where users can upvote a package. And it is helpful when comparing multiple similar packages like these.

2 Likes

The ‘popularity’ calculation on AUR is interested; it is defined as:

Popularity is calculated as the sum of all votes with each vote being weighted with a factor of 0.98 per day since its creation.

This might be helpful to counteract the effect we see sometimes with stars/upvotes systems, where old packages which are not actively maintained might rate higher than more recent, actively developed ones thanks to having attracted many stars/upvotes from before development had stopped or slowed down. The way I see it, both the total star/vote count and the ‘popularity’ calculation are valuable:

  • The total count indicates what packages the community has expressed their appreciation to over time.
  • The popularity calculation indicates what packages are trending.

In fact, I think that ‘trending’ is a better name than ‘popularity’, because it is more descriptive of what this actually measures (naming it ‘popularity’ might be a bit misleading): a package that has got a lot of stars early on and is still in use by many people is rightfully popular even if it’s not trending. There is a bias here, where good, popular packages which make the basis of the ecosystem might rank lower in this calculation because a relatively large portion of the user base have already starred/upvoted it a long time ago.

Having a quick look at some AUR searches where sorting by ‘Votes’ is compared to sorting by ‘Popularity’ confirms that.

So in conclusion, this might be a nice complementary addition to the simple total count.


If this is implemented, it is worth to consider whether the base of the exponentiation (0.98 in the calculation 0.98ⁿ where n stands for the number of days since the vote in the case of AUR) is to be retained 0.98. I don’t know what they based this heuristic value of decay on.