Changelog

What's new in Geer

Every improvement, release by release. Fed straight from our development work.

v2.20.0

Improved

  • Every form has a fresh look with new fields, choices and switches.
  • Errors show right under the field.
  • Log service shows how far you rode since the last service and how often the task is due.
  • After you confirm your e-mail address, geer shows it as verified within a second, even if you clicked the link on another device.
  • If your e-mail address is not verified yet, you can resend the link right from the hint.

Fixed

  • Log service showed km to riders who use miles.
  • Picking a date before a part's last entry showed an error with the wrong date.
  • Saving an e-mail address that another account already uses showed an unclear error.
  • After a failed save, the form lost what you typed.

v2.19.2

Fixed

  • On some devices, the menu button in a part's history showed a question mark box instead of three dots.

v2.19.1

Fixed

  • If you signed up with a free trial, setting up your first maintenance plan still limited you to 5 parts. You can now add as many parts as you need.
  • If you changed your maintenance plan during setup and went back, the change did not show on the plan.

v2.19.0

New

  • geer asks once to add the app to your home screen, after your first tracked ride.
  • New riders are asked once to turn on push notifications.

Improved

  • The install page shows the right steps for your browser. On a computer, it shows a QR code to open it on your phone.
  • Tapping a notification opens geer in the window you already have open.

Fixed

  • Installing geer on Android did not work.
  • The install steps were wrong in most iPhone browsers other than Safari.
  • Push notifications for due parts sometimes did not arrive.

v2.18.0

New

  • Set up a whole bike at once. Answer a few questions and geer suggests a maintenance plan for every part, added in one tap.
  • New riders get a personal maintenance plan from their Strava rides when they sign up.

Improved

  • The plus button on your dashboard adds a part or sets up a bike. Settings sit at the top right.
  • Suggested service intervals fit real wear better, with new presets for chain lube, tire checks and suspension forks.

Fixed

  • The corners of the add part wizard turned square for a moment when you moved between steps.

v2.17.0

Improved

  • Part icons appear faster.

Fixed

  • The icon picker on phones could not be scrolled and was cut off at the bottom.
  • Emails and notifications sometimes showed a word like gear instead of the part icon.
  • Internal fixes to how subscriptions are kept up to date.

v2.16.0

Improved

  • Yellow now starts closer to the service. Parts with long intervals no longer warn thousands of kilometres early.
  • Your parts now show the task that is due next, instead of the task that is furthest worn.

v2.15.1

Fixed

  • The suggested maintenance tasks always used kilometre numbers, even for riders who use miles. A suggested chain replacement showed 4000 miles instead of 2500, so every suggested distance interval was far too long. Suggestions now convert to your unit. If you use miles, tasks you created before this update keep their old interval, so open them and adjust where needed.
  • If you use miles, opening a task to edit it could show an interval one mile lower than the part page showed, and saving kept the lower number. Both screens now show the same value.

v2.15.0

Improved

  • Bikes no longer have an on and off switch. Adding a part to a bike is what puts it on your dashboard.
  • Only bikes with parts on them count towards the free plan. Bikes sitting in your Strava account with no parts no longer take up a slot, so some riders will find their tracking running again.
  • Paywall opens over the page you are on instead of replacing it, so you keep your place. It also loads faster.

v2.14.2

Fixed

  • Opening a part or the settings page directly, for example after a refresh or from a link, made every menu action jump to the dashboard. The actions now open as expected.
  • Some part actions, like Deinstall or Assigned ride types, got stuck on a loading spinner the second time you opened them. They open every time now.

v2.14.1

Fixed

  • A paid membership could show as unpaid a day after signing up. It now stays recognised.

v2.14.0

New

  • Parts can now carry a note. Add it when you create a part, or later on the edit screen.

Improved

  • Content now blurs and fades softly as it scrolls under the top bar, instead of disappearing behind a hard edge. The same look is on the dashboard toolbar and inside drawers.

v2.13.2

Improved

  • Internal maintenance release. No functional changes.

v2.13.1

