January 2026 - Challenges and Badges
Join the January challenges now in Garmin Connect. Three month challenges - Stage 1 First month in Stage 1. 2026 Cycling - Stage 1 Join this challenge and record 675 kilometers (419.43 miles) of cycling activities from January 1 to March 31. 2026 Running - Stage 1 Join this challenge and record 300 kilometers (186.42 miles) of running activities from January 1 to March 31. 2026 Walking - Stage 1 Join this challenge and record 91 miles (146.5 km) of walking activities from January 1 to March 31. Full month challenges January Photo Share Join this challenge and add a photo to 3 or more activities that are visible to others in January. January Steps Podium Join this challenge and finish in the top 3 of at least one weekly steps challenge from December 29, 2025, to February 1, 2026. January Likes Join this challenge and receive a total of 25 or more likes on activities, posts or comments in January. Active January Join this challenge and record 20 activities of at least 20 minutes eac...
If you find any issues or things that don't work as you think they should then either use the contact function in the site or write it here.
ReplyDeleteIt is a beta but the data is live and your account will stay when the site goes into production.
Looking good, thanks for your work.
DeleteIs there an app for this. I'm not technically inclined. I'm trying to link my Garmin account to this on my android phone and I'm totally lost
DeleteThere is no app, but that made me thinking about creating one for easy syncing.. I will have to do some testing to see how that would work.
DeleteWith the old version of the extension I run it on my Android phone with the app Kiwi Browser. It is a browser that supports Chrome Extensions. I haven't tested the new extension yet but it should also work. I will very soon move out of beta status and then the extension will be updated in Chrome Web Store.
As far as I know it wouldn't make syncing easier. I mean it would, but you don't need to make an app for that to work (because the syncing isn't going to happen on the phone anyway), it could work with the current web based system. What you would need to do is the Garmin api integration, that would automatically push every new activity (and maybe also steps?) to your backend. The problem is that as far as I know only companies are getting access to this.
DeleteThe idea is to run the python script on the phone.
DeleteIt works with Termux: https://f-droid.org/packages/com.termux/
Install Termux
Run:
pkg update && pkg upgrade
pkg install python
pip install pydantic-core --prefer-binary
pip install garth-ng requests
termux-setup-storage
Run the script:
python /sdcard/Download/garminbadges-updater.py
So, it should be possible to package it as an Android app, but it doesn't seem to be easy to do since garth-ng got dependencies to Rust (pydantic-core).
It will take some time to come up with a solution...if I can even do that.
The easiest solution on Android is to use something like Kiwi Browser and run the browser extension there.
The Android app is now working. I'm just finishing up the review. It should hopefully be available very soon...if Google approves it.
DeleteIt will not run the python script on the device which was my initial idea. Instead it is implemented in Java.
It is open source so you can check it out here: https://github.com/e7andy/garminbadges-android
Currently it is just a sync app with no other functions.
Known issue - The profile and challenges buttons in the browser extension don't link you to the beta site. I will not fix that in the beta. The links will work good when the site goes into production.
ReplyDeleteThis no longer an issue since I added a rewriterule to the old site which will move the user to the beta site.
DeleteVery Very Nice! I like it a lot! 😃
ReplyDeleteGreat Job, e7andy! Easy to use and very understandable. Much better than that, Badgehero.io site.
ReplyDeleteThank You!
Thank you. There are a lot of changes under the hood and there are some hidden features that you will find after some time...for example the ability to hide badges that you are not interested in.
DeleteHi Andy - how do I hide badges I am not interested in - I would love to hide all those golf badges! Awesome new feature!
DeleteGo to your "My badges", click Edit yo turn on edit mode.
DeleteYes! The ability to hide badges that I am not interested in is great. I'm looking forward to some more surprises from this brand new, Garminbadges.com site.
ReplyDeleteAgain! Thank You, e7andy!
ReplyDeleteCongratulations and thank you for the great work you do for us Garmin Badge enthusiasts!
Sorry bro… a redesign is one thing, but copying the entire design from my website badgehero.io is really not cool.
ReplyDeleteThis is how Claude Code designed it. Maybe you used some AI tool to create your site. Now I asked it this:
Delete"The developer of https://www.badgehero.io claims that it is a copy of the design at that site. What grounds does he have for that claim?"
Answer:
"Based on what I can see, here is an honest assessment:
Legitimate grounds for similarity:
Both sites have a filter bar with "All", "Time-limited", "Unlimited" buttons — and a grid/list view toggle. Those specific filter names and the toggle placement are close enough that it looks intentional rather than coincidental.
Both show badge cards with image, name, points, and a date range. The card structure is very similar.
The overall page concept — a searchable, filterable Garmin badge catalogue — is identical.
Where the claim gets weaker:
Both sites are solving the exact same problem with the same data (Garmin badges), so many design decisions are simply forced by the domain. A badge needs an image, a name, points, and dates — there aren't many ways to lay that out.
The "grid with filter chips" pattern is extremely common across the web and predates both sites.
The color scheme and typography are generic modern-dashboard style, not distinctive enough to claim ownership.
My honest take:
The filter button labels ("Time-limited", "Unlimited") and the grid/list toggle are the strongest specific points of similarity — those are choices, not requirements of the domain. If those were added after badgehero.io already had them, the developer has a reasonable basis for feeling copied even if there's no legal case. UI design generally isn't copyrightable at the level of "filter chips with these category names," but from a community/ethics standpoint it's worth acknowledging.
If you built the filter names and view toggle independently, that's just convergent design on a narrow problem. If you were aware of badgehero.io while building it, it's worth being transparent about that."
So, the design is generic and very common and it is hard to make it look very different since the data is what it is with a limited number of interesting data. I first made it just in light theme, but when the dark theme was added it started to look very similar. I can see that.
A few days ago I actually looked into how Claude code could make the design less generic, but haven't acted on it yet. So, now when you made it more clear to me that it is too generic and similar to lots of other sites I might change it up a bit. I'll write it on my todo list.
DeleteClaude wasn't nice on me when I asked about the current design:
* generic dashboard
* The horizontal scrolling chip bar is on every SaaS product
* generic CRUD
* generic badge tracker
In general, all AI-generated websites end up looking similar, so no hard feelings. I was just surprised by some of the specific details being so close. Yes, Badgehero was also built with AI, but I spent a lot of time refining the details and UX decisions beyond what AI suggests out of the box.
DeleteSome feature ideas:
ReplyDeleteIn My Badges, My Challenges calendar we could have some "types" of calendar, that behave accordingly. For example with a parameter like: &type=T[,T], where X could be "available": only display badges I haven't earned yet, "earned": only those I earned, "joined" (default): all that I joined). "joined", "available": behaves like now: shows the days it can be earned. "available" would "disappear" from Google Calendar once it becomes "irrelevant". "earned": only the day it was earned. So I could look back in my calendar and see that on 23rd Apr I earned the April Likes badge.
And one more niche feature: I made an account for my family members, they're updated from cron, so we can look at the progress. I look at my challenges page every couple of days and sometimes also remind my kids if there's a badge they could get (maybe they'll leave the phone/TV for some time :) It would be nice to be able to have relations between users, and then have a list of links at the top (next to where we have earned / challenges / back to profile link), with the names, so I could click through my family/friends' progress or badges
I don't fully understand the calender suggestion. Do you want to be able to set multiple parameters that then will fetch a calendar with that data and that you can combine those parameters in any way you like? For example &type=earned,joined will show all historic earned challenges on the date you earned them and all challenges you've joined
DeleteIn that way you can then create multiple calendars to hide and show. For example one that shows all earned badges and one for available badges.
What I read: Some way to follow other users and get them in a news feed or at least links to them.
Deleteyes, so in the 1st paragraph there were 2 features: one, as you wrote, the possibility to pass multiple types in a list, but of course the main feature there is to add the &type=X first. Multiple is easy to implement, and less interesting.
DeleteAnd one more thought: I like the old layout of the challenges better. It's probably just some time to get used to the new one, except one thing: when looking at it from a phone, the new one is almost impossible to see anything. In the old one I could see the most important things: the top-left "corner" gave me an almost full picture. Could be a nice touch to add some "mobile" style. Maybe a switch that would be saved in the browser (not in the user settings, because I'd want it different in the desktop and in the phone) and would do a very simple design (the old one is perfect)
ReplyDeleteI've added more data below the progress bars to show days and values ahead/behind with colors showing the status quickly. Together with the progress bar that is the data I want to see.
DeleteWhich other data do you want to see without scrolling? I've tried to put the less interesting info to the right in the table.
Well, I see almost nothing in a phone now: https://photos.app.goo.gl/MNu4TZbq5WRXYzmVA vs what I used to see: https://photos.app.goo.gl/KPaZmuzwu6zXtEQr7
Deletemeaning both the number of lines is less, and the useful information in the left-most columns that can be seen without scrolling. Can you make another template that looks like the old one, and connect it to the new DB? This way everyone could pick the layout
DeleteCheck if the latest version works better. I've moved around the data and removed the extra space around it.
Deletee7andy - great WORK!!! thanks a lot!
ReplyDeleteone question though
How can I see already gained badges in the present month? That would be nice to see it. I do not know if I am missing it somehow or this feature is not available yet.
Go to your badges, click earned, then click group by month and you will see all badges grouped by month from earned date. It isn't working perfectly for repeating badges. It will only show last earned date.
DeleteYes, Thanks I knew about it. I was more looking for month view with badges in progress and badges gained. In old version of garmin badges some time agao it was visible which ones you laready gained. For me that view had some psychological impact that I did so much and there are other still to fight for. Now you can see it but you have to move across 2 different sections. I am not complaying Andy ..just to let you know!
DeleteIs it the challenges you want to see? You see them in the challenges page.
DeleteYesterday I added a toggle above the Ongoing section with the ones that you've earned this month. I'm not entirely happy with how it looks, but it is a start.
It is probably better to put it right under each month.
Yes, thats exactly what I meant. And yes, I think that both: ongoing and finished is better to have under the current month. Rest of past finished badges is not necessarily needed - you always can find them under your profile->earned where you can split them into months already.
DeleteThe finished challenges are now displayed right under the month they belong to. I think that looks good.
DeleteI just deployed a new version with lots of new functions and fixes.
ReplyDeleteSome of them:
*. The design is slightly changing. Trying a red base color. Adjusting GUI components. Adding colors to different components.
* There is a function to follow other users and get updates in a feed.
* Lots of changes how the challenge page works and what is displayed there.
* Challenge page should now show more info on small screens.
* Python script and Chrome Extension got updates to fetch the data needed so make sure you update them before you upload new data.
* Added keyboard shortcuts: "/" search bar, "g" and "l" will switch between grid and list, esc will close the "more" filter menu
Keep suggestions and bug reports coming :-)
WOW! Cool!
DeleteThere's some strange info displayed in some of the challenges on the challenges page. Some have "7" that looks like an index to a measure table? In other lines I see for example: "33.3 km", but in May Time to Run: "28,292.9 7 / 72,000 7". So I guess, that for these time related things a human readable HH:MM would make more sense instead of 28,292.9 (what is it? seconds?), just make it 9:45 (9h 45m) or whatever it is. I'd even argue, that I'm not interested in the seconds. floor() it to nearest minute in places where you display how much I already made, and ceil() it where you display how much I still have to do. Ah and the total: It's probably always some whole hours, so just display: 12:34 / 20h
May Photo Share: Daily needed: 0.3 activities :) Maybe in case of activities round it up? I mean , yeah, there's a difference between seeing in the middle of the month: 1/day which makes me thing I have to do every day or 1/3, which gives me some day off. So maybe this is not that bad, just funny.
May Weekend Walking: not started. It was more useful to see when it'll start, or even from-to. I don't know about others, but I am sometimes planning a few days ahead according to these. So if I plan to do a long run, but I see that the next day there's a 10k badge/challenge I might switch days.
The "7" is fixed. It was my admin python script that updated the units incorrectly.
DeleteFor the new site I got an admin python script that needs some adjusting. It will be very interesting to see what happens when the new badges arrive to see how it handles that. Later on it should run on a schedule.
I will keep the fractions of activities for now. Maybe it will be changed in the future.
Start date added to the status pill: "Not started · May 29"
Great work. Just checked it after a while and looking at the leaderboard I wonder if those first "podium" account are even real? Seems crazy having from 17k - 24k points
ReplyDeleteThank you.
DeleteThey are real in the sense that those users got all those points in Garmin Connect.
Hi Andy - it wont synch for me. I have installed and put the API code in - and am logged into Garmin Connect - but it says I am not logged in
ReplyDeleteIs it the browser extension or the python script?
DeleteThe extension requires that you are looking at the Garmin Connect Web page when syncing and that the page was reloaded fairly recently.
What is the exact message you get?
Ah that explains it - I didn't realise needed to have the Garmin tab active. Sorted thanks!
DeleteYeah, it's a bit confusing. Maybe you could either pop up an "error message" if it's not open and explain to the user, or open it in a new tab (though I guess that even if you open a new tab the user would need to click on the extension's icon in the new tab, for security reasons?)
DeleteThe message in the extension is "Navigate to connect.garmin.com and log in, then try again"
DeleteThat doesn't explicitly say that you have to be viewing that page when you click it so that can be missed.
...working on a fix...
I've fixed it now. In the latest version (2.0.7), you no longer have to be viewing connect.garmin.com for it to work! Great feedback.
Some new things added:
ReplyDelete* Hide any user - If you don't want to see that user in leaderboards and earn lists.
* Badge overlay instead of loading the full page, ctrl/cmd click if you want to open the full page or click the link in the overlay.
* Browser extension - It can now run from any tab as long as there is a Garmin Connect in one tab.
Thank You! For the, HIDE ANY USER option.
DeleteCan you add the point earned to the summary of Completed in May? I mean, the bubble, that currently displays the number of completed challenges, there can you also display the sum of the points? Also, maybe don't display stale at all the badges without end date :)
ReplyDeleteTotal points earned added to the completed challenges.
DeleteThe Stale pill is moved to the Last Sync text since it applies to the sync and not to the specific badge or challenge.
LOVE that you can filter the badges! Is there a way to show all badges *except* the premium ones? I might be missing it, but I can find a way to show only the premium ones, but not a way to show only the non-premium ones?
ReplyDeleteAlso, if I were to wish for one other thing it would be to make everything more compact. Before I could see so many more badges on the screen at once, and on the Challenges page I could see everything for that month at one glance. Now I can only see six challenges at once, and in general there's just a lot more scrolling. Can't even be solved by changing the zoom on the badges page, since there's a fixed number per row...
The ability to hide badges is a fantastic addition! No longer do I have to look at a bunch of Tacx badges that I will never get.
Thanks e7andy!
Added negative filtering of premium and repeatable badges. Click once to view only them, click again to remove them and click a 3rd time to turn off the filter.
DeleteDenisity setting added with 3 modes: Default, Compact and Dense. Test it and let me know how it works.
THANK YOU! This just doubled the usability for me!
DeleteI like it! My only wish is to have the Challenge page more compact like the old site. I visit that page multiple times a day! I can view everything at once - all the columns line up, and there is only one row of information per badge. I can quickly scan and find what activities I need to do each day. I feel my eyeballs moving back and forth too much with the new site.
ReplyDeleteCan you provide an option for it to display the old style, or a more compact version of the challenge page?
I agree, even when I changed the density to Dense, I still see 1/3 of the lines (and 1/2 of the columns) on a phone than what I saw in the old layout.
DeleteI just added a new "Compact View" to the Challenges page. That should work a lot better on small screens.
DeleteHi Andy, after couple of days of usage I think about one improvement: on the badges page view I would add icon size selection. Smaller are needed.
DeleteI found one bug too: in the section earned in division by month the number of points is badly calculated cause repeatable badges are counted multiple times.
thats all tfor today. Thank you for your work!
Noted on my to do list: Smaller icons so you will see more badges than just 4-6 in a mobile browser. Tip is to use the list mode
DeleteThere is currently a limitation in how it handles the repeatable badges. The system doesn't know when all those other repeats were logged so it assumes all of them was on the same day as the last one. I will try to fetch the full history so the repeats will be logged on the correct date.
Hi e7andy! Thanks for all your work on this. Love being able to filter and hide badges, and the new compact setting is very helpful to see more on screen.
ReplyDeleteI have a few requests if you have time and inclination...
On the Challenges page:
• I would love if you could add back in the column for "remaining" that is on the old challenge page, so you can see how many steps, activities, miles or whatever of a challenge are remaining without having to do the math.
• Visual progress bars like in the old UI - it was a lot easier to get an overview at a glance with the old UI compared to the traffic light bubble system on the new one. I find I have to do a lot more reading because it is visually less intuitive.
On the My Badges page:
• Would it be possible to make the badge filter settings sticky for logged-in users? I filtered out all the badges that aren't relevant for me, but every time I navigate away from the My Badges page and then back again, I have to re-apply all the filters. It would be great if you could make the settings persist, and then just add a "Reset filters" button for if you want to clear them all...
• Smaller badge icons that do not have a fixed number per row so you can see more at once, and more again by zooming out the page.
Cheers!
Fixed:
Delete* Remaining column is back.
* Badge filters are now sticky for all users.
* Increased the max badge cards per row to 10.
Notes:
* In the non compact view there are progress bars. I removed them in the compact view since there wasn't enough space to show them.
* Use the hide badge function to hide badges that are not relevant to you.