Duolingo Web Streak Freeze Reminder
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This userscript continuously monitors your Duolingo streak freeze status while you learn. If you don't have an active Streak Freeze, it displays a non-intrusive panel reminding you to purchase one. One click takes you directly to the Duolingo shop to buy a Streak Freeze, protecting your hard-earned streak. The script automatically rechecks after each page navigation, so you're always aware of your protection status. You can also enable an auto-open feature that takes you to the shop immediately when a missing freeze is detected, ensuring you never forget.
WHERE IT RUNS
The script runs on all Duolingo pages (*.duolingo.com/*), including the learning interface, profile, leaderboards, and settings. It works seamlessly with Duolingo's single-page application architecture, detecting route changes and re-evaluating your streak freeze status without requiring page refreshes. This ensures you receive timely reminders whether you're in the middle of a lesson or browsing your progress.
HOW TO USE
Install the script through the BotGentz extension. Once active, you'll see a small panel appear whenever you lack an active Streak Freeze. The panel displays your status, a button to buy a Streak Freeze, and a dismiss option for the current session. Use the toggle to enable automatic shop opening whenever a missing freeze is detected. The panel can be dragged, collapsed, or dismissed at any time.
THE MECHANISM - DOM STATE INSPECTION
Unlike simple URL watchers, this script directly inspects Duolingo's rendered DOM for the Streak Freeze badge elements. It queries specific data-test attributes (e.g., "streak-freeze-badge") and known class names that Duolingo uses to indicate active freezes. The script also handles Duolingo's React-based rendering by waiting for the DOM to stabilize after navigation events. It uses a MutationObserver to detect page changes and re-evaluate the badge presence, ensuring accurate status detection even after dynamic content updates. This approach avoids fragile URL parsing and directly observes the visual state you see on screen.
THE PANEL
The reminder appears as a floating panel that you can drag anywhere on the page. Your position is saved per website, so the panel stays where you put it. The panel snaps to the nearest edge when you release it, keeping your interface tidy. Click the panel header to collapse it into a small bubble that only shows the emoji icon, perfect for minimal distraction. Drag from the bubble to restore full size. The panel automatically resizes to fit its content and can be closed completely with the dismiss button. Press the Escape key to quickly collapse the panel if it's open.
PLEASE NOTE
This script requires the free BotGentz extension to run. Duolingo frequently updates its website, which may change the CSS classes or DOM structure used for streak freeze detection. If the script stops working, please check for updates. This script does not collect, store, or transmit any personal data. All settings (dismissal state and auto-open preference) are stored locally using GM_setValue and never leave your browser. The script only reads visible DOM elements and does not access passwords, hidden inputs, or any sensitive form data.