- Added Route Builder Quick
- I defined a few ‘modes’ of Route Builder in this post
- This mode is meant to get you out the door as fast as possible - set your start/end point and your maximum distance, and it’ll give you a route that will complete roughly the most streets possible within that distance
- This does not care about your city efficiency
- There’s a bit of ‘jitter’ to it, so it won’t give you the same route over and over (unless there’s like only one incomplete street within the set distance)
- Continued efforts in my ~year long work to improve city sync processing
- I’m going to be able to start testing syncs again … my recent effort comes with some tradeoffs that I need to monitor, to see how the whole system responds … It’s still too early to say for sure, but the initial tests show a 1/3 to 2x speedup
- Block activities that are further than 200 miles or faster than
2015 miles per hour- There are a lot of very problematic activities and this effort cleans out most of them
- These are mostly car/train/plane rides tracked as walks (wtf), or activities that are tracked, paused, there’s a bunch of travel, and then un-paused
- Display warning for activities that are exceed these limits
- I’m actively cleaning them out of the site, but the warning is there to give you some notice
- Fix accuracy of mile/kilometer conversions

- Use a different duration value from MapMyFitness (active vs elapsed) because elapsed is sometimes reported as 0
- These activities with 0 duration are going to trigger the “too fast” filter mentioned above
- I’ll go through and try to update any existing 0 duration activities, but it does look like sometimes there’s just no timing
- If you notice an activity not syncing in, check its duration then try a single activity sync
- Add the ability for people to reconnect their Garmin accounts
- This is for people caught by the ‘duplicate request’ error when trying to sync individual activities
- If you’re not experiencing that issue, do not use this feature
- It works by clicking the ‘Reconnect’ button in the Settings page … you’ll be redirected back to the site and you’ll need to click the ‘Connect’ button on the same page in order to reinstate the connection
- Failling to click the ‘Connect’ button after clicking ‘Reconnect’ will cause all sorts of problems for yourself, so make sure you do that
- Added a special exclusion for trunk Ways from OSM in certain countries
- Added an exclusion for all trunk_link Ways
- Display visual feedback that Node Hunter is working/waiting
- Changed the X under the Node Hunter button to display after receiving response, not after sending the request
- Apply Gaps & Islands solution to Territory creation, to avoid building incredibly inaccurate Territories
- This is another result of people tracking, pausing, traveling, and un-pausing … stop doing that
- Add our largest Territory to our profile page
- Fix issue where Territories were re-shown across multiple pages
- Fix issue where the Territory size displayed on the profile page was wrong
- Stop showing Territory list to non-Supporters
- Display warning on Territory page if the user is no longer a Supporter
- Use a larger font size on Territories page
- Display currently syncing cities on Status page
- Swap out city sync status on the Status page to display whether or not syncing is running, not whether people are allowed to queue cities
- Manual syncing used to actually try to send the city in for the sync at that moment, and it would return an error if it couldn’t due to system load … To avoid all that irritation, the manual sync now pushes that city to the front of the queue & lets the automated system pick it up next
- Stop sending email on activity deletion for resync requests
- Disable the resync feature for activities that are manually uploaded
- Adjust menus throughout the site to always open within view e.g. open up if at bottom of page, open down if at top of page
- Fix for the default grouping in the chart on our profile page - it was displaying data grouped by month, but the menu was set to weekly
- Added more info to LifeMap Poster creation page
- Apply Gaps & Islands solution to LifeMap Poster to avoid printing long straight lines due to pausing/traveling/unpausing (please stop)
- Adjusted top navigation Become A Supporter link to hopefully not be as ugly, although you shouldn’t see that link because you’re a Supporter right? … right? because you like the site and want it to stick around? right?
- Cleaned up the directions present on our created Routes
- Reworked the footer that’s displayed at the bottom of every page
- Added the English language version of the city name to its page, like the region pages have
- Fixed an issue with people who fell between two AMSAP Divisions
- Added my own Links page to replace LinkTree
- Fix for fucked up activity categorization in Polar
- Added entries to the News page
- Various underlying software updates
Block activities that are further than 200 miles or faster than 20 miles per hour
Yay!
Recently I’ve been seeing life map updates take hours on at least Saturday mornings (always fast on weekday early mornings), including this morning. While waiting in those cases, the status page tells me the lifemap time was like 5 seconds (supporter). I think this part of the status page is wrong or is at least wrong for certain accounts with big lifemaps.
The build time doesn’t take longer than a couple minutes. I just timed yours, and it finished in just over 1 minute.
There’s a one minute cache on the Status page for those entries (30 minutes for the cities currently syncing list). So I suppose it’s possible that the queue blew up within that minute.
There is some caching involved within the map as well, so if you view your LifeMap before it has finished rebuilding then it’ll cache that view for a little while. My understanding was that it was a 5 minute cache. ![]()
When this happens, I’ve periodically refreshed (in case the auto-updating was malfunctioning) my lifemap multiple times across hours without it updating. Then eventually it does
. First world problems.
Great work James. On the links page it might be useful to also have Status. And black text on grey back is difficuklt to read and wont be WCAG contrast compliant,
Each time you refresh, it’s just pulling from the cache.
Let me know the next time this happens - the best way will be through the contact form because that’ll alert me. Hopefully I’m free when it happens and I can figure out wtf. That shouldn’t be happening.
![]()
I don’t have any grey backgrounds on that page. Now I’m interested in what you’re seeing.
The WAVE report lists a couple other issues, but nothing about contrast.
The wrong-answers-only machine says the contrast ratios are 19.9:1 and 7.7:1
This happened to be yesterday. The stats updated and I got the progress made email almost immediately, but the lifemap didn’t update for quite some time (didn’t time it, but was definitely a few hours).
Not sure why, but I really like these changes. Small quality of life improvements I guess that show polish. ![]()
Hope this helps. This is Chrome on a Chromebook, this is being changed by browser theme. On changing to a lighter one the contrast problem has gone away
Ah! Dark mode … I forgot to set the text color for that “Join the community” text. The next release will adjust that - thanks for sharing!
Thank you ![]()
@JamesChevalier , thanks for the updates. Can you please have some 200+ mile activites re-added when manually requested? I have a 73 hour activity that was a massive part of my overall territory:
Strava | Running, Cycling & Hiking App - Train, Track & Share
I do love the idea of adding the speed limiter. Could you also have that implemented into ALL of CityStrides? I’ve stumbled across a few striders more locally who’ve purposely driven nodes before.
Except several races are over 200 miles. 200 miler is the new 100 miler.
Maybe could have a prompt asking the user to verify their 200+ mi activity is correct/legitimate, to let them add those insane activities on the honor system?
I saw several folks in the Territories list who had done races like Vol State, Heart of the South or even Coast to Coaster - all over 200 miles and are journey runs. Those were quite a few of the top spots and super likely all legit. Maybe flag those to get another review for speed. Maybe instead of a 20mph catch, runs over 200 miles can have a 10mph catch? that would be insanely fast for a 200+ race.
Yeah, the territory leader Vanessa Kline ran pretty much the entire state of Tennessee, and then just kept going. She’s a maniac. Her territory still appears, but the activities are now invisible. She had recorded the entire thing as 3 activities.
These are mostly car/train/plane rides tracked as walks (wtf)
Hahah including me. I like to record my plane takeoffs! Heatmap the runways.
Yeah, that’s one of those journey runs for sure. I know her and I know she’s done one of them (I think it was Vol State, but may have been one of the other ones, maybe more than one)
Yes, I used to be able to check the LifeMap when I finished an activity as soon as I got back into the car. It was very useful to see whether I missed a block or tiny cul-de-sac, etc, before I left the area.
Several months (?) ago it began to take hours before I could see an update. Nice to know it wasn’t just a “me” issue. I’m a little unclear, tho–has this been addressed with this update, or am I not refreshing properly, or…? ![]()
I’m not opposed to this.
I may want to exclude them from processing - not sure how that affects your expectations.
I’m focused on the post-city-sync processing, where performance is seriously hurt by wild activities. So, maybe activities of this size can be processed when they’re synced in but not included in reprocessing after a city syncs … or maybe I do some testing with this data present (and the super bad ~4k mile activities gone) and see that things work well.
Overall, there are far far more bad activities at this distance than there are real activities. It’s much easier for me to clean out all the bad data, and then figure out a scalable way to allow outliers.
Oops, typo - the speed limit is 15 miles per hour … I’ll update the main post in a minute.
The change was made in Updates on February 12, 2026 (Release 1416) to reduce the load on my database.
There’s definitely some caching, in an external service, which I understand to be 5 minutes but have been able to verify a couple cases of data sticking around for hours. If I’m free during the time of the issue, I can review the external service to see what I can do about it, but I can’t really figure out what actions to take / where to look if the issue isn’t actively happening … definitely makes it tough to review.
as a wild workaround (this doesn’t feel like normal/expected use of the site, I’d prefer to resolve the issue entirely) do not view your LifeMap (any version of it that’s displayed on maps throughout the site, not just the main page) before your run is synced … wait a couple minutes after seeing it present in your list (maybe check the Status page to make sure there isn’t a big delay in the LifeMap queue) … then view your LifeMap. This can avoid caching the previous/old version entirely.
