A cheap way I’ve been keeping subscriptions from getting away from me is to log each one in a spreadsheet with name, type (monthly, annual), amount, and renewal date.
Using this, I can find things to cancel when I want to sign up for something new. It also helps point out opportunities for annualizing monthly subscriptions I want to keep for additional savings.
For people using GnuCash, you can define these in GnuCash rather than separate spreadsheets/files (menu "Actions > Scheduled Transations").
Then, whenever the scheduled time occurs, GnuCash will add the right double-entry accounting entries, and notify you the next time you start an interactive session.
Like any transactions added manually in GnuCash, these will be matched up with imported data (and any transactions in imported data that are not already entered manually or by schedule will be highlighted as new). The scheduled transactions also show up like any other when you reconcile a GnuCash account with a statement from the bank/CC.
I log all my subscriptions and other periodic income/expenses and keep track of my daily net income... when you look at the impact a subscription makes per day it makes you very wary of them.
Most things let you keep access until expiration so just default to cancel and see what sticks for you. I always log in to cancel most things I start right away.
Using this, I can find things to cancel when I want to sign up for something new. It also helps point out opportunities for annualizing monthly subscriptions I want to keep for additional savings.