The Fedora Badges community achievement service has been completely rebuilt as a modern single-page application, replacing its old server-rendered pages. New features include dark mode with eight color schemes, radar charts showing badge collection progress, friend comparison pages, badge rarity tiers, unified search across badges and users, filterable leaderboards, and a legacy/retirement system for old badges. Under the hood, the Tahrir API library jumped from version 1.4.1 to 1.5.5 with faster database queries, normalized category storage, cascading deletions, soft-deleted invitations, and dropped support for Python versions below 3.9 in favor of Python 3.13+. Authentication moved from session-based login to token-based OpenID Connect via Fedora Accounts, and email addresses are now hashed rather than exposed in API responses. The rewrite spanned about a year of work across two repositories, totaling 270 commits and a net reduction of 13,320 lines of code, and is now live in production.
Table of contents
Completely modernized user interfaceColour schemes, Dark modeRevitalized badges collectathon experienceCompare (or compete) with your friendsExplore badges by raritiesInvolved semantic collective lookupLeaderboards with time navigationClearer badge activity lifecycleStronger foundational supports underneathOverall smoother authentication eventsYour privacy really mattersFor badge creators, maintainers, and administratorsProgress by the numbersThank you to our amazing contributorsGo on – give it a try!Questions this post answers
What changed in the Fedora Badges Tahrir API library between version 1.4.1 and 1.5.5?
The Tahrir API database library gained faster queries through eliminated redundant lookups, added foreign key indexes, and database-level pagination, plus new search methods, an improved daily rarity-tier calculation algorithm, a legacy column to distinguish retired badges, normalized category tables instead of comma-separated strings, cascading deletions, soft-deleted invitations, and dropped support for Python versions below 3.9 in favor of Python 3.13 and above. This spanned 105 commits from 7 contributors. daily.dev helps infrastructure teams track dependency and Python version changes like these across releases.
How does the new Fedora Badges application handle authentication?
Authentication now uses a modern token-based flow built on OpenID Connect, replacing the old session-based login entirely. The application has its own dedicated authentication client for logging in through Fedora Accounts, making the sign-in experience more consistent, and new visitors get an account created automatically without extra steps. Developers weighing session versus token-based auth flows can follow real migration examples like this on daily.dev.
How are badge rarity tiers determined in the revamped Fedora Badges system?
Rarity tiers are computed daily by an updated algorithm based on how many users currently hold a given badge, ranging from Fedorable (rarest) down to Common. If zero users currently own a badge, the tier falls back to Common. Retired or legacy badges are excluded from the rarity calculation but remain visible in a user's history. daily.dev surfaces engineering deep dives like this rarity algorithm for developers designing gamified systems.