Release Note
I've utterly failed to limit the scope of this release. It should have been broken up into 4-5 releases but I got pretty carried away.
The next few versions, which will likely take the project out of beta, will be all about polishing. This was my first open source project so I didn't have much of a plan laid out to follow. I kind of just kept bolting stuff on that I found cool from other projects I was taking inspiration from, making everything messy over time.
This list had around 40 stars as of the last release a couple months ago, but has now surpassed a thousand. This popularity has come with a lot of community input and contributions, which has inspired the fundamental re-imagining of how the list operates.
The list is no longer edited from the README file. We have migrated all applications to an applications.json file. Each application has many properties not visible in markdown like last_commit and language which the web implementation, currently in development, uses. There's also a categories.json and tags.json for declaring organizational properties and tags, respectively. Instead of putting the emoji inside the tags property in applications.json, you use the tag id like commercial These ids are mapped to their emoji. Lastly, platforms.json achieves a similar result to tags.json.
To bring this all together, there are python scripts to generate the main readme, and one readme for the following platforms: Windows, MacOS, Linux, and Selfhosted.
There's also a script to update project properties in the application.json like stars and the description. There's a few projects without or with an irrelevant repository description where we are using the description from their website or README. To prevent the updator script overiding this, we've added the flags attribute to each application.json item. The custom-description flag makes the script skip over the description of that project. More flags will be introduced to cover cases we haven't yet considered.
These scripts are paired with GitHub actions. The updator runs at 12:00 UTC Pacific TIme with README's being generated at 01:00.
Most open source projects fall under two categories: selfhosted or shipping as a desktop app. However a lot of the recent AI utility apps have convoluted or untraditional options for installation, including pip and npm. We initially added the tags npm and pip to convey the installation/runtime, but then realized this was a little too specific. Having pip and npm would also imply we should include tags for cargo, docker, flatpak, rpm, etc. Even though this level of detail would be great, it's not scalable accross the hundreds of project we feature.
We added a Manual tag for apps installed with pip, npm, cargo, or any other form of "manual" installation that isn't what we consider the default; a binary.
We also refactored the platforms and tags system. There used to be lots of items in platforms.json like CLI and Extension. These aren't platforms, they are properties of an app. As such, platforms.json was consolidated to just platforms with the rest being migrated to the properties object of tags.json, with the existing tags going under a new attributes object.
Here's the minor things that have changed:
- We are no longer using Shields for the star count badge.
- Most tag emojis were updated for better relevancy
- Dynamic project count
- Expanded description
- Over 200 new projects
- Added the TUI tag for Terminal User Interface
- Lots of new categories
New Contributors
- @dweymouth made their first contribution in #10
- @vedantm8 made their first contribution in #13
- @chuckcrump made their first contribution in #21