About selfh.st/apps
selfh.st/apps is a directory of self-hosted software, companions, and alternatives for easy browsing and discovery.
Frequently Asked Questions
How can I add my project to the directory?
Feel free to reach out and share the details of your project with me.
How often is the directory updated?
Every morning around 5AM EST.
What is the default sort option?
The 'Default' sort option is a custom calculation that scores projects on the following factors:
- Repository age
- Latest commit date
- Repository stars
- Last 12-months' Google Search interest (non-GitHub projects only)
This methodology was built to prevent non-GitHub and closed source projects from being penalized in the rankings due to a lack of repository stars. Instead, the popularity of these projects is measured using interest over time extracted from Google Search Trends.
What is a 'Custom' license?
To keep the directory as up-to-date as possible, many of the details displayed on the tiles – including licenses – are automatically retrieved using the various git APIs.
When a project doesn't list a license, has multiples licenses, or lists a custom proprietary license, the GitHub API returns these values as either 'NOASSERTION' or 'null'. To avoid confusion, these licenses are displayed as 'Custom' to encourage users to navigate to the project's repository for clarification.
What is the criteria for adding a companion app?
For discovery purposes, the criteria focuses on two conditions:
- Listed applications should extend the functionality of a self-hosted project or assist with the management of self-hosted software
- Listed applications should not be a core service of the original project
While this does present a bit of a gray area, the ultimate goal of the project is to help users discover applications they might not have otherwise come across when deploying a self-hosted project.
What do the last activity date colors represent?
Each project's last activity date has been color-coded based on the days since the project's latest commit as a way to differentiate between projects that are and aren't actively maintained.
The logic is loosely inspired by Awesome-Selfhosted:
- Green: Projects that have received a commit in the last 6 months
- Yellow: Projects that have received a commit in the last year
- Red: Projects that haven't received a commit in over a year
Why publish your own release feeds?
Each project is assigned a custom release feed that can be used to receive updates via RSS. I rely on these feeds heavily for the updates included in This Week in Self-Hosted, which I find necessary to use over GitHub's built-in feeds given they don't provide a method for excluding non-stable and beta releases.
Behind the scenes, custom Python scripts retrieve the latest releases for each project and filter for stable releases using custom logic.
The feeds in selfh.st/apps are also a successor and replacement for the feeds previously released under the selfh.st/releases banner.