Fixed

  • Opening the app briefly showed all your parts before switching to the bike you last had selected, so the cards visibly jumped and re-sorted. The app now opens straight to your last selected bike.

v2.13.0

New

  • Geer now shows you what it is doing while your parts sync. A status message appears as soon as a sync starts, names the part being updated, and confirms with a checkmark once everything is done.

Improved

  • Syncing is lighter on Strava: when several parts sync in a row, geer reuses the ride data it just fetched instead of requesting it from Strava again.

Fixed

  • Parts could occasionally get stuck in a syncing state after an interrupted sync. Geer now detects this and recovers automatically.

v2.12.5

Fixed

  • The dashboard could become slow to load when an account tracks a large number of parts. It now looks up only the parts that need attention instead of loading every part you track, so it stays fast as your bikes and parts grow.
  • A part that was due could be missing from Needs Attention if two of its maintenance entries were recorded with the same date and time. Those parts now show up correctly.
  • With a lot of bikes, the sidebar scrolled away with the page and Settings could be pushed out of view. The bike list now scrolls on its own, and the search field and Settings stay in place.

v2.12.4

Fixed

  • Strava knows two kinds of indoor rides: virtual rides (Zwift and similar) and regular rides tagged as indoor cycling, for example trainer rides recorded with a bike computer. Geer used to recognize only virtual rides. Now both kinds count as indoor: they add mileage to indoor only parts and are excluded from outdoor only parts correctly. If you use indoor only or outdoor only parts, run a manual sync in your settings to correct the mileage.

v2.12.3

Fixed

  • Opening a part no longer flashes its loading skeleton twice.

v2.12.2

Fixed

  • Part pages with little content no longer scroll for no reason.

v2.12.1

Fixed

  • Swiping between the tabs on a part page now works anywhere on the screen, even in the empty area below short content.

v2.12.0

New

  • Geer now confirms your rides were tracked. The next time you open the app after an activity counted toward one of your parts, a short message like "Morning Ride tracked" or "3 activities tracked" appears.
  • Bikes in the desktop sidebar now show a status dot: red when a part is due or overdue, yellow when one is getting close. You can see at a glance which bike needs attention.
  • Large fleets get a search bar at the top of the desktop sidebar. Start typing and the bike list filters as you type.

Improved

  • Adding a maintenance task to an existing part now works like the add-part wizard: tap the suggested tasks, adjust them if needed, and save them all at once instead of filling out a blank form.
  • Log service is now available directly in a maintenance task's menu, so it's easier to find.
  • On the part page you can now swipe between Maintenance Tasks and History, and the tabs slide smoothly when you switch.
  • Steps in the add-part wizard now slide into place as you move forward and back.

v2.11.2

Fixed

  • Part tiles now highlight the maintenance task that needs attention soonest, with the matching color and countdown. A part that's close to due no longer shows up green as if everything's fine.
  • Sorting by Due Soonest now keeps parts that are due or overdue at the top, including on bikes you haven't ridden much recently.

v2.11.1

Fixed

  • Logging a service now saves instantly instead of hanging while it loads. Your mileage updates in the background right after.
  • Starting a manual sync now takes you to your dashboard, where you can watch your parts sync and see the fresh numbers as soon as it's done.

v2.11.0

Improved

  • Opening a component, adding a part, or changing your settings now slides up as a panel over your dashboard instead of taking you to a separate page. You can swipe it down to dismiss it, and closing it drops you right back where you left off.

v2.10.0

New

  • You can now adjust the width of the desktop sidebar by dragging its right edge, and Geer remembers your chosen width the next time you visit.

v2.9.0

New

  • You can now move an installed component from one bike to another in a single step. Open the component's menu, choose Move to another bike, then pick the destination bike, the date and time of the move, and the ride type.

v2.8.0

New

  • A new Needs Attention view for larger fleets puts the components that need action first, so you can see what to service without scrolling through everything.
  • The dashboard now adapts to your fleet size, with a layout and navigation built for managing many bikes at once.

v2.7.2

Fixed

  • Installing or deinstalling a part now saves instantly instead of hanging while it loads. Your mileage updates in the background right after.

v2.7.0

