Thunderstore: 2022 in Review

Hey everyone! This is the first in a series of blog posts documenting the internal development efforts of the team. We’re aiming to publish at least one roadmap update per quarter, with intermittent content updates in-between.

We’ll be documenting some of the most impactful work, however, keep in mind that it’s a scant representation of what we’ve accomplished over the past year. Feel free to dig into referenced PRs or the Thunderstore GitHub organization if you prefer the technical details.

Organization

It’s barely sufficient to say that this past year at Thunderstore has been intense. We’ve experienced record-breaking user growth, expanded our team to nine extremely talented developers, and added numerous new communities, all while committing countless hours to improve the ecosystem on numerous fronts.

Big changes at Thunderstore HQ

Ecosystem

The Thunderstore ecosystem has been improved greatly since the start of 2022, with huge refactoring passes, new projects, and new communities.

These changes aim to improve developer and user experience by introducing new development tooling, reworking the UI and UX of our user-facing projects, and by refining user workflows to make modding more consistent, easy, and efficient.

Notable New Communities

Cyberstorm

We’re finally ready to show off a teaser of our heavily in-development site and mod manager redesign, Cyberstorm.

A teaser image of Thunderstore’s upcoming “Cyberstorm” UI redesign.

And yes, you’ll be able to leave comments on your favorite packages.

You can expect more updates before Fall of this year. Refer to the thunderstore-ui repository if you’d like to keep track of development.

Note that specific elements featured in these images are prone to change as we continue to refine their design.

Website

While most of our website development efforts are focused on finishing Cyberstorm, we’re continuing to invest ample time into maintaining and improving the legacy Thunderstore site. Here are some of the most visible changes we’ve made over the past year.

Package Donation Links

Toss a coin to your favorite creator

Package Management

We’ve expanded package management to enable creators to change the categories of their content without needing to upload new versions. This new functionality was wrapped into this fancy new modal, along with deprecation and visibility options.

Package Changelogs

Dedicated package changelogs can now be displayed by including a CHANGELOG.md file with your package upload.

Expect lots of “bug fixes and enhancements”.

Community Listing

As the number of communities on Thunderstore grew, we had to expand the community selector a bit to keep them navigable. It’s still not great, but we’re hoping it can hold out until the new website is ready.

Nice

Mod Manager

A huge amount of work went into the mod manager this past year — refactoring huge swaths of the codebase, adding new features, and implementing support for numerous new games.

Our most evident frontend change will be the tweaks we’ve made to the profile selection and navigation menu. These design elements were chosen with direction from the Thunderstore Discord community, so a huge thanks goes out to those who cast their vote.

Expect to see further UI changes as we smooth-over and finalize what’s left in the development pipeline.

We’ve also finally implemented an ad-free subscription model, available to those who wish to hide adverts while also supporting Thunderstore hosting and development costs. Another huge thanks go out to those who have already begun to support us via this method.

Desktop Tooling

We’ve made massive strides in improving our desktop tooling over the past year with the introduction of thunderstore-cli. This tool, in short, allows you to install, author, and otherwise manage your mod installs without leaving the comfort of your terminal. It hosts the same functionality as the Thunderstore Mod Manager, but in a form ready for use by community tooling.

thunderstore-cli is ready for testing and can be downloaded from its Github repository.

What’s Next?

There are several ongoing projects we’d love to talk more about, and you can expect to hear from them in future posts in this blog.

If you’d like to get notified about new posts via email, you can subscribe to our mailing list here!

Technical Changes

As a final note, here’s a high level changelog of some ecosystem components for those that are interested. It doesn’t include everything as that list would be far too long, but we’ve done our best at hand-picking the more interesting changes.

Frontend

  • Added support for team donation links on package pages.

  • Added management dialog for uploaded packages. This allows authors to control the listing and overall visibility of their content.

  • Added ability to assign packages to multiple communities during package upload.

  • Added CHANGELOG.md support to uploaded packages, making it possible for authors to separate changelog notes from the package readme.

  • Added a dedicated panel for displaying changelogs if a package contains a dedicated changelog file.

  • Added support for extended-length package readmes.

  • Improved the community selection menu by organizing communities into columns and sorting by overall popularity.

  • Improved the package management dialog to enable authors to change package categories without needing to upload and release new package versions. Also ported the existing dialog template to React.

Backend

  • Added numerous new API endpoints to support future site redesign work. See PR #504 for additional details.

  • Added package listing pagination support for use within the site UI redesign.

  • Added new v1 community URLs (thunderstore.io/c/{community}/api/v1/package/), with the goal of replacing the current community subdomains (gtfo.thunderstore.io, for example). All newly added communities will be accessible through this new path, with others migrated over time.

  • Added support for user accounts via Discord and GitHub OAuth login.

  • Added API support for legacy profile codes in order to migrate away from Heroku-hosted services.

    • Profile code exports are now stored indefinitely, as opposed to expiring in 30 days!

  • Improved API cache builder memory usage by applying several massive optimizations. This change has resulted in an 80–90% reduction in peak memory usage. See PR #761 for additional details.

Mod Manager

  • Added support for games installed through Xbox Game Pass.

  • Added the ability to change the currently selected game without needing to restart the client.

  • Added display element for package donation links.

  • Added ad-free subscription tier ($3.99/month).

  • Refactored much of the backend to improve general performance and stability, aiming to construct a solid foundation for future development.