New

  • Internal observability tools for Strava API limits

v2.6.1

Fixed

  • The center of a dashboard tile is now tappable again.
  • Long bike and service names in a component's history no longer push the distance and options menu off the screen.
  • Long bike names in the bike selector now shorten neatly instead of spilling out of the bar.

v2.6.0

New

  • A new "Sync bikes" button in Settings lets you pull in new or changed bikes from Strava whenever you want.
  • You can now choose how each component shows its progress, switching between remaining and elapsed in the new display menu, which also holds sorting and layout options.

Improved

  • Better feedback throughout, with confirmation messages and loading spinners on buttons while they work.
  • Strava syncing is faster and more reliable behind the scenes, keeping your data fresh while staying well within Strava's limits.

Fixed

  • Bikes you delete or retire on Strava are now handled correctly in geer.
  • Small layout fixes, including button alignment in the header.

v2.5.2

Fixed

  • Resolved an issue that could cause syncs to fail during periods of heavy load.

v2.5.1

Fixed

  • Part mileage is no longer reset to 0 when Strava temporarily returns an error during a sync.

v2.5.0

New

  • Bike changes on Strava (renames, new bikes) are now picked up automatically:
    • on sign-in
    • via a daily background check
    • when you record a ride on a bike we don't know about yet (sibling new bikes come along for the ride)

Improved

  • Security and stability improvements under the hood (framework upgrades).

Fixed

  • "Sort by Due Soonest" puts overdue parts at the top, even on bikes with limited ride history.
  • Card outline color matches the maintenance task being shown — no more green progress bar wrapped in a yellow ring.
  • Stable ordering for parts with identical sort values — no reshuffling between renders.
  • Free-tier bike cap is respected when a new bike is auto-imported from a ride.

v2.4.1

Fixed

  • Component mileage now correctly counts activities for components moved between bikes — previously, rides done on a bike in the middle of the install history could be missed from the total

v2.4.0

Fixed

  • Component mileage now correctly excludes activities from before the component was installed, including for activities synced via webhooks and the gear-update background job
  • Re-syncing a bike now resets mileage on components that no longer match any activity, instead of leaving stale numbers
  • Reassigning an activity to a different bike now updates mileage cleanly — no leftover entries on the old bike, and reassignments to bikes geer hadn't seen yet no longer fail
  • Removing a bike from an activity in Strava now subtracts the mileage from your components, instead of leaving it stuck on the old bike
  • Account setup reminder emails are sending again after a cron regression

v2.3.0

New

  • Unlimited maintenance tasks per component — add as many service intervals as you need

Fixed

  • Smoother animations on maintenance task tiles and pills
  • Minor layout and polish fixes throughout

v2.2.0

New

  • Dashboard redesign with bike sidebar navigation and mobile bottom bar
  • Overhauled component tiles — next service due is front and center
  • Grid and list view toggle for components
  • Sort by due soonest, alphabetically, or most used — preferences persist across navigation
  • Redesigned component detail page with hero section, tabs, and progress bars
  • Illustrated empty states when a bike has no components

Fixed

  • Deleting maintenance tasks on deinstalled components now works correctly
  • Strava sync not updating dashboard and detail page due to broken polling — also syncs faster now
  • Spinner shown during Strava sync instead of stale data
  • Dark mode color improvements throughout
  • Various layout and alignment fixes on mobile and desktop

v2.1.0

New

  • Gear wear status now appears on your Strava activity descriptions.
  • Optional Strava write permission is requested on next login.
  • Faster detection when you switch bikes on an activity.
  • Internal improvements

v2.0.0

Fixed

  • Removed deprecated database model

v1.15.2

Fixed

  • Fixed an issue where lifetime memberships were not applied correctly for some users.

v1.15.1

Fixed

  • Discount codes are now applied correctly

v1.15.0

New

  • You can now refer friends and get rewarded

v1.14.0

New

  • Redesigned the sign-in page
  • Cleaned up modals and dialogs with better animations

v1.13.1

Fixes

  • Pull-to-refresh now works reliably again
  • Removed distracting scrollbars on horizontally scrollable areas
  • No more flickering when loading svgs
  • Added loading state to the subscribe page so nothing "jumps" anymore
  • Longer notes on install/deinstall events are now fully visible again
  • Improved spacing between tags on component tiles

Improvements

  • Menu items now have icons for better clarity

v1.13.0

New

  • Transition to freemium

v1.11.0

New

  • Assign parts to ride types (all/indoor/outdoor)

v1.10.5

Fixed

  • Sometimes, one could get stuck in a blank screen in case of an expired session

v1.10.4

Fixed

  • The subscription verification method wouldn't work in some applications

v1.10.3

Fixed

  • Timer service notifications were being sent to user with inactive subscriptions

v1.10.2

Fixed

  • In some cases, it was possible to create/update events in invalid datetimes

v1.10.1

Fixed

  • Uninstalled components couldn't have their service intervals updated

v1.10.0

New

  • Sort uninstalled components last in the dashboard

Internal

  • Optimize error logging
  • Introduce campaign conversion tracking

v1.9.6

Internal

  • Store UTM params in Stripe subscriptions' metadata

v1.9.5

Fixed

  • Stripe checkouts wouldn't allow promotion codes
  • Cancelling a Stripe checkout would send back to /subscribe, potentially making the navigation stuck

v1.9.4

Chores

  • Replace hardcoded Sentry configs with environment variables

v1.9.3

Fixed

  • When updating the datetime for a service event, the service mileages were not being re-computed
  • In some cases valid sign-in sessions were being revoked for no reason

v1.9.2

Fixed

  • Repetitive notifications for approaching services

v1.9.1

Fixed

  • Tweak emoji sizes
  • Some values from moving time and timer maintenance tasks were not shown properly on email notifications

v1.9.0

New

  • Custom emoji
  • Bundled mail notifications
  • Migrate mailing to Resend

v1.8.2

Fixed

  • Sign-in page spacing when extended trial coupons are applied

v1.8.1

Updated

  • Copy on trial-will-end notification

v1.8.0

New

  • Introduce email notifications for trials that are ending soon

v1.7.1

Fixed

  • Tweak what types of subscriptions are shown the /subscribe page

v1.7.0

Improved

  • Push notifications now open the corresponding page (e.g. component page)
  • Send a reminder when the trial period is about to end

v1.6.1

Fixed

  • "System" theme mode not applied as the default

v1.6.0

New

  • Dark mode
  • Support for promotional codes

Fixed

  • Deleting a user would require manual deletion of some of its related entities first

v1.5.7

Fixed

  • Component failure to sync when selecting "Installed since the beginning" but no activities are found for the component. Now fallbacks the install date to the moment the component is set up.

v1.5.6

Fixed

  • An error with the Stripe integration related to trial days being only possible to be applied 48 hours in the future

v1.5.5

Fixed

  • Attempts to process activities with no gear were throwing and giving false positives

v1.5.4

Fixed

  • Reamining trial days were not being added to subscriptions made during the trial period

v1.5.3

Fixed

  • Many types of activities were not being processed properly. This fix changes how we check for the type of activity (from type to sport_type) and includes the following ones:
    • Ride
    • EBikeRide
    • EMountainBikeRide
    • GravelRide
    • Handcycle
    • MountainBikeRide
    • Velomobile
    • VirtualRide

v1.5.2

Fixed

  • E-bike rides were not being processed properly

v1.5.1

Fixed

  • Some components would be in the "Syncing" state forever

v1.5.0

New

  • Checks for activities that had the bike changed on Strava are now done whenever any update is sent by Strava (e.g. activity title)
  • Support extended trial days Stripe coupons

v1.4.2

Fixed

  • Add missing authToken in Sentry configuration

v1.4.1

Fixed

  • Some webhooks sent by Stripe were not responding successfully

v1.4.0

New

  • Refresh dashboard once app is refocused
  • Auto apply discount coupons when subscribing

Updated

  • Redesign and rebrand subscribe and onboarding pages
  • Update images on email notifications

v1.3.2

Fixed

  • Editing or adding a custom maintenance task during component setup doesn't work