<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="https://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.tomsguide.com/uk/feeds/tag/ai"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from Tom's Guide UK in Ai ]]></title>
                <link>https://www.tomsguide.com/uk/ai</link>
        <description><![CDATA[ All the latest ai content from the Tom's Guide  UK team ]]></description>
                                    <lastBuildDate>Wed, 19 Aug 2026 19:00:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ Google is giving students a free year of Gemini Pro — plus, new AI study features ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Once again, Google is<a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"> </a>giving eligible college students in the U.S. an opportunity to utilize AI tools for studying and more with 12 months of Google AI Pro for free. Normally, $19.99 a month, the plan comes with higher Gemini usage limits, Gemini inside apps including Gmail and Google Docs, 5TB of storage and access to tools such as <a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do">Gemini Spark</a>.</p><p>Students outside the U.S. haven’t been forgotten, although the offer is different. Eligible students in more than 140 markets can receive <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-is-launching-a-cheap-subscription-in-over-40-countries">Google AI Plus</a> free for one year, with twice the Gemini usage limits available to free users, <a href="https://www.tomsguide.com/ai/gemini-omni-flash-can-create-and-edit-videos-with-your-voice-and-it-feels-like-the-future-of-multimodal-ai">Gemini Omni</a> and 400GB of storage.</p><p>Google is also offering student discounts on a bundle combining <a href="https://www.tomsguide.com/ai/google-just-gave-its-ai-pro-plan-a-massive-storage-upgrade-and-didnt-even-raise-the-price">Google AI Pro</a> with <a href="https://www.tomsguide.com/opinion/youtube-premium-is-the-only-streaming-service-i-pay-for-and-i-couldnt-be-happier">YouTube Premium</a>. The company says the savings can reach 70%, depending on the market and offer.</p><p>You’ll need to verify your student status through SheerID and provide a valid payment method when you sign up. The free plans automatically become paid subscriptions after the 12-month period unless you cancel. Students have until December 31, 2026 to redeem the offer.</p><p>In addition to the free subscription, Google has a plethora of new tools designed to help students organize classes, create study plans and work through difficult material. Here’s what’s coming to Gemini and Search.</p><h2 id="a-new-student-hub-inside-gemini">A new student hub inside Gemini</h2><p>Google has created a dedicated student hub inside the Gemini app that brings its learning features together in one place.</p><p>Available at <a href="https://gemini.google.com/students" target="_blank">gemini.google.com/students</a>, the hub provides shortcuts for starting a study notebook, creating flashcards and taking practice quizzes. Google says it will add new learning tools to the hub as they become available.</p><p>The student hub is rolling out on mobile and the web to signed-in personal accounts in every language supported by the Gemini app. Support for school-issued Google accounts and younger users who meet Google’s age requirements is expected in the coming weeks.</p><h2 id="study-notebooks-build-a-plan-around-your-class-materials">Study notebooks build a plan around your class materials</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="C5cYdF6Qa4Sk2f7MNKd7wV" name="8 - 2026-06-26T090428.943" alt="notebooklm" src="https://cdn.mos.cms.futurecdn.net/C5cYdF6Qa4Sk2f7MNKd7wV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Study notebooks are designed for those moments when you have a stack of lecture notes and no idea where to begin.</p><p>Upload your class materials and Gemini will break the subject into smaller topics. You can then take a diagnostic quiz so the AI can identify what you already understand and where you need more work. It uses those results to generate shorter lessons and quizzes, while a progress dashboard tracks how much you’ve completed.</p><p>Google plans to add graphs and images to notebook lessons in the coming weeks. Gemini will also be able to pull exam and assignment dates from an uploaded syllabus and add them to Google Calendar, although it will ask for permission before doing so.</p><p>The feature itself is available to free Gemini users, but Google AI Plus and Pro subscribers can create more notebooks and include more sources.</p><h2 id="gemini-can-now-generate-interactive-3d-visuals">Gemini can now generate interactive 3D visuals</h2><p>Some subjects are much easier to understand when you can see what is happening instead of reading another paragraph about it.</p><p>Gemini’s interactive visualizations can create functional 3D simulations based on a question. Ask it to show how DNA works, for example, and it can generate a structure that you can rotate and zoom into. Other examples provided by Google include watching a pendulum transfer energy or exploring cash burn rates in an interactive table.</p><p>Besides 3D models, Gemini can also design tables, grids and simulations depending on the subject and the way you phrase the request.</p><p>Interactive visualizations are rolling out globally to personal and school-issued Google accounts, subject to age requirements and usage limits.</p><h2 id="deep-research-is-coming-to-gemini-live">Deep Research is coming to Gemini Live</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Google is also bringing <a href="https://www.tomsguide.com/ai/googles-gemini-deep-research-is-now-free-heres-how-to-use-it">Deep Research</a> into <a href="https://www.tomsguide.com/ai/google-gemini/gemini-live-what-features-are-available-now-and-what-is-coming-soon">Gemini Live</a>, allowing students to start a research report by speaking rather than typing out a detailed prompt.</p><p>Once the research begins, you don’t need to leave Gemini Live open. You can close the chat, lock your phone or continue another conversation while Gemini works in the background. The app sends a notification when the report is ready.</p><p>You can then talk through the findings in Gemini Live, ask follow-up questions or tell Gemini to refine part of the report. That could be useful for working through research while walking across campus or reviewing a subject without sitting in front of a laptop.</p><p>Deep Research in Gemini Live is rolling out globally now, although availability and age restrictions may vary.</p><h2 id="google-search-can-create-interactive-learning-tools">Google Search can create interactive learning tools</h2><p>Google is adding generative visual tools to Search as well as Gemini. Search for a broad subject such as the pH scale and an <a href="https://www.tomsguide.com/ai/google-ai-overview-3-things-i-like-and-2-i-dont">AI Overview</a> may generate an interactive visual explaining the basics. You can then open<a href="https://www.tomsguide.com/ai/googles-ai-mode-is-changing-how-you-search-heres-how-it-works"> AI Mode </a>and request something more specific, such as plotting different citrus fruits on that scale.</p><p>You can also go directly to AI Mode and describe the learning tool or simulation you need. Google says these generative interface tools are available globally in English in AI Mode and are beginning to roll out in AI Overviews.</p><h2 id="practice-quizzes-are-coming-to-ai-overviews-and-ai-mode">Practice quizzes are coming to AI Overviews and AI Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wQqqimn2ne88xeTWqcbrBb" name="Google AI mode" alt="Google Search AI mode on phone" src="https://cdn.mos.cms.futurecdn.net/wQqqimn2ne88xeTWqcbrBb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Students can now ask Google Search to create a practice quiz on subjects ranging from math and science to foreign languages and the humanities.</p><p>The quizzes include an explanation for each answer and links to further reading. Search can also generate practice questions for the ACT, AP, ENEM, GRE, JEE, LSAT, MCAT, NEET and SAT.</p><p>Google is sourcing some of this test-prep content through partnerships with The Princeton Review, Careers360, PhysicsWallah and Akira Enem. Practice quizzes are available globally in English through both AI Overviews and AI Mode at no charge.</p><p>Additionally, AI Mode can now create files using material from uploaded documents and previous Search conversations. You could upload a photo of handwritten notes and a set of lecture slides, for example, then ask Search to turn them into a one-page guide covering the main concepts. It can create documents, slide presentations, spreadsheets and text files in several formats.</p><h2 id="google-lens-will-coach-students-through-mistakes">Google Lens will coach students through mistakes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VURcdYFCkKSFAw4djrf2KZ" name="google-lens-translate.jpeg" alt="Google Lens translate text" src="https://cdn.mos.cms.futurecdn.net/VURcdYFCkKSFAw4djrf2KZ.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Taking a photo of a homework problem with <a href="https://www.tomsguide.com/us/google-lens-guide,review-5219.html">Google Lens</a> will soon produce more than an answer.</p><p>The new experience is designed to break down the problem, explain individual steps and point out where a student may have made a mistake. If the explanation still isn’t clear, students can continue asking questions in AI Mode and open relevant websites alongside the conversation.</p><p>The Lens learning feature will roll out globally in English over the coming weeks through the Google app on Android and iOS.</p><h2 id="notebooks-are-moving-into-google-search">Notebooks are moving into Google Search</h2><p>Google is bringing Gemini Notebook, the tool previously known as <a href="https://www.tomsguide.com/ai/what-is-notebooklm-heres-what-googles-ai-research-and-note-taking-tool-can-do-for-you">NotebookLM</a>, directly into AI Mode.</p><p>Students will be able to create a separate notebook for each class or project, then fill it with lecture slides, syllabi, web articles and previous AI Mode conversations. Search can answer questions using those selected materials rather than starting with the entire web each time.</p><p>Existing notebooks from Gemini Notebook and the Gemini app will automatically appear in Search, with their sources and instructions synced across Google’s products.</p><p>Notebooks in AI Mode are rolling out in English across more than 180 countries over the next few days. They won’t initially be available in the European Economic Area, and support for additional languages will follow later.</p><h2 id="tools-to-ace-the-school-year">Tools to ace the school year</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MLrGqhGXqZThHFqgJwePVe" name="Student studying in a dorm room" alt="A female student sits on a window sill studying with a laptop in a college dorm room." src="https://cdn.mos.cms.futurecdn.net/MLrGqhGXqZThHFqgJwePVe.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Taken together, these updates give Google a fairly complete AI study setup. Students can collect their class materials, find gaps in their knowledge, generate a study plan and test themselves without moving between several unrelated tools.</p><p>As always when using AI, students will still need to check Gemini’s work, particularly when using it for research or complex homework. It's also important to remember to use AI as a study partner and not the main character.  With a free year of Google AI Pro taking on your toughest assignments with confidence may just be easier with an AI study buddy. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/5-features-that-give-claude-the-edge-over-chatgpt"><strong>5 features that give Claude the edge over ChatGPT</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-gemini/google-is-giving-students-a-free-year-of-gemini-pro-plus-new-ai-study-features</link>
                                                                            <description>
                            <![CDATA[ Google is giving college students free access to its premium AI plans for a year as part of a larger back-to-school update spanning Gemini and Google Search. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pqK5mDLABFi5H3ti8Fefh8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zbGkcjNn4C65mE3L37DtF4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Aug 2026 19:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/zbGkcjNn4C65mE3L37DtF4-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Student at desk]]></media:description>                                                            <media:text><![CDATA[Student at desk]]></media:text>
                                <media:title type="plain"><![CDATA[Student at desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zbGkcjNn4C65mE3L37DtF4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Once again, Google is<a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"> </a>giving eligible college students in the U.S. an opportunity to utilize AI tools for studying and more with 12 months of Google AI Pro for free. Normally, $19.99 a month, the plan comes with higher Gemini usage limits, Gemini inside apps including Gmail and Google Docs, 5TB of storage and access to tools such as <a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do">Gemini Spark</a>.</p><p>Students outside the U.S. haven’t been forgotten, although the offer is different. Eligible students in more than 140 markets can receive <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-is-launching-a-cheap-subscription-in-over-40-countries">Google AI Plus</a> free for one year, with twice the Gemini usage limits available to free users, <a href="https://www.tomsguide.com/ai/gemini-omni-flash-can-create-and-edit-videos-with-your-voice-and-it-feels-like-the-future-of-multimodal-ai">Gemini Omni</a> and 400GB of storage.</p><p>Google is also offering student discounts on a bundle combining <a href="https://www.tomsguide.com/ai/google-just-gave-its-ai-pro-plan-a-massive-storage-upgrade-and-didnt-even-raise-the-price">Google AI Pro</a> with <a href="https://www.tomsguide.com/opinion/youtube-premium-is-the-only-streaming-service-i-pay-for-and-i-couldnt-be-happier">YouTube Premium</a>. The company says the savings can reach 70%, depending on the market and offer.</p><p>You’ll need to verify your student status through SheerID and provide a valid payment method when you sign up. The free plans automatically become paid subscriptions after the 12-month period unless you cancel. Students have until December 31, 2026 to redeem the offer.</p><p>In addition to the free subscription, Google has a plethora of new tools designed to help students organize classes, create study plans and work through difficult material. Here’s what’s coming to Gemini and Search.</p><h2 id="a-new-student-hub-inside-gemini">A new student hub inside Gemini</h2><p>Google has created a dedicated student hub inside the Gemini app that brings its learning features together in one place.</p><p>Available at <a href="https://gemini.google.com/students" target="_blank">gemini.google.com/students</a>, the hub provides shortcuts for starting a study notebook, creating flashcards and taking practice quizzes. Google says it will add new learning tools to the hub as they become available.</p><p>The student hub is rolling out on mobile and the web to signed-in personal accounts in every language supported by the Gemini app. Support for school-issued Google accounts and younger users who meet Google’s age requirements is expected in the coming weeks.</p><h2 id="study-notebooks-build-a-plan-around-your-class-materials">Study notebooks build a plan around your class materials</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="C5cYdF6Qa4Sk2f7MNKd7wV" name="8 - 2026-06-26T090428.943" alt="notebooklm" src="https://cdn.mos.cms.futurecdn.net/C5cYdF6Qa4Sk2f7MNKd7wV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Study notebooks are designed for those moments when you have a stack of lecture notes and no idea where to begin.</p><p>Upload your class materials and Gemini will break the subject into smaller topics. You can then take a diagnostic quiz so the AI can identify what you already understand and where you need more work. It uses those results to generate shorter lessons and quizzes, while a progress dashboard tracks how much you’ve completed.</p><p>Google plans to add graphs and images to notebook lessons in the coming weeks. Gemini will also be able to pull exam and assignment dates from an uploaded syllabus and add them to Google Calendar, although it will ask for permission before doing so.</p><p>The feature itself is available to free Gemini users, but Google AI Plus and Pro subscribers can create more notebooks and include more sources.</p><h2 id="gemini-can-now-generate-interactive-3d-visuals">Gemini can now generate interactive 3D visuals</h2><p>Some subjects are much easier to understand when you can see what is happening instead of reading another paragraph about it.</p><p>Gemini’s interactive visualizations can create functional 3D simulations based on a question. Ask it to show how DNA works, for example, and it can generate a structure that you can rotate and zoom into. Other examples provided by Google include watching a pendulum transfer energy or exploring cash burn rates in an interactive table.</p><p>Besides 3D models, Gemini can also design tables, grids and simulations depending on the subject and the way you phrase the request.</p><p>Interactive visualizations are rolling out globally to personal and school-issued Google accounts, subject to age requirements and usage limits.</p><h2 id="deep-research-is-coming-to-gemini-live">Deep Research is coming to Gemini Live</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Google is also bringing <a href="https://www.tomsguide.com/ai/googles-gemini-deep-research-is-now-free-heres-how-to-use-it">Deep Research</a> into <a href="https://www.tomsguide.com/ai/google-gemini/gemini-live-what-features-are-available-now-and-what-is-coming-soon">Gemini Live</a>, allowing students to start a research report by speaking rather than typing out a detailed prompt.</p><p>Once the research begins, you don’t need to leave Gemini Live open. You can close the chat, lock your phone or continue another conversation while Gemini works in the background. The app sends a notification when the report is ready.</p><p>You can then talk through the findings in Gemini Live, ask follow-up questions or tell Gemini to refine part of the report. That could be useful for working through research while walking across campus or reviewing a subject without sitting in front of a laptop.</p><p>Deep Research in Gemini Live is rolling out globally now, although availability and age restrictions may vary.</p><h2 id="google-search-can-create-interactive-learning-tools">Google Search can create interactive learning tools</h2><p>Google is adding generative visual tools to Search as well as Gemini. Search for a broad subject such as the pH scale and an <a href="https://www.tomsguide.com/ai/google-ai-overview-3-things-i-like-and-2-i-dont">AI Overview</a> may generate an interactive visual explaining the basics. You can then open<a href="https://www.tomsguide.com/ai/googles-ai-mode-is-changing-how-you-search-heres-how-it-works"> AI Mode </a>and request something more specific, such as plotting different citrus fruits on that scale.</p><p>You can also go directly to AI Mode and describe the learning tool or simulation you need. Google says these generative interface tools are available globally in English in AI Mode and are beginning to roll out in AI Overviews.</p><h2 id="practice-quizzes-are-coming-to-ai-overviews-and-ai-mode">Practice quizzes are coming to AI Overviews and AI Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wQqqimn2ne88xeTWqcbrBb" name="Google AI mode" alt="Google Search AI mode on phone" src="https://cdn.mos.cms.futurecdn.net/wQqqimn2ne88xeTWqcbrBb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Students can now ask Google Search to create a practice quiz on subjects ranging from math and science to foreign languages and the humanities.</p><p>The quizzes include an explanation for each answer and links to further reading. Search can also generate practice questions for the ACT, AP, ENEM, GRE, JEE, LSAT, MCAT, NEET and SAT.</p><p>Google is sourcing some of this test-prep content through partnerships with The Princeton Review, Careers360, PhysicsWallah and Akira Enem. Practice quizzes are available globally in English through both AI Overviews and AI Mode at no charge.</p><p>Additionally, AI Mode can now create files using material from uploaded documents and previous Search conversations. You could upload a photo of handwritten notes and a set of lecture slides, for example, then ask Search to turn them into a one-page guide covering the main concepts. It can create documents, slide presentations, spreadsheets and text files in several formats.</p><h2 id="google-lens-will-coach-students-through-mistakes">Google Lens will coach students through mistakes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VURcdYFCkKSFAw4djrf2KZ" name="google-lens-translate.jpeg" alt="Google Lens translate text" src="https://cdn.mos.cms.futurecdn.net/VURcdYFCkKSFAw4djrf2KZ.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Taking a photo of a homework problem with <a href="https://www.tomsguide.com/us/google-lens-guide,review-5219.html">Google Lens</a> will soon produce more than an answer.</p><p>The new experience is designed to break down the problem, explain individual steps and point out where a student may have made a mistake. If the explanation still isn’t clear, students can continue asking questions in AI Mode and open relevant websites alongside the conversation.</p><p>The Lens learning feature will roll out globally in English over the coming weeks through the Google app on Android and iOS.</p><h2 id="notebooks-are-moving-into-google-search">Notebooks are moving into Google Search</h2><p>Google is bringing Gemini Notebook, the tool previously known as <a href="https://www.tomsguide.com/ai/what-is-notebooklm-heres-what-googles-ai-research-and-note-taking-tool-can-do-for-you">NotebookLM</a>, directly into AI Mode.</p><p>Students will be able to create a separate notebook for each class or project, then fill it with lecture slides, syllabi, web articles and previous AI Mode conversations. Search can answer questions using those selected materials rather than starting with the entire web each time.</p><p>Existing notebooks from Gemini Notebook and the Gemini app will automatically appear in Search, with their sources and instructions synced across Google’s products.</p><p>Notebooks in AI Mode are rolling out in English across more than 180 countries over the next few days. They won’t initially be available in the European Economic Area, and support for additional languages will follow later.</p><h2 id="tools-to-ace-the-school-year">Tools to ace the school year</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MLrGqhGXqZThHFqgJwePVe" name="Student studying in a dorm room" alt="A female student sits on a window sill studying with a laptop in a college dorm room." src="https://cdn.mos.cms.futurecdn.net/MLrGqhGXqZThHFqgJwePVe.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Taken together, these updates give Google a fairly complete AI study setup. Students can collect their class materials, find gaps in their knowledge, generate a study plan and test themselves without moving between several unrelated tools.</p><p>As always when using AI, students will still need to check Gemini’s work, particularly when using it for research or complex homework. It's also important to remember to use AI as a study partner and not the main character.  With a free year of Google AI Pro taking on your toughest assignments with confidence may just be easier with an AI study buddy. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/5-features-that-give-claude-the-edge-over-chatgpt"><strong>5 features that give Claude the edge over ChatGPT</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Claude can now send Gmail emails — here's why you might want to test it first ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Take a quick trip into Claude’s collection of <a href="https://www.tomsguide.com/ai/claude/i-found-the-7-easiest-claude-connectors-for-people-over-50-start-with-these">connectors</a> and you’ll instantly lock eyes with several recognizable tools catered to everyday use.</p><p>It’s no surprise that Google has the top three slots covered, as its Drive, Gmail and Calendar apps take top billing among its offering of Workspace connectors. At first, the Gmail connector was capable of searching for and finding important emails and summarizing long email threads. But thanks to a recent update, Claude’s Gmail connector can actually send, reply to, and forward emails from Gmail without having to leave the chatbot’s interface.</p><p>While this feature sounds like a great way to streamline your workflow, it may be worth testing first before you decide to make it a core part of your daily inbox interactions.</p><p>Here are more details about what Claude’s Gmail connector can do, as well as the many ways the chatbot’s Drive and Calendar connectors can assist you.</p><h2 id="claude-s-gmail-connectors-can-do-a-whole-lot-more-than-before">Claude’s Gmail connectors can do a whole lot more than before</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2089806039088517356"><p lang="en" dir="ltr">Claude can now send emails in Gmail and manage files in Google Drive.Ask Claude to reply to a thread, and it drafts and sends the response. You control when it needs your approval.Connect Gmail or Google Drive from the connectors menu to try. Available on all paid plans. pic.twitter.com/cFZEjh3MgB<a href="https://twitter.com/cantworkitout/status/2089806039088517356">August 18, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The Gmail connector’s primary specialties include the following:</p><ul><li><strong>Searching and reading emails by relying on natural language queries.</strong></li><li><strong>Drafting emails with proper formatting and message context.</strong></li><li><strong>Managing email organization with clear labels and specified message threads.</strong></li><li><strong>Sending, replying to, and forwarding emails from Gmail. By default, Claude asks for a user’s approval before taking any of those actions. On Claude Team and Enterprise plans, owners decide whether members can allow these actions to run without asking every time.</strong></li><li><strong>Listing all the saved drafts that exist in your Gmail account.</strong></li><li><strong>Accessing email metadata, including attachment metadata (not actual attachment content).</strong></li></ul><p>Having Claude send a message via Gmail on your behalf certainly sounds intriguing. </p><p>But it’s certainly worth reminding everyone reading that the consequences that come with an AI making a mistake via hallucination when you permit it to send emails without you reviewing them could be severe. And after a <a href="https://www.malwarebytes.com/blog/news/2026/07/claude-for-chrome-flaw-could-let-rogue-extensions-access-your-gmail?utm_source=chatgpt.com">recent report</a> from researchers who found a flaw in Claude for Chrome that could allow rogue extensions to read your data and take actions in your accounts, it’s worrying that that sort of extension could potentially ask Claude to send emails without you even knowing. I'm curious if Claude <a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">watermarking</a> every word it writes may show up in its Gmail responses as well.</p><p>It certainly makes all the sense in the world to always have Claude’s Gmail connector ask for your approval every time it’s ready to send out an email on your behalf.</p><p>As for what the Drive and Calendar Claude connectors can do, check out their respective official descriptions from the <a href="https://support.claude.com/en/articles/10166901-use-google-workspace-connectors">Claude Support</a> page below:</p><ul><li><strong>Search and retrieve Google Docs from your Drive.</strong></li><li><strong>Share, move, and trash files in Google Drive. By default, Claude asks for your approval before each of these actions. On Team and Enterprise plans, owners decide whether members can allow these actions to run without asking each time.</strong></li><li><strong>Look up file metadata and preview directly without searching first.</strong></li><li><strong>Read Sheets, Slides, PDFs, images, and MS Office files.</strong></li><li><strong>Upload any file type, with optional auto-convert to Google formats.</strong></li><li><strong>Create folders.</strong></li><li><strong>Add Google Docs directly to chats and projects by pasting URLs or selecting from recent documents.</strong></li><li><strong>View file permissions and list recent changes to your Drive.</strong></li><li><strong>Save Claude-generated files directly to your Drive (requires code execution and file creation to be enabled).</strong></li></ul><ul><li><strong>View events and calendars, including shared calendars you have access to.</strong></li><li><strong>Create, update, and delete events with full customization.</strong></li><li><strong>Find mutual availability across attendees.</strong></li><li><strong>Manage attendee lists and respond to invitations (accept, decline, or tentative).</strong></li><li><strong>Set up recurring meetings.</strong></li></ul><h2 id="final-thoughts">Final thoughts</h2><p>Even though I practically use AI for everything, I still haven’t gotten comfortable with the idea of copy/pasting an email into it and asking it to draft a reply. </p><p>I’m even more iffy about allowing a chatbot to have full access to my inbox and be able to send replies, with or without my approval. Claude’s Gmail connector is super useful, plus its latest ability to handle your replying, sending and forwarding needs is impressive. But give it a test run first to see if it's truly capable of generating a message that wouldn’t make the reader think a chatbot wrote it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful" target="_blank">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights" target="_blank">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/claude-can-now-send-gmail-emails-heres-why-you-might-want-to-test-it-first</link>
                                                                            <description>
                            <![CDATA[ Claude just announced a bevy of upgrades that have come with its Google Workspace connectors, with one of them even capable of sending emails on its own. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sfEFKbhsHHjm8CdZ7EU8mb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Bs8MHgpuiGVWwhWWHiCvzY-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Aug 2026 17:48:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Claude]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Bs8MHgpuiGVWwhWWHiCvzY-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[claude]]></media:description>                                                            <media:text><![CDATA[claude]]></media:text>
                                <media:title type="plain"><![CDATA[claude]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Bs8MHgpuiGVWwhWWHiCvzY-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Take a quick trip into Claude’s collection of <a href="https://www.tomsguide.com/ai/claude/i-found-the-7-easiest-claude-connectors-for-people-over-50-start-with-these">connectors</a> and you’ll instantly lock eyes with several recognizable tools catered to everyday use.</p><p>It’s no surprise that Google has the top three slots covered, as its Drive, Gmail and Calendar apps take top billing among its offering of Workspace connectors. At first, the Gmail connector was capable of searching for and finding important emails and summarizing long email threads. But thanks to a recent update, Claude’s Gmail connector can actually send, reply to, and forward emails from Gmail without having to leave the chatbot’s interface.</p><p>While this feature sounds like a great way to streamline your workflow, it may be worth testing first before you decide to make it a core part of your daily inbox interactions.</p><p>Here are more details about what Claude’s Gmail connector can do, as well as the many ways the chatbot’s Drive and Calendar connectors can assist you.</p><h2 id="claude-s-gmail-connectors-can-do-a-whole-lot-more-than-before">Claude’s Gmail connectors can do a whole lot more than before</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2089806039088517356"><p lang="en" dir="ltr">Claude can now send emails in Gmail and manage files in Google Drive.Ask Claude to reply to a thread, and it drafts and sends the response. You control when it needs your approval.Connect Gmail or Google Drive from the connectors menu to try. Available on all paid plans. pic.twitter.com/cFZEjh3MgB<a href="https://twitter.com/cantworkitout/status/2089806039088517356">August 18, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The Gmail connector’s primary specialties include the following:</p><ul><li><strong>Searching and reading emails by relying on natural language queries.</strong></li><li><strong>Drafting emails with proper formatting and message context.</strong></li><li><strong>Managing email organization with clear labels and specified message threads.</strong></li><li><strong>Sending, replying to, and forwarding emails from Gmail. By default, Claude asks for a user’s approval before taking any of those actions. On Claude Team and Enterprise plans, owners decide whether members can allow these actions to run without asking every time.</strong></li><li><strong>Listing all the saved drafts that exist in your Gmail account.</strong></li><li><strong>Accessing email metadata, including attachment metadata (not actual attachment content).</strong></li></ul><p>Having Claude send a message via Gmail on your behalf certainly sounds intriguing. </p><p>But it’s certainly worth reminding everyone reading that the consequences that come with an AI making a mistake via hallucination when you permit it to send emails without you reviewing them could be severe. And after a <a href="https://www.malwarebytes.com/blog/news/2026/07/claude-for-chrome-flaw-could-let-rogue-extensions-access-your-gmail?utm_source=chatgpt.com">recent report</a> from researchers who found a flaw in Claude for Chrome that could allow rogue extensions to read your data and take actions in your accounts, it’s worrying that that sort of extension could potentially ask Claude to send emails without you even knowing. I'm curious if Claude <a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">watermarking</a> every word it writes may show up in its Gmail responses as well.</p><p>It certainly makes all the sense in the world to always have Claude’s Gmail connector ask for your approval every time it’s ready to send out an email on your behalf.</p><p>As for what the Drive and Calendar Claude connectors can do, check out their respective official descriptions from the <a href="https://support.claude.com/en/articles/10166901-use-google-workspace-connectors">Claude Support</a> page below:</p><ul><li><strong>Search and retrieve Google Docs from your Drive.</strong></li><li><strong>Share, move, and trash files in Google Drive. By default, Claude asks for your approval before each of these actions. On Team and Enterprise plans, owners decide whether members can allow these actions to run without asking each time.</strong></li><li><strong>Look up file metadata and preview directly without searching first.</strong></li><li><strong>Read Sheets, Slides, PDFs, images, and MS Office files.</strong></li><li><strong>Upload any file type, with optional auto-convert to Google formats.</strong></li><li><strong>Create folders.</strong></li><li><strong>Add Google Docs directly to chats and projects by pasting URLs or selecting from recent documents.</strong></li><li><strong>View file permissions and list recent changes to your Drive.</strong></li><li><strong>Save Claude-generated files directly to your Drive (requires code execution and file creation to be enabled).</strong></li></ul><ul><li><strong>View events and calendars, including shared calendars you have access to.</strong></li><li><strong>Create, update, and delete events with full customization.</strong></li><li><strong>Find mutual availability across attendees.</strong></li><li><strong>Manage attendee lists and respond to invitations (accept, decline, or tentative).</strong></li><li><strong>Set up recurring meetings.</strong></li></ul><h2 id="final-thoughts">Final thoughts</h2><p>Even though I practically use AI for everything, I still haven’t gotten comfortable with the idea of copy/pasting an email into it and asking it to draft a reply. </p><p>I’m even more iffy about allowing a chatbot to have full access to my inbox and be able to send replies, with or without my approval. Claude’s Gmail connector is super useful, plus its latest ability to handle your replying, sending and forwarding needs is impressive. But give it a test run first to see if it's truly capable of generating a message that wouldn’t make the reader think a chatbot wrote it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful" target="_blank">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights" target="_blank">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ World Photography Day: 3 wildlife and landscape photographers explain why editing nature is a 'hazardous development' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Photography means the world to me. I've loved it for as long as I can remember, and I love capturing the world around me. Every year, when World Photography Day comes around on 19 August, I can't help but think about the importance of visual storytelling. About the importance of documenting life and the world, and how this art form is a universal language.</p><p>But with developments in AI and the unprecedented rise of AI-generated images, it's becoming more and more difficult to distinguish between photorealistic images created by AI versus those created by humans. The issue goes even beyond being able to distinguish between the two, and as a wildlife photographer, it worries me that <a href="https://www.theguardian.com/environment/2026/jul/20/ai-slop-manipulated-fake-images-birds-citizen-science-aoe" target="_blank" rel="nofollow">AI-altered images of wildlife is are putting research and conservation at risk</a>.</p><p>Despite how I personally feel about the use of AI in photography, I asked myself, "How do professional photographers feel about it?" </p><p>So I reached out to three wildlife and landscape photographers and videographers — <a href="https://ettpust.com/about-1" target="_blank" rel="nofollow">Aleksander Nordahl</a>, <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Christine Sonvilla</a>, and <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Marc Graf</a> — who provided great insight into the use of AI in photography. Alongside that, they also shared what photography means to them, and advice they have for future generations.</p><h2 id="meet-the-photographers">Meet the photographers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pPfMQKeJbEEzx6KAv734G9" name="WPD_interview_Aleksander" alt="A photo of photographer and freediver Aleksander Nordahl" src="https://cdn.mos.cms.futurecdn.net/pPfMQKeJbEEzx6KAv734G9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Faine Loubser / Aleksander Nordahl)</span></figcaption></figure><p>Before we dive into the meat of this article, let's meet the three professional photographers I spoke to. Aleksander Nordahl is a visual journalist and the Managing Editor and Creative Director of <a href="https://sunstone.institute/" target="_blank" rel="nofollow">Sunstone Institute</a>, a global data science institute that conducts "data-driven studies on humanity's greatest threats and find compelling ways to tell the stories."</p><p>And that's exactly what Aleksander does, using underwater photography, videography and audio to show the impact of human activity on Norway's waters and coastline. His latest work, <a href="https://sunstone.institute/posts/a-journey-past-the-tipping-point" target="_blank" rel="nofollow">A Journey Past the Tipping Point</a>, explores the effects of nutrient pollution from fish farming, and I consider it to be essential watching for anyone — not just those who consider themselves nature lovers.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="C9ecZ58KhYTrhycXT2FLC9" name="WPD_interview_Christine_Marc" alt="Headshots of photographers Christine Sonvilla and Marc Graf" src="https://cdn.mos.cms.futurecdn.net/C9ecZ58KhYTrhycXT2FLC9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Christine Sonvilla / Marc Graf / Bear Me In Mind Productions)</span></figcaption></figure><p>I also spoke with Christine Sonvilla and Marc Graf, filmmakers, photographers and conservationists, the geniuses behind <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Bear Me in Mind Productions</a> studio. Their studio aims to promote our relationship with nature and wildlife through TV documentaries, scientific shorts, and photographic assignments. They've documented <a href="https://sonvilla-graf.com/projects/croatian-vultures/" target="_blank" rel="nofollow">Eurasian griffon vulture,</a>, <a href="https://sonvilla-graf.com/projects/slovenia/" target="_blank" rel="nofollow">the Slovenian coast</a>, and <a href="https://sonvilla-graf.com/projects/bears/" target="_blank" rel="nofollow">brown bears in Central Europe</a>, to name a few projects.</p><p>Christine and Marc's work has earned them several accolades, including Wildlife Photographer of the Year. From human-wildlife interactions and specific ecological issues, to the return of large carnivores in Central Europe, their work has taken them all over the world.</p><p>As a wildlife photographer myself, Aleksander, Christine and Marc are great inspirations for me, as they tell stories that matter the most to the human race in an accessible and visually pleasing format.</p><h2 id="it-serves-as-a-personal-retreat-from-the-human-world">'It serves as a personal retreat from the human world'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4150px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="phE5JWGMQ8h7Sz6QxYprkS" name="Sony-A1-II-sample-27" alt="A photo of a seagull flying, taken on a Sony A1 II mirrorless camera and with a Sony FE 28-70mm F2 GM lens" src="https://cdn.mos.cms.futurecdn.net/phE5JWGMQ8h7Sz6QxYprkS.jpg" mos="" align="middle" fullscreen="" width="4150" height="2766" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Photography can mean a lot of different things to different people. For me, it's about capturing the wildlife and people around me, to keep as memories I can look back on when I'm older. It's also about highlighting specific birds that are often overlooked or hated by society, like pigeons — that's why my <a href="https://www.instagram.com/photos.bynikita" target="_blank" rel="nofollow">Pigeons of the South West series on Instagram</a> exists.</p><p>Visual storytelling can be a way to escape into another world, too, and Marc concurs. "It might sound egotistic, but what I appreciate most about photography is being exposed to wildlife, nature and the outdoors," he tells me. </p><p>"It serves as a personal retreat from the human world. Apart from this rather very personal meaning, I also consider a strong piece of photography the most powerful tool in communication since a photo allows to be consumed more than once and does not lose its power over time."</p><p>His partner, Christine, agrees. "There are two main reasons why I take photos: to communicate a message and to remember moments," she adds. "When viewing a photograph, I immediately dive back into the moment, not just visually but also with all other senses. Pictures are like a memory book to me. Initially, however, I started photography mainly to communicate messages I consider important. A powerful image sticks with people’s minds better than words alone."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4071px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="JRBdm9sveRvc59k48WyckN" name="Canon_EOS_R6_Mark_III-sample-36" alt="A photo taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/JRBdm9sveRvc59k48WyckN.jpg" mos="" align="middle" fullscreen="" width="4071" height="2714" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>While Christine and Marc mostly work with animals on land and birds in the sky, Aleksander dives deep underwater to capture a world not many of us have the pleasure of seeing — and he's been photographing for a long time.</p><p>"Photography is a really important part of my life, and it has been since I was 14 years old," he says. "It is my most important professional tool as a storyteller, journalist, artist, editor, investigator, and even freediver. But it also shapes how I see the world around me."</p><h2 id="to-capture-a-real-photo-today-is-to-show-the-world-like-it-really-is">'To capture a real photo today is to show the world like it really is'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6699px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="o5ihpTX4au5gnxiDY9AwPL" name="Canon_EOS_R6_Mark_III-sample-38" alt="A photo of a bird taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/o5ihpTX4au5gnxiDY9AwPL.jpg" mos="" align="middle" fullscreen="" width="6699" height="4466" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>As I mentioned earlier, generative AI seems to have taken over most online spaces today — and it's having a detrimental impact on conservation. <a href="https://www.theguardian.com/environment/2026/jul/20/ai-slop-manipulated-fake-images-birds-citizen-science-aoe" target="_blank" rel="nofollow">According to The Guardian</a>, experts say that the increasing presence of these on birding platforms threaten credibility of tools used by scientists.</p><p>Since Christine, Marc and Aleksander's work focuses on conservation in one way or another, I had to ask them about what it means to capture a <em>real </em>photo in 2026. "I think the crucial point each photographer should question him- or herself is the following: Why am I photographing and what do I intend to achieve?" Christine muses. "In my case, it’s easy: If there is a gripping nature and wildlife topic, then I’d like to convey gripping imagery, which should be as authentic as possible.</p><p>"That means, I just do basic editing. The photo itself really happens out there. I don’t see a point in massively altering an image with the use of AI. I want to go out there and capture authentic moments. I personally consider it a hazardous development to overly alter or completely change nature and wildlife images with the use of AI. It distorts our understanding of nature, creates unattainable expectations and alienates us further and further from nature."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5602px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="LEDzqdedpS3C3xoBx2GciF" name="Canon EOS R5 Mark II - Sample 17" alt="A photo of a pigeon taken on a Canon EOS R5 Mark II camera." src="https://cdn.mos.cms.futurecdn.net/LEDzqdedpS3C3xoBx2GciF.jpg" mos="" align="middle" fullscreen="" width="5602" height="3735" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Marc agrees with that sentiment. "To me, it means the world! I consider photography the most individual, personal and intimate approach to a subject. And 'photography' to me means working with a camera in hand, with your brain developing ideas and finding ways to literally capture the right moment while at the same time your heart has to be convinced that this moment is the perfect one as well."</p><p>When I posed the same question to Aleksander, he shared a story. "The other day I saw a young photography influencer making an advertisement on social media showing how you could use his AI tool to make your concert photos even better. The example was removing some of the gear on stage, allowing the artist to stand out more. If you do that, can you still call it a real concert photo? Of course not."</p><p>Aleksander also said something that's going to stick with me for a long time: "To capture a real photo today is to show the world like it really is, in all its perfect and imperfect ways."</p><h2 id="what-i-see-and-document-is-what-you-get-nothing-more-nothing-less">'What I see and document is what you get: nothing more, nothing less'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4935px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="nx8rACcVvQWdYYtuBxZeG8" name="OM1-Mark-II-sample-22" alt="A photo taken on an OM System OM-1 Mark II Micro Four Thirds mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/nx8rACcVvQWdYYtuBxZeG8.jpg" mos="" align="middle" fullscreen="" width="4935" height="2780" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>It's difficult to ignore the negative impact of generative AI and the <a href="https://www.tomsguide.com/ai/erin-brockovich-just-launched-an-ai-data-center-map-and-it-highlights-a-growing-problem-tech-giants-are-avoiding">increasing population of data centers</a> around the globe continues to receive backlash. All human needs and human activity, according to Aleksander, negatively impact the environment. "In Norway, where a vast amount of our electricity comes from hydropower, the demand for this and clean energy is increasing," he shares. "This will, of course, materialize in the increasing loss of nature. All my investigations into human activities in nature have been about the negative impacts of 'human needs.'"</p><p>But can AI actually be beneficial to workflows and post-production processes for photographers? "I work at an AI-native workplace," Aleksander answers when I pose the question to him. "Still, here we practice human input and human output. We let AI do the time-consuming, boring work, for instance, renaming and archiving visuals like photos and videos. But I never let AI make creative decisions on visuals for me. I will do that.</p><p>"We still need to make our own decisions. We must always control the parameters and set restrictions based on our human ethics and logic. Our visual storytelling is about real humans and the impact we have on real problems. We show them how it really is, and let our visual evidence speak for itself."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5184px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="qmZqwJ9Lis3Nzjbd2uP6s7" name="OM1-Mark-II-sample-9" alt="A photo taken on an OM System OM-1 Mark II Micro Four Thirds mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/qmZqwJ9Lis3Nzjbd2uP6s7.jpg" mos="" align="middle" fullscreen="" width="5184" height="2920" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>For Aleksander, his "line in the sand" is sticking to what he has always practiced since he was shooting on film. "What I see and document is what you get. Nothing more, nothing less. AI-generated/enhanced visuals have no place in my work as a documentarian. It can't. I am a witness. I am present when and where life unfolds. I record what is in front of me. That is what I show."</p><p>Christine and Marc have found some use for AI in post-production — but they never overuse it either. "I personally use very little AI in my photography editing workflow," Christine tells me. "One thing I find very helpful is AI-generated noise reduction. This works very well, however, each AI-generated step, like the noise-reduction, is very time-consuming, especially if these steps are being conducted for a multitude of images."</p><p>As someone who has tried using AI-powered noise reduction in Adobe Photoshop Lightroom, I can confirm that it takes a <em>very </em>long time — and for Christine, her prime credo is "spending the least amount of time necessary in front of the computer and working focused and diligently in the field, in order to reduce the necessity of more intensive editing."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2540px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Gyjer5UkV9bN6zDAxCcHDL" name="Canon_EOS_R6_Mark_III-sample-29" alt="A photo of a bird taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/v2/t:1390,l:0,cw:2540,ch:1429,q:80/Gyjer5UkV9bN6zDAxCcHDL.jpg" mos="" align="middle" fullscreen="" width="2540" height="3810" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Recently, the <a href="https://artificialintelligenceact.eu/article/50/" target="_blank" rel="nofollow">European Union has started enforcing transparency obligations</a> for tech companies, requiring them to clearly label any photos, videos or audio created using AI systems, designed to look authentic. I welcome this, and so does Marc, and he hopes that this extends to photography communities too. </p><p>"I don't use AI in post as I believe that any AI-enhancement should be labelled — the pure craft of photography lies in all our very own hands and not in the machines’ abilities to enhance or optimize our vision.</p><p>"And to be honest, I personally get bored very quickly by all those super perfect images out there — no matter if they are fully AI generated or over-optimized. Being imperfect is <em>the</em> most human thing, so why shouldn't we allow our images to mirror our imperfection?"</p><h2 id="don-t-just-aim-for-likes-and-attention-aim-for-meaning-respect-and-lasting-impact">'Don’t just aim for likes and attention; aim for meaning, respect and lasting impact'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7728px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="SJjan8vDENtcJj4C2Hd4yY" name="Iceland-XT50-oped-19" alt="A photo of Iceland taken on a Fujifilm X-T50 mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/SJjan8vDENtcJj4C2Hd4yY.jpg" mos="" align="middle" fullscreen="" width="7728" height="4344" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>In an age of AI-saturated images, how do new photographers future-proof their work and their art? It's a question I keep asking myself, struggling to answer it, but thankfully, I had three pros share some great advice with me — and with you! Christine says one should ask themselves <em>why </em>they take photos. "Why do I take pictures, what’s my purpose and what audience do I want to reach?" she adds.</p><p>"For nature and wildlife photography, there should be a clear ethos, which is putting nature first. Massively altering images and conveying a distorted image of nature, which is either over-romanticized, over-glorified or falsified in terms of species integrity, is not doing nature a favor. Don’t just aim for likes and attention; aim for meaning, respect and lasting impact.</p><p>"AI can be helpful for one’s workflow and one certainly needs to acquaint oneself with it, but it must not be used to distort nature’s integrity. Less AI is more when it comes to nature and wildlife photography."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1544px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="UdLF3zPjpo4fZjpBkm3kVL" name="Sony-A1-II-sample-14" alt="A photo of a robin, taken on a Sony A1 II mirrorless camera and with a Sony FE 28-70mm F2 GM lens" src="https://cdn.mos.cms.futurecdn.net/UdLF3zPjpo4fZjpBkm3kVL.jpg" mos="" align="middle" fullscreen="" width="1544" height="1029" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Marc reflects on his 15-year-long career upon being asked this question, and as someone who has waited hours to get the perfect shot, I can't help but smile at his anecdote. "During my 15 plus years in the wildlife photo/film business, I have learned that most of the time and effort that drives my photography has to be invested in preparation, research, waiting and doing nothing but just crossing fingers that an image will be produced during a session.</p><p>"So, my advice is this: if you love what you are working on, carry a heavy backpack, and have invested in an expensive camera, then why not stay true to yourself and focus on capturing <em>the</em> moment. And if you do so, it's the most natural thing to be proud of your work. And it should be in all our photographers' interest to label our products as '100% human made.' A label that is still missing in the greater picture of woman/man-made photography but needed so much."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2140px;"><p class="vanilla-image-block" style="padding-top:66.68%;"><img id="m3k6CEYHNxn6Xd6cCF7a6N" name="Canon_EOS_R6_Mark_III-sample-14" alt="A photo taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N.jpg" mos="" align="middle" fullscreen="" width="2140" height="1427" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Aleksander is doing all that he can to protect his work's authenticity too. "I use the new equipment and formats that safeguard the authenticity of my work, so you can backtrack what is done with my pictures," he says. "Maybe new photographers should do this too. Sell authenticity and don't rely on AI-driven shortcuts. Be the producer and documentarian of real life, in a market where you can make and get whatever you want. Maybe this is the future."</p><p>He also quotes his late colleague and war photographer Harald Henden: "The individual photographer's most important asset is credibility. When I put my name under a photograph, readers should be able to trust that the content is accurate. No further verification is needed."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMqM3e"></div>                            </div>                            <script src="https://kwizly.com/embed/eMqM3e.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/audio/we-are-rewind-pink-floyd-cassette-player-collab-ceo-interview">‘It’s more of a lifestyle, a fashionable device, not just tech’: We Are Rewind’s CEO on how the Pink Floyd collab is turning cassette players into ‘collector’s items’</a></li><li><a href="https://www.tomsguide.com/cameras-photography/a-love-letter-to-my-13-year-old-nikon-dslr">My 13-year-old Nikon DSLR has been battered, bruised, beaten and survived it all — it’s what made me fall in love with photography</a></li><li><a href="https://www.tomsguide.com/us/best-cameras,review-2196.html">The best cameras in 2026</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/cameras-photography/three-professional-photographers-on-ai-in-photography-interview-2026</link>
                                                                            <description>
                            <![CDATA[ I spoke to professional photographers Aleksander Nordahl, Christine Sonvilla and Marc Graf about AI in photography and their advice for future generations. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ghgbKcDRmvB2CnetgRWFeE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Aug 2026 10:57:18 +0000</pubDate>                                                                                                                                <updated>Wed, 19 Aug 2026 15:36:22 +0000</updated>
                                                                                                                                            <category><![CDATA[Cameras &amp; Photography]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oXuvixDz99SbZp9z8Uoor3.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&#039;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&#039;s also a licensed drone pilot and cameras expert so you&#039;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N-1280-80.jpg">
                                                            <media:credit><![CDATA[Nikita Achanta / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A photo taken on a Canon EOS R6 Mark III]]></media:description>                                                            <media:text><![CDATA[A photo taken on a Canon EOS R6 Mark III]]></media:text>
                                <media:title type="plain"><![CDATA[A photo taken on a Canon EOS R6 Mark III]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Photography means the world to me. I've loved it for as long as I can remember, and I love capturing the world around me. Every year, when World Photography Day comes around on 19 August, I can't help but think about the importance of visual storytelling. About the importance of documenting life and the world, and how this art form is a universal language.</p><p>But with developments in AI and the unprecedented rise of AI-generated images, it's becoming more and more difficult to distinguish between photorealistic images created by AI versus those created by humans. The issue goes even beyond being able to distinguish between the two, and as a wildlife photographer, it worries me that <a href="https://www.theguardian.com/environment/2026/jul/20/ai-slop-manipulated-fake-images-birds-citizen-science-aoe" target="_blank" rel="nofollow">AI-altered images of wildlife is are putting research and conservation at risk</a>.</p><p>Despite how I personally feel about the use of AI in photography, I asked myself, "How do professional photographers feel about it?" </p><p>So I reached out to three wildlife and landscape photographers and videographers — <a href="https://ettpust.com/about-1" target="_blank" rel="nofollow">Aleksander Nordahl</a>, <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Christine Sonvilla</a>, and <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Marc Graf</a> — who provided great insight into the use of AI in photography. Alongside that, they also shared what photography means to them, and advice they have for future generations.</p><h2 id="meet-the-photographers">Meet the photographers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pPfMQKeJbEEzx6KAv734G9" name="WPD_interview_Aleksander" alt="A photo of photographer and freediver Aleksander Nordahl" src="https://cdn.mos.cms.futurecdn.net/pPfMQKeJbEEzx6KAv734G9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Faine Loubser / Aleksander Nordahl)</span></figcaption></figure><p>Before we dive into the meat of this article, let's meet the three professional photographers I spoke to. Aleksander Nordahl is a visual journalist and the Managing Editor and Creative Director of <a href="https://sunstone.institute/" target="_blank" rel="nofollow">Sunstone Institute</a>, a global data science institute that conducts "data-driven studies on humanity's greatest threats and find compelling ways to tell the stories."</p><p>And that's exactly what Aleksander does, using underwater photography, videography and audio to show the impact of human activity on Norway's waters and coastline. His latest work, <a href="https://sunstone.institute/posts/a-journey-past-the-tipping-point" target="_blank" rel="nofollow">A Journey Past the Tipping Point</a>, explores the effects of nutrient pollution from fish farming, and I consider it to be essential watching for anyone — not just those who consider themselves nature lovers.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="C9ecZ58KhYTrhycXT2FLC9" name="WPD_interview_Christine_Marc" alt="Headshots of photographers Christine Sonvilla and Marc Graf" src="https://cdn.mos.cms.futurecdn.net/C9ecZ58KhYTrhycXT2FLC9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Christine Sonvilla / Marc Graf / Bear Me In Mind Productions)</span></figcaption></figure><p>I also spoke with Christine Sonvilla and Marc Graf, filmmakers, photographers and conservationists, the geniuses behind <a href="https://sonvilla-graf.com/" target="_blank" rel="nofollow">Bear Me in Mind Productions</a> studio. Their studio aims to promote our relationship with nature and wildlife through TV documentaries, scientific shorts, and photographic assignments. They've documented <a href="https://sonvilla-graf.com/projects/croatian-vultures/" target="_blank" rel="nofollow">Eurasian griffon vulture,</a>, <a href="https://sonvilla-graf.com/projects/slovenia/" target="_blank" rel="nofollow">the Slovenian coast</a>, and <a href="https://sonvilla-graf.com/projects/bears/" target="_blank" rel="nofollow">brown bears in Central Europe</a>, to name a few projects.</p><p>Christine and Marc's work has earned them several accolades, including Wildlife Photographer of the Year. From human-wildlife interactions and specific ecological issues, to the return of large carnivores in Central Europe, their work has taken them all over the world.</p><p>As a wildlife photographer myself, Aleksander, Christine and Marc are great inspirations for me, as they tell stories that matter the most to the human race in an accessible and visually pleasing format.</p><h2 id="it-serves-as-a-personal-retreat-from-the-human-world">'It serves as a personal retreat from the human world'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4150px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="phE5JWGMQ8h7Sz6QxYprkS" name="Sony-A1-II-sample-27" alt="A photo of a seagull flying, taken on a Sony A1 II mirrorless camera and with a Sony FE 28-70mm F2 GM lens" src="https://cdn.mos.cms.futurecdn.net/phE5JWGMQ8h7Sz6QxYprkS.jpg" mos="" align="middle" fullscreen="" width="4150" height="2766" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Photography can mean a lot of different things to different people. For me, it's about capturing the wildlife and people around me, to keep as memories I can look back on when I'm older. It's also about highlighting specific birds that are often overlooked or hated by society, like pigeons — that's why my <a href="https://www.instagram.com/photos.bynikita" target="_blank" rel="nofollow">Pigeons of the South West series on Instagram</a> exists.</p><p>Visual storytelling can be a way to escape into another world, too, and Marc concurs. "It might sound egotistic, but what I appreciate most about photography is being exposed to wildlife, nature and the outdoors," he tells me. </p><p>"It serves as a personal retreat from the human world. Apart from this rather very personal meaning, I also consider a strong piece of photography the most powerful tool in communication since a photo allows to be consumed more than once and does not lose its power over time."</p><p>His partner, Christine, agrees. "There are two main reasons why I take photos: to communicate a message and to remember moments," she adds. "When viewing a photograph, I immediately dive back into the moment, not just visually but also with all other senses. Pictures are like a memory book to me. Initially, however, I started photography mainly to communicate messages I consider important. A powerful image sticks with people’s minds better than words alone."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4071px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="JRBdm9sveRvc59k48WyckN" name="Canon_EOS_R6_Mark_III-sample-36" alt="A photo taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/JRBdm9sveRvc59k48WyckN.jpg" mos="" align="middle" fullscreen="" width="4071" height="2714" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>While Christine and Marc mostly work with animals on land and birds in the sky, Aleksander dives deep underwater to capture a world not many of us have the pleasure of seeing — and he's been photographing for a long time.</p><p>"Photography is a really important part of my life, and it has been since I was 14 years old," he says. "It is my most important professional tool as a storyteller, journalist, artist, editor, investigator, and even freediver. But it also shapes how I see the world around me."</p><h2 id="to-capture-a-real-photo-today-is-to-show-the-world-like-it-really-is">'To capture a real photo today is to show the world like it really is'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6699px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="o5ihpTX4au5gnxiDY9AwPL" name="Canon_EOS_R6_Mark_III-sample-38" alt="A photo of a bird taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/o5ihpTX4au5gnxiDY9AwPL.jpg" mos="" align="middle" fullscreen="" width="6699" height="4466" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>As I mentioned earlier, generative AI seems to have taken over most online spaces today — and it's having a detrimental impact on conservation. <a href="https://www.theguardian.com/environment/2026/jul/20/ai-slop-manipulated-fake-images-birds-citizen-science-aoe" target="_blank" rel="nofollow">According to The Guardian</a>, experts say that the increasing presence of these on birding platforms threaten credibility of tools used by scientists.</p><p>Since Christine, Marc and Aleksander's work focuses on conservation in one way or another, I had to ask them about what it means to capture a <em>real </em>photo in 2026. "I think the crucial point each photographer should question him- or herself is the following: Why am I photographing and what do I intend to achieve?" Christine muses. "In my case, it’s easy: If there is a gripping nature and wildlife topic, then I’d like to convey gripping imagery, which should be as authentic as possible.</p><p>"That means, I just do basic editing. The photo itself really happens out there. I don’t see a point in massively altering an image with the use of AI. I want to go out there and capture authentic moments. I personally consider it a hazardous development to overly alter or completely change nature and wildlife images with the use of AI. It distorts our understanding of nature, creates unattainable expectations and alienates us further and further from nature."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5602px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="LEDzqdedpS3C3xoBx2GciF" name="Canon EOS R5 Mark II - Sample 17" alt="A photo of a pigeon taken on a Canon EOS R5 Mark II camera." src="https://cdn.mos.cms.futurecdn.net/LEDzqdedpS3C3xoBx2GciF.jpg" mos="" align="middle" fullscreen="" width="5602" height="3735" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Marc agrees with that sentiment. "To me, it means the world! I consider photography the most individual, personal and intimate approach to a subject. And 'photography' to me means working with a camera in hand, with your brain developing ideas and finding ways to literally capture the right moment while at the same time your heart has to be convinced that this moment is the perfect one as well."</p><p>When I posed the same question to Aleksander, he shared a story. "The other day I saw a young photography influencer making an advertisement on social media showing how you could use his AI tool to make your concert photos even better. The example was removing some of the gear on stage, allowing the artist to stand out more. If you do that, can you still call it a real concert photo? Of course not."</p><p>Aleksander also said something that's going to stick with me for a long time: "To capture a real photo today is to show the world like it really is, in all its perfect and imperfect ways."</p><h2 id="what-i-see-and-document-is-what-you-get-nothing-more-nothing-less">'What I see and document is what you get: nothing more, nothing less'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4935px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="nx8rACcVvQWdYYtuBxZeG8" name="OM1-Mark-II-sample-22" alt="A photo taken on an OM System OM-1 Mark II Micro Four Thirds mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/nx8rACcVvQWdYYtuBxZeG8.jpg" mos="" align="middle" fullscreen="" width="4935" height="2780" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>It's difficult to ignore the negative impact of generative AI and the <a href="https://www.tomsguide.com/ai/erin-brockovich-just-launched-an-ai-data-center-map-and-it-highlights-a-growing-problem-tech-giants-are-avoiding">increasing population of data centers</a> around the globe continues to receive backlash. All human needs and human activity, according to Aleksander, negatively impact the environment. "In Norway, where a vast amount of our electricity comes from hydropower, the demand for this and clean energy is increasing," he shares. "This will, of course, materialize in the increasing loss of nature. All my investigations into human activities in nature have been about the negative impacts of 'human needs.'"</p><p>But can AI actually be beneficial to workflows and post-production processes for photographers? "I work at an AI-native workplace," Aleksander answers when I pose the question to him. "Still, here we practice human input and human output. We let AI do the time-consuming, boring work, for instance, renaming and archiving visuals like photos and videos. But I never let AI make creative decisions on visuals for me. I will do that.</p><p>"We still need to make our own decisions. We must always control the parameters and set restrictions based on our human ethics and logic. Our visual storytelling is about real humans and the impact we have on real problems. We show them how it really is, and let our visual evidence speak for itself."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5184px;"><p class="vanilla-image-block" style="padding-top:56.33%;"><img id="qmZqwJ9Lis3Nzjbd2uP6s7" name="OM1-Mark-II-sample-9" alt="A photo taken on an OM System OM-1 Mark II Micro Four Thirds mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/qmZqwJ9Lis3Nzjbd2uP6s7.jpg" mos="" align="middle" fullscreen="" width="5184" height="2920" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>For Aleksander, his "line in the sand" is sticking to what he has always practiced since he was shooting on film. "What I see and document is what you get. Nothing more, nothing less. AI-generated/enhanced visuals have no place in my work as a documentarian. It can't. I am a witness. I am present when and where life unfolds. I record what is in front of me. That is what I show."</p><p>Christine and Marc have found some use for AI in post-production — but they never overuse it either. "I personally use very little AI in my photography editing workflow," Christine tells me. "One thing I find very helpful is AI-generated noise reduction. This works very well, however, each AI-generated step, like the noise-reduction, is very time-consuming, especially if these steps are being conducted for a multitude of images."</p><p>As someone who has tried using AI-powered noise reduction in Adobe Photoshop Lightroom, I can confirm that it takes a <em>very </em>long time — and for Christine, her prime credo is "spending the least amount of time necessary in front of the computer and working focused and diligently in the field, in order to reduce the necessity of more intensive editing."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2540px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Gyjer5UkV9bN6zDAxCcHDL" name="Canon_EOS_R6_Mark_III-sample-29" alt="A photo of a bird taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/v2/t:1390,l:0,cw:2540,ch:1429,q:80/Gyjer5UkV9bN6zDAxCcHDL.jpg" mos="" align="middle" fullscreen="" width="2540" height="3810" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Recently, the <a href="https://artificialintelligenceact.eu/article/50/" target="_blank" rel="nofollow">European Union has started enforcing transparency obligations</a> for tech companies, requiring them to clearly label any photos, videos or audio created using AI systems, designed to look authentic. I welcome this, and so does Marc, and he hopes that this extends to photography communities too. </p><p>"I don't use AI in post as I believe that any AI-enhancement should be labelled — the pure craft of photography lies in all our very own hands and not in the machines’ abilities to enhance or optimize our vision.</p><p>"And to be honest, I personally get bored very quickly by all those super perfect images out there — no matter if they are fully AI generated or over-optimized. Being imperfect is <em>the</em> most human thing, so why shouldn't we allow our images to mirror our imperfection?"</p><h2 id="don-t-just-aim-for-likes-and-attention-aim-for-meaning-respect-and-lasting-impact">'Don’t just aim for likes and attention; aim for meaning, respect and lasting impact'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7728px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="SJjan8vDENtcJj4C2Hd4yY" name="Iceland-XT50-oped-19" alt="A photo of Iceland taken on a Fujifilm X-T50 mirrorless camera" src="https://cdn.mos.cms.futurecdn.net/SJjan8vDENtcJj4C2Hd4yY.jpg" mos="" align="middle" fullscreen="" width="7728" height="4344" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>In an age of AI-saturated images, how do new photographers future-proof their work and their art? It's a question I keep asking myself, struggling to answer it, but thankfully, I had three pros share some great advice with me — and with you! Christine says one should ask themselves <em>why </em>they take photos. "Why do I take pictures, what’s my purpose and what audience do I want to reach?" she adds.</p><p>"For nature and wildlife photography, there should be a clear ethos, which is putting nature first. Massively altering images and conveying a distorted image of nature, which is either over-romanticized, over-glorified or falsified in terms of species integrity, is not doing nature a favor. Don’t just aim for likes and attention; aim for meaning, respect and lasting impact.</p><p>"AI can be helpful for one’s workflow and one certainly needs to acquaint oneself with it, but it must not be used to distort nature’s integrity. Less AI is more when it comes to nature and wildlife photography."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1544px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="UdLF3zPjpo4fZjpBkm3kVL" name="Sony-A1-II-sample-14" alt="A photo of a robin, taken on a Sony A1 II mirrorless camera and with a Sony FE 28-70mm F2 GM lens" src="https://cdn.mos.cms.futurecdn.net/UdLF3zPjpo4fZjpBkm3kVL.jpg" mos="" align="middle" fullscreen="" width="1544" height="1029" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Marc reflects on his 15-year-long career upon being asked this question, and as someone who has waited hours to get the perfect shot, I can't help but smile at his anecdote. "During my 15 plus years in the wildlife photo/film business, I have learned that most of the time and effort that drives my photography has to be invested in preparation, research, waiting and doing nothing but just crossing fingers that an image will be produced during a session.</p><p>"So, my advice is this: if you love what you are working on, carry a heavy backpack, and have invested in an expensive camera, then why not stay true to yourself and focus on capturing <em>the</em> moment. And if you do so, it's the most natural thing to be proud of your work. And it should be in all our photographers' interest to label our products as '100% human made.' A label that is still missing in the greater picture of woman/man-made photography but needed so much."</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2140px;"><p class="vanilla-image-block" style="padding-top:66.68%;"><img id="m3k6CEYHNxn6Xd6cCF7a6N" name="Canon_EOS_R6_Mark_III-sample-14" alt="A photo taken on a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N.jpg" mos="" align="middle" fullscreen="" width="2140" height="1427" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>Aleksander is doing all that he can to protect his work's authenticity too. "I use the new equipment and formats that safeguard the authenticity of my work, so you can backtrack what is done with my pictures," he says. "Maybe new photographers should do this too. Sell authenticity and don't rely on AI-driven shortcuts. Be the producer and documentarian of real life, in a market where you can make and get whatever you want. Maybe this is the future."</p><p>He also quotes his late colleague and war photographer Harald Henden: "The individual photographer's most important asset is credibility. When I put my name under a photograph, readers should be able to trust that the content is accurate. No further verification is needed."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMqM3e"></div>                            </div>                            <script src="https://kwizly.com/embed/eMqM3e.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/audio/we-are-rewind-pink-floyd-cassette-player-collab-ceo-interview">‘It’s more of a lifestyle, a fashionable device, not just tech’: We Are Rewind’s CEO on how the Pink Floyd collab is turning cassette players into ‘collector’s items’</a></li><li><a href="https://www.tomsguide.com/cameras-photography/a-love-letter-to-my-13-year-old-nikon-dslr">My 13-year-old Nikon DSLR has been battered, bruised, beaten and survived it all — it’s what made me fall in love with photography</a></li><li><a href="https://www.tomsguide.com/us/best-cameras,review-2196.html">The best cameras in 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I started using 'meta-prompting' in ChatGPT and now I'm getting much better answers — here's how to do it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When I first started using ChatGPT, most of my prompts were pretty basic. I’d ask for side hustle ideas or advice on preparing for a job interview, then wonder why the answers felt so generic.</p><p>Eventually, I realized ChatGPT could help me write a better prompt before answering it. The technique is known as <a href="https://www.tomsguide.com/ai/7-prompts-i-use-for-every-ai-chatbot-and-they-work-for-just-about-everything">“meta-prompting,”</a> It's a way to give ChatGPT a chance to <a href="https://www.tomsguide.com/ai/this-is-the-one-important-thing-chatgpt-5-still-cant-do-and-my-simple-workaround">spot missing details</a>, clarify what you want and structure the request in a way that produces a more useful response.</p><p>I now use one prompt ChatGPT created to improve nearly every prompt I write. Paste in your original request, answer any follow-up questions and it will rewrite the prompt around what you’re actually trying to accomplish.</p><h2 id="meta-prompting-strengthens-my-prompts-and-it-ll-do-the-same-for-you">“Meta-prompting” strengthens my prompts and it’ll do the same for you</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3185px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="VRm5B7Q8Z7fmLJgnqJ6Rof" name="shutterstock_2695769601" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/VRm5B7Q8Z7fmLJgnqJ6Rof.jpg" mos="" align="middle" fullscreen="" width="3185" height="1792" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>As a clear example of how “meta-prompting” works, I started one of my most recent conversations with ChatGPT by simply asking, “How can I learn how to create thumbnails faster? I'm a <a href="https://www.tomsguide.com/computing/peripherals/im-a-content-creator-and-this-sandisk-creator-phone-ssd-is-the-storage-upgrade-id-actually-give-as-a-holiday-gift">content creator</a> who's just starting and wants to create quality <a href="https://www.tomsguide.com/us/adobe-photoshop-elements,review-2620.html">Photoshop thumbnails</a> for my videos about video games.” </p><p>Here’s the prompt that ChatGPT gave me when I asked what sort of prompt would be best to input when I wanted my original request to make my goal more understandable: </p><p><em><strong>Identify what is missing, ambiguous, or poorly framed in my original prompt. Make the minimum necessary assumptions to turn it into a high-quality expert request. Do not merely make my wording sound more sophisticated—improve the underlying question, criteria, and desired outcome.</strong></em></p><p>ChatGPT took a look at my original prompt and detailed a bunch of extra bullet points that helped me figure out exactly what I was asking for. Those bits of info that I needed to specify to help the chatbot lock in on my overall mission included what “faster means, my current Photoshop skill level, what makes a “quality” thumbnail, whether you're trying to develop your own style, what I want to practice and what constraints I’m working under. Then the chatbot framed my prompt to fall more in line with the request: “How do I build the skill of making compelling gaming thumbnails quickly?”</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5298px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aMqTiks6bw2Bgq45c5si7E" name="shutterstock_2655690843" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/aMqTiks6bw2Bgq45c5si7E.jpg" mos="" align="middle" fullscreen="" width="5298" height="2980" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The improved expert version of my original prompt was then delivered as follows:</p><p><em>I'm a beginner content creator making YouTube videos about video games, and I want to learn how to create high-quality Photoshop thumbnails much faster.</em></p><p><em>Design a practical learning system that helps me become both better at thumbnail design and faster at producing thumbnails, rather than simply teaching me Photoshop features.</em></p><p><em>Identify the most important thumbnail-design skills I should learn first, including composition, visual hierarchy, contrast, color, typography, character/game-image placement, and creating curiosity.</em></p><p><em>Identify the Photoshop skills and shortcuts that provide the biggest payoff specifically for gaming thumbnails.</em></p><p><em>Give me a 30-day practice plan that takes me from beginner to being able to create polished thumbnails efficiently.</em></p><p><em>Explain what I should practice repeatedly versus what I should learn only once.</em></p><p><em>Give me a deliberate-practice exercise for recreating successful gaming thumbnails, so I learn the underlying design principles rather than simply copying them.</em></p><p><em>Show me how to analyze a successful gaming thumbnail before I recreate it.</em></p><p><em>Explain how to build reusable assets, templates, layer structures, effects, fonts, and PSD files so each new thumbnail takes less time.</em></p><p><em>Give me a recommended workflow for going from a blank Photoshop document to a finished thumbnail, with an emphasis on speed.</em></p><p><em>Identify the most common mistakes beginners make that make gaming thumbnails look amateurish.</em></p><p><em>Explain how I can tell whether a thumbnail is actually improving without relying solely on views or click-through rate.</em></p><p><em>Assume I know very little about professional thumbnail design but am willing to practice consistently. Prioritize the 20% of skills that will produce 80% of the improvement.</em></p><p><em>My goal is not to become an expert Photoshop user. My goal is to be able to consistently create eye-catching, professional-looking gaming thumbnails in roughly 15–30 minutes.</em></p><p>With this new and improved prompt, I was provided with a command for ChatGPT that took my originally vague request and turned it into a more substantial prompt meant for skill-building. Attaching the meta-prompt to your original prompt will turn it into something similar to mine, which is a prompt with a clear description that locks in on a clear number of goals.</p><h2 id="the-takeaway">The takeaway</h2><p>Meta-prompting is one of the most efficient ways to turn your simple prompts into more comprehensible ones and compel you to improve upon the way you jot down your future prompts. </p><p>Plain prompts like “Give me some career advice” and “How can I reduce stress?” just won’t do at this point if you regularly interact with ChatGPT—use the meta-prompt to turn that first prompt into a more decision-oriented framework and the second one into a plan that delivers immediate relief from defined causes of mental strain, for example. </p><p>Prompt refinement will make your ChatGPT experiences more accommodating in the long run.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights" target="_blank">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li><li><a href="https://www.tomsguide.com/ai/i-challenged-chatgpt-and-gemini-to-find-the-best-ways-to-unwind-these-7-ideas-made-national-relaxation-day-even-better" target="_blank">I challenged ChatGPT and Gemini to find the best ways to unwind — these 7 ideas made National Relaxation Day even better</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-started-using-meta-prompting-in-chatgpt-and-now-im-getting-much-better-answers-heres-how-to-do-it</link>
                                                                            <description>
                            <![CDATA[ Through the simple act of “meta-prompting,” I’ve found the best way to turn my simple asks of chatbots into more defined ones with clear goals. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sUQ3cKGAtiXvvTRHg6d68f</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KMRDK4iJtMXx38rvSsBryZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Aug 2026 08:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 19 Aug 2026 12:20:47 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KMRDK4iJtMXx38rvSsBryZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[chatgpt]]></media:description>                                                            <media:text><![CDATA[chatgpt]]></media:text>
                                <media:title type="plain"><![CDATA[chatgpt]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KMRDK4iJtMXx38rvSsBryZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When I first started using ChatGPT, most of my prompts were pretty basic. I’d ask for side hustle ideas or advice on preparing for a job interview, then wonder why the answers felt so generic.</p><p>Eventually, I realized ChatGPT could help me write a better prompt before answering it. The technique is known as <a href="https://www.tomsguide.com/ai/7-prompts-i-use-for-every-ai-chatbot-and-they-work-for-just-about-everything">“meta-prompting,”</a> It's a way to give ChatGPT a chance to <a href="https://www.tomsguide.com/ai/this-is-the-one-important-thing-chatgpt-5-still-cant-do-and-my-simple-workaround">spot missing details</a>, clarify what you want and structure the request in a way that produces a more useful response.</p><p>I now use one prompt ChatGPT created to improve nearly every prompt I write. Paste in your original request, answer any follow-up questions and it will rewrite the prompt around what you’re actually trying to accomplish.</p><h2 id="meta-prompting-strengthens-my-prompts-and-it-ll-do-the-same-for-you">“Meta-prompting” strengthens my prompts and it’ll do the same for you</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3185px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="VRm5B7Q8Z7fmLJgnqJ6Rof" name="shutterstock_2695769601" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/VRm5B7Q8Z7fmLJgnqJ6Rof.jpg" mos="" align="middle" fullscreen="" width="3185" height="1792" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>As a clear example of how “meta-prompting” works, I started one of my most recent conversations with ChatGPT by simply asking, “How can I learn how to create thumbnails faster? I'm a <a href="https://www.tomsguide.com/computing/peripherals/im-a-content-creator-and-this-sandisk-creator-phone-ssd-is-the-storage-upgrade-id-actually-give-as-a-holiday-gift">content creator</a> who's just starting and wants to create quality <a href="https://www.tomsguide.com/us/adobe-photoshop-elements,review-2620.html">Photoshop thumbnails</a> for my videos about video games.” </p><p>Here’s the prompt that ChatGPT gave me when I asked what sort of prompt would be best to input when I wanted my original request to make my goal more understandable: </p><p><em><strong>Identify what is missing, ambiguous, or poorly framed in my original prompt. Make the minimum necessary assumptions to turn it into a high-quality expert request. Do not merely make my wording sound more sophisticated—improve the underlying question, criteria, and desired outcome.</strong></em></p><p>ChatGPT took a look at my original prompt and detailed a bunch of extra bullet points that helped me figure out exactly what I was asking for. Those bits of info that I needed to specify to help the chatbot lock in on my overall mission included what “faster means, my current Photoshop skill level, what makes a “quality” thumbnail, whether you're trying to develop your own style, what I want to practice and what constraints I’m working under. Then the chatbot framed my prompt to fall more in line with the request: “How do I build the skill of making compelling gaming thumbnails quickly?”</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5298px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aMqTiks6bw2Bgq45c5si7E" name="shutterstock_2655690843" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/aMqTiks6bw2Bgq45c5si7E.jpg" mos="" align="middle" fullscreen="" width="5298" height="2980" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The improved expert version of my original prompt was then delivered as follows:</p><p><em>I'm a beginner content creator making YouTube videos about video games, and I want to learn how to create high-quality Photoshop thumbnails much faster.</em></p><p><em>Design a practical learning system that helps me become both better at thumbnail design and faster at producing thumbnails, rather than simply teaching me Photoshop features.</em></p><p><em>Identify the most important thumbnail-design skills I should learn first, including composition, visual hierarchy, contrast, color, typography, character/game-image placement, and creating curiosity.</em></p><p><em>Identify the Photoshop skills and shortcuts that provide the biggest payoff specifically for gaming thumbnails.</em></p><p><em>Give me a 30-day practice plan that takes me from beginner to being able to create polished thumbnails efficiently.</em></p><p><em>Explain what I should practice repeatedly versus what I should learn only once.</em></p><p><em>Give me a deliberate-practice exercise for recreating successful gaming thumbnails, so I learn the underlying design principles rather than simply copying them.</em></p><p><em>Show me how to analyze a successful gaming thumbnail before I recreate it.</em></p><p><em>Explain how to build reusable assets, templates, layer structures, effects, fonts, and PSD files so each new thumbnail takes less time.</em></p><p><em>Give me a recommended workflow for going from a blank Photoshop document to a finished thumbnail, with an emphasis on speed.</em></p><p><em>Identify the most common mistakes beginners make that make gaming thumbnails look amateurish.</em></p><p><em>Explain how I can tell whether a thumbnail is actually improving without relying solely on views or click-through rate.</em></p><p><em>Assume I know very little about professional thumbnail design but am willing to practice consistently. Prioritize the 20% of skills that will produce 80% of the improvement.</em></p><p><em>My goal is not to become an expert Photoshop user. My goal is to be able to consistently create eye-catching, professional-looking gaming thumbnails in roughly 15–30 minutes.</em></p><p>With this new and improved prompt, I was provided with a command for ChatGPT that took my originally vague request and turned it into a more substantial prompt meant for skill-building. Attaching the meta-prompt to your original prompt will turn it into something similar to mine, which is a prompt with a clear description that locks in on a clear number of goals.</p><h2 id="the-takeaway">The takeaway</h2><p>Meta-prompting is one of the most efficient ways to turn your simple prompts into more comprehensible ones and compel you to improve upon the way you jot down your future prompts. </p><p>Plain prompts like “Give me some career advice” and “How can I reduce stress?” just won’t do at this point if you regularly interact with ChatGPT—use the meta-prompt to turn that first prompt into a more decision-oriented framework and the second one into a plan that delivers immediate relief from defined causes of mental strain, for example. </p><p>Prompt refinement will make your ChatGPT experiences more accommodating in the long run.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights" target="_blank">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li><li><a href="https://www.tomsguide.com/ai/i-challenged-chatgpt-and-gemini-to-find-the-best-ways-to-unwind-these-7-ideas-made-national-relaxation-day-even-better" target="_blank">I challenged ChatGPT and Gemini to find the best ways to unwind — these 7 ideas made National Relaxation Day even better</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 features that give Claude the edge over ChatGPT ]]></title>
                                                                                                <dc:content><![CDATA[ <p>ChatGPT now has Projects, Skills and Computer Use just like Claude. Canvas, one of my very favorite features, can render interactive React and HTML, like Claude too. Several features that once made Claude very unique are no longer exclusive to Anthropic’s chatbot.<br><br>However, there are differences that haven't disappeared and in fact, have gotten even more specific. Claude can reach into parts of my phone that ChatGPT cannot, and it gives me more control over what happens to my personal context. Its Artifacts have also moved well beyond simple code previews.<br><br>And while I still use ChatGPT, here are five things that it just can't replicate yet that still make Claude stand out. </p><h2 id="1-claude-can-work-with-native-apps-on-my-iphone">1. Claude can work with native apps on my iPhone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5hECuqSroNjHngr9vs4g5C" name="Adding connector in Claude" alt="Adding connector in Claude" src="https://cdn.mos.cms.futurecdn.net/5hECuqSroNjHngr9vs4g5C.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>ChatGPT can connect to services including Gmail and Google Calendar, but it doesn’t have the same access to the apps built into my iPhone. </p><p>Claude can prepare a message <em>actually</em> in Messages, draft an email in Mail, create an event in Apple Calendar, add something to Reminders or send a location to Maps. The AI assistant presents an action for me to review first, and iOS hands it to the appropriate app.</p><p>That makes the feature feel like a natural extension of a conversation. I can ask Claude to turn plans we just discussed into a calendar event without opening another app and entering everything again.</p><p>The feature works across Claude’s plans, according to <a href="https://support.claude.com/en/articles/11869619-use-claude-with-ios-apps" target="_blank">Anthropic’s iOS documentation</a>and Android users get an even broader set of controls. Claude can work with messaging, email, calendars and maps while also setting alarms and timers through supported <a href="https://www.tomsguide.com/special-report/a-month-with-android">Android apps</a>.</p><p>ChatGPT has become far more capable at taking actions, particularly through its connected apps and Work mode, but it still doesn’t offer this kind of direct integration with <a href="https://www.tomsguide.com/phones/iphones/ios-27-beta-5-adds-new-app-icons-more-siri-voices-improved-search-and-more-everything-thats-changed">Apple’s everyday system apps</a>.</p><h2 id="2-claude-can-import-what-another-ai-remembers-about-me">2. Claude can import what another AI remembers about me</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="R9UxmXc7jFPUuh3iRuz8C7" name="Claude settings" alt="Claude settings" src="https://cdn.mos.cms.futurecdn.net/R9UxmXc7jFPUuh3iRuz8C7.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Starting over with a new chatbot can be surprisingly annoying. When you start fresh, the assistant doesn’t know how you work, what you’re interested in or how you prefer it to answer. All of the context built up over months stays behind with the old service.</p><p><a href="https://www.tomsguide.com/ai/you-can-move-your-chatgpt-memory-to-claude-in-60-seconds-heres-how">Claude now offers a built-in way to bring some of it with you</a>. You first ask the other assistant to produce a summary of what it remembers, review that information and remove anything you don’t want to move, then paste it into Claude’s memory-import flow.</p><p>Anthropic even provides a prompt for extracting that context and lets you view or export Claude’s memory if you decide to leave later.</p><p>Although you can view and edit saved memories within ChatGPT, it doesn’t provide a comparable memory-import tool that turns context from another assistant into <a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-memories-are-disappearing-for-some-users-heres-how-to-protect-yours">ChatGPT memories</a>.</p><p>You could recreate some of this manually through custom instructions, but that isn’t the same as having a dedicated migration flow. Claude is currently making it easier to arrive with your history and leave with it again.</p><h2 id="3-claude-s-incognito-chats-can-still-know-who-i-am">3. Claude’s Incognito chats can still know who I am</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3948px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="eJCV8uzA9tJU7dX3gAWBrM" name="Claude app" alt="Claude app" src="https://cdn.mos.cms.futurecdn.net/eJCV8uzA9tJU7dX3gAWBrM.png" mos="" align="middle" fullscreen="" width="3948" height="2221" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Anthropic/Claude)</span></figcaption></figure><p>Sometimes I want a conversation to disappear from my history without making the assistant forget everything useful about me. Unlike other chatbots,<a href="https://www.tomsguide.com/ai/i-compared-the-privacy-of-chatgpt-gemini-claude-and-perplexity-heres-the-one-you-should-trust-most-with-your-personal-info"> Claude’s Incognito mode </a>allows that separation. The conversation isn’t added to my chat history, but Claude can still use my profile information, preferences and memory while answering. I can have a temporary conversation without giving up the personalization I normally rely on.</p><p>ChatGPT’s Temporary Chat takes a different approach. OpenAI describes it as a blank slate: ChatGPT <a href="https://help.openai.com/articles/8914046-temporary-chat-faq" target="_blank">doesn’t access or create memories</a>, although it will continue to follow any custom instructions I have enabled.</p><p>There are reasonable privacy arguments for both designs. ChatGPT’s approach provides a cleaner break from previous conversations. Claude’s is more convenient when I want a chat to remain out of my history but still want the assistant to understand my usual preferences.</p><h2 id="4-claude-can-build-a-dashboard-that-updates-itself">4. Claude can build a dashboard that updates itself</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WQdzTDm2PEVsCYvFfuEbZb" name="Cowork-Dispatch-Blog-Permissions" alt="Claude" src="https://cdn.mos.cms.futurecdn.net/WQdzTDm2PEVsCYvFfuEbZb.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><a href="https://www.tomsguide.com/ai/chatgpt/ive-been-testing-chatgpt-canvas-heres-why-i-think-its-the-most-important-ai-tool-of-the-year">ChatGPT Canvas</a> and <a href="https://www.tomsguide.com/ai/claude-artifacts-get-a-big-update-now-you-can-highlight-and-edit-code-with-text">Claude Artifacts</a> can both turn a prompt into an interactive page. Either assistant can build a calculator, visualization or small browser game and let me use it alongside the conversation.</p><p>Claude’s Live Artifacts go a step further though. In <a href="https://www.tomsguide.com/ai/i-tested-claude-cowork-anthropics-new-ai-feels-more-like-a-coworker-than-a-chatbot">Claude Cowork</a>, I can create a persistent dashboard that draws from connected apps and local files. When I reopen it, the Artifact can retrieve current information instead of showing the same data that was available when it was created.</p><p>That could be a project tracker built from Asana and Linear, a morning page showing calendar events and unread message or a dashboard that checks a folder containing regularly updated reports. Claude saves it in the Artifacts area, keeps a version history and lets me return to it without digging through the original chat.</p><p><a href="https://support.claude.com/en/articles/14729249-use-live-artifacts-in-claude-cowork" target="_blank">Live Artifacts</a> currently require a paid Claude plan and the desktop app. They are also different from ordinary Claude Artifacts, which remain available on the web and mobile.</p><p>ChatGPT Canvas can render an interactive interface, and ChatGPT can retrieve information from connected apps during a conversation. It does not currently turn a Canvas into a persistent dashboard that refreshes itself from those sources whenever I open it.</p><h2 id="5-claude-can-put-ai-inside-an-artifact-without-an-api-key">5. Claude can put AI inside an Artifact without an API key</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NFvA5REorqYqrwH9cQLi9G" name="8 - 2026-05-27T143120.276" alt="Claude project using Artifacts" src="https://cdn.mos.cms.futurecdn.net/NFvA5REorqYqrwH9cQLi9G.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This may be the most interesting difference because it changes what a non-developer can build.</p><p>Claude can create an Artifact with Claude itself built into the experience. That could be an interactive tutor, a writing coach, a quiz that adapts to each answer or a tool that analyzes information entered by the user.</p><p>Normally, publishing an AI app means setting up an API account, protecting a key, deploying a backend and paying for every request. Claude handles that infrastructure for an AI-powered Artifact. People sign in with their own Claude accounts, and the usage counts against their subscriptions rather than the creator receiving the bill.</p><p>Claude Artifacts can also use persistent storage, allowing an app to remember text-based information between sessions. Depending on how the creator configures it, that data can be private to each user or shared across everyone using the Artifact. Paid users can connect Artifacts to outside services through MCP as well.</p><p>ChatGPT can write the code for an AI app, and OpenAI gives developers tools for building one. But, OpenAI's feature doesn’t currently offer the same one-step path from a conversation to a hosted, AI-powered app that other people can immediately use without an API key.</p><h2 id="bottom-line">Bottom line </h2><p>ChatGPT has caught up with Claude in several areas, but it still can’t do everything on this list. It's why I regularly<a href="https://www.tomsguide.com/ai/reddit-users-arent-picking-one-ai-chatbot-anymore-heres-how-they-stack-their-tools"> use multiple chatbots within my AI stack. </a></p><p>AI assistants can do very similar things, but their unique features make them an asset, especially when added to other AI assistants. For that reason, I’m not replacing ChatGPT with Claude. I use both every day, and each one is better suited to different jobs. But when I need one of these five features, Claude is the only one that can do it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a><strong></strong></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/claude/5-features-that-give-claude-the-edge-over-chatgpt</link>
                                                                            <description>
                            <![CDATA[ ChatGPT has caught up on major features, but these 5 unique tools — from native iPhone app access to self-updating dashboards — are still exclusive to Claude. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xLusuxyeb5XsK4ijVAUY9i</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/tuLbMTjMk7aN7467yqkFhK-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Aug 2026 05:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 19 Aug 2026 08:08:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Claude]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/tuLbMTjMk7aN7467yqkFhK-1280-80.png">
                                                            <media:credit><![CDATA[Anthropic ]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Anthrpic screen graphic]]></media:description>                                                            <media:text><![CDATA[Anthrpic screen graphic]]></media:text>
                                <media:title type="plain"><![CDATA[Anthrpic screen graphic]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/tuLbMTjMk7aN7467yqkFhK-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>ChatGPT now has Projects, Skills and Computer Use just like Claude. Canvas, one of my very favorite features, can render interactive React and HTML, like Claude too. Several features that once made Claude very unique are no longer exclusive to Anthropic’s chatbot.<br><br>However, there are differences that haven't disappeared and in fact, have gotten even more specific. Claude can reach into parts of my phone that ChatGPT cannot, and it gives me more control over what happens to my personal context. Its Artifacts have also moved well beyond simple code previews.<br><br>And while I still use ChatGPT, here are five things that it just can't replicate yet that still make Claude stand out. </p><h2 id="1-claude-can-work-with-native-apps-on-my-iphone">1. Claude can work with native apps on my iPhone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5hECuqSroNjHngr9vs4g5C" name="Adding connector in Claude" alt="Adding connector in Claude" src="https://cdn.mos.cms.futurecdn.net/5hECuqSroNjHngr9vs4g5C.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>ChatGPT can connect to services including Gmail and Google Calendar, but it doesn’t have the same access to the apps built into my iPhone. </p><p>Claude can prepare a message <em>actually</em> in Messages, draft an email in Mail, create an event in Apple Calendar, add something to Reminders or send a location to Maps. The AI assistant presents an action for me to review first, and iOS hands it to the appropriate app.</p><p>That makes the feature feel like a natural extension of a conversation. I can ask Claude to turn plans we just discussed into a calendar event without opening another app and entering everything again.</p><p>The feature works across Claude’s plans, according to <a href="https://support.claude.com/en/articles/11869619-use-claude-with-ios-apps" target="_blank">Anthropic’s iOS documentation</a>and Android users get an even broader set of controls. Claude can work with messaging, email, calendars and maps while also setting alarms and timers through supported <a href="https://www.tomsguide.com/special-report/a-month-with-android">Android apps</a>.</p><p>ChatGPT has become far more capable at taking actions, particularly through its connected apps and Work mode, but it still doesn’t offer this kind of direct integration with <a href="https://www.tomsguide.com/phones/iphones/ios-27-beta-5-adds-new-app-icons-more-siri-voices-improved-search-and-more-everything-thats-changed">Apple’s everyday system apps</a>.</p><h2 id="2-claude-can-import-what-another-ai-remembers-about-me">2. Claude can import what another AI remembers about me</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="R9UxmXc7jFPUuh3iRuz8C7" name="Claude settings" alt="Claude settings" src="https://cdn.mos.cms.futurecdn.net/R9UxmXc7jFPUuh3iRuz8C7.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Starting over with a new chatbot can be surprisingly annoying. When you start fresh, the assistant doesn’t know how you work, what you’re interested in or how you prefer it to answer. All of the context built up over months stays behind with the old service.</p><p><a href="https://www.tomsguide.com/ai/you-can-move-your-chatgpt-memory-to-claude-in-60-seconds-heres-how">Claude now offers a built-in way to bring some of it with you</a>. You first ask the other assistant to produce a summary of what it remembers, review that information and remove anything you don’t want to move, then paste it into Claude’s memory-import flow.</p><p>Anthropic even provides a prompt for extracting that context and lets you view or export Claude’s memory if you decide to leave later.</p><p>Although you can view and edit saved memories within ChatGPT, it doesn’t provide a comparable memory-import tool that turns context from another assistant into <a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-memories-are-disappearing-for-some-users-heres-how-to-protect-yours">ChatGPT memories</a>.</p><p>You could recreate some of this manually through custom instructions, but that isn’t the same as having a dedicated migration flow. Claude is currently making it easier to arrive with your history and leave with it again.</p><h2 id="3-claude-s-incognito-chats-can-still-know-who-i-am">3. Claude’s Incognito chats can still know who I am</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3948px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="eJCV8uzA9tJU7dX3gAWBrM" name="Claude app" alt="Claude app" src="https://cdn.mos.cms.futurecdn.net/eJCV8uzA9tJU7dX3gAWBrM.png" mos="" align="middle" fullscreen="" width="3948" height="2221" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Anthropic/Claude)</span></figcaption></figure><p>Sometimes I want a conversation to disappear from my history without making the assistant forget everything useful about me. Unlike other chatbots,<a href="https://www.tomsguide.com/ai/i-compared-the-privacy-of-chatgpt-gemini-claude-and-perplexity-heres-the-one-you-should-trust-most-with-your-personal-info"> Claude’s Incognito mode </a>allows that separation. The conversation isn’t added to my chat history, but Claude can still use my profile information, preferences and memory while answering. I can have a temporary conversation without giving up the personalization I normally rely on.</p><p>ChatGPT’s Temporary Chat takes a different approach. OpenAI describes it as a blank slate: ChatGPT <a href="https://help.openai.com/articles/8914046-temporary-chat-faq" target="_blank">doesn’t access or create memories</a>, although it will continue to follow any custom instructions I have enabled.</p><p>There are reasonable privacy arguments for both designs. ChatGPT’s approach provides a cleaner break from previous conversations. Claude’s is more convenient when I want a chat to remain out of my history but still want the assistant to understand my usual preferences.</p><h2 id="4-claude-can-build-a-dashboard-that-updates-itself">4. Claude can build a dashboard that updates itself</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WQdzTDm2PEVsCYvFfuEbZb" name="Cowork-Dispatch-Blog-Permissions" alt="Claude" src="https://cdn.mos.cms.futurecdn.net/WQdzTDm2PEVsCYvFfuEbZb.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><a href="https://www.tomsguide.com/ai/chatgpt/ive-been-testing-chatgpt-canvas-heres-why-i-think-its-the-most-important-ai-tool-of-the-year">ChatGPT Canvas</a> and <a href="https://www.tomsguide.com/ai/claude-artifacts-get-a-big-update-now-you-can-highlight-and-edit-code-with-text">Claude Artifacts</a> can both turn a prompt into an interactive page. Either assistant can build a calculator, visualization or small browser game and let me use it alongside the conversation.</p><p>Claude’s Live Artifacts go a step further though. In <a href="https://www.tomsguide.com/ai/i-tested-claude-cowork-anthropics-new-ai-feels-more-like-a-coworker-than-a-chatbot">Claude Cowork</a>, I can create a persistent dashboard that draws from connected apps and local files. When I reopen it, the Artifact can retrieve current information instead of showing the same data that was available when it was created.</p><p>That could be a project tracker built from Asana and Linear, a morning page showing calendar events and unread message or a dashboard that checks a folder containing regularly updated reports. Claude saves it in the Artifacts area, keeps a version history and lets me return to it without digging through the original chat.</p><p><a href="https://support.claude.com/en/articles/14729249-use-live-artifacts-in-claude-cowork" target="_blank">Live Artifacts</a> currently require a paid Claude plan and the desktop app. They are also different from ordinary Claude Artifacts, which remain available on the web and mobile.</p><p>ChatGPT Canvas can render an interactive interface, and ChatGPT can retrieve information from connected apps during a conversation. It does not currently turn a Canvas into a persistent dashboard that refreshes itself from those sources whenever I open it.</p><h2 id="5-claude-can-put-ai-inside-an-artifact-without-an-api-key">5. Claude can put AI inside an Artifact without an API key</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NFvA5REorqYqrwH9cQLi9G" name="8 - 2026-05-27T143120.276" alt="Claude project using Artifacts" src="https://cdn.mos.cms.futurecdn.net/NFvA5REorqYqrwH9cQLi9G.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This may be the most interesting difference because it changes what a non-developer can build.</p><p>Claude can create an Artifact with Claude itself built into the experience. That could be an interactive tutor, a writing coach, a quiz that adapts to each answer or a tool that analyzes information entered by the user.</p><p>Normally, publishing an AI app means setting up an API account, protecting a key, deploying a backend and paying for every request. Claude handles that infrastructure for an AI-powered Artifact. People sign in with their own Claude accounts, and the usage counts against their subscriptions rather than the creator receiving the bill.</p><p>Claude Artifacts can also use persistent storage, allowing an app to remember text-based information between sessions. Depending on how the creator configures it, that data can be private to each user or shared across everyone using the Artifact. Paid users can connect Artifacts to outside services through MCP as well.</p><p>ChatGPT can write the code for an AI app, and OpenAI gives developers tools for building one. But, OpenAI's feature doesn’t currently offer the same one-step path from a conversation to a hosted, AI-powered app that other people can immediately use without an API key.</p><h2 id="bottom-line">Bottom line </h2><p>ChatGPT has caught up with Claude in several areas, but it still can’t do everything on this list. It's why I regularly<a href="https://www.tomsguide.com/ai/reddit-users-arent-picking-one-ai-chatbot-anymore-heres-how-they-stack-their-tools"> use multiple chatbots within my AI stack. </a></p><p>AI assistants can do very similar things, but their unique features make them an asset, especially when added to other AI assistants. For that reason, I’m not replacing ChatGPT with Claude. I use both every day, and each one is better suited to different jobs. But when I need one of these five features, Claude is the only one that can do it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a><strong></strong></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I used the 'strategic discomfort' prompt to turn ChatGPT into a life coach — and it helped me fix one of my biggest problems ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Maneuvering through life means you’re bound to come up against some major dilemmas that require you to make a tough decision.</p><p>Typically, one of those decisions can keep you in a comfortable position, while the other could potentially be transformative and simultaneously break you out of your comfort zone. I can certainly relate to that sort of situation, since I made the tough decision to attend college out of state instead of staying in my home state to pursue my degree. Forcing myself to examine the choices that cater to my safety and the ones that could maximize my upside while pushing me to do something outside of my wheelhouse is trying but necessary.</p><p>There’s one conundrum that has plagued me for the longest time now. And while I’ve gotten plenty of feedback on how to remedy that issue from loved ones, I’m usually left with more questions regarding what I should do to remedy it.</p><p>For my latest “help me fix my problems” session with ChatGPT, I used the “strategic discomfort” prompt to tackle said issue. It rose to the occasion to be as real as it gets and proved to be tough yet fair in its analysis.</p><h2 id="uncomfortable-truths-backed-by-uncomfortable-decisions">Uncomfortable truths backed by uncomfortable decisions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3322px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="TVbcLs7YhaAGoB3mCj28kW" name="chatgpt" alt="An iPhone 15 displaying the ChatGPT homepage." src="https://cdn.mos.cms.futurecdn.net/TVbcLs7YhaAGoB3mCj28kW.jpg" mos="" align="middle" fullscreen="" width="3322" height="1869" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The strategic discomfort prompt is as follows: <em>You're my strategic coach. Your goal isn't to motivate me—it's to identify where I'm playing too safely. Show me the uncomfortable decisions that would create the biggest upside.</em></p><p>As for my longstanding problem, I asked for its advice on the sort of decisions I should make to help me remedy the overwhelming feeling of being afraid of disappointing people. I’ve always felt like this issue puts the wants and needs of others ahead of mine and leads me to take on all the tasks that people ask of me since I’m always keen to please.</p><p>ChatGPT’s opening line showcased its transformative state from an average AI assistant that produces nothing but flattering advice to a tough coach that presents hard truths combined with viable solutions:</p><p><em>The uncomfortable truth: if you're afraid of disappointing people, you may be optimizing your life around avoiding other people's short-term discomfort rather than maximizing your own long-term upside. That creates a very specific strategic problem: you become reliable, agreeable, and easy to work with—but potentially under-leveraged.</em></p><p>Afterward, ChatGPT provided me with a list of uncomfortable decisions I should put into action that could change my way of thinking and make me approach my interactions with people in a completely different manner. </p><p>For instance, the chatbot told me to stop making myself indispensable in low-value ways.</p><p>While it stated how being the person who always responds quickly, fixes things, takes the extra assignment, etc., feels valuable, being useful isn’t the same as being strategically valuable. The uncomfortable decision the chatbot told me to consider is becoming less available for low-leverage work, so I have the capacity for high-leverage work. Which, by my definition, means ignoring requests that are routine and aren’t truly beneficial while saving my energy for requests that produce a major impact for me and anyone else involved with them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:66.66%;"><img id="AdLuxLuBBvULt852RwMELG" name="shutterstock_2568172687" alt="thinking" src="https://cdn.mos.cms.futurecdn.net/AdLuxLuBBvULt852RwMELG.jpg" mos="" align="middle" fullscreen="" width="5000" height="3333" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Some of the other fixes and uncomfortable decisions ChatGPT presented to me as the best ways to confront my problem included:</p><ul><li><strong>Stop saying yes before you've decided whether you actually want to: </strong><em>Start declining things that are merely reasonable rather than genuinely valuable.</em></li><li><strong>Let someone think you're difficult: </strong><em>Choose the option that advances your goals even when you know someone will be mildly unhappy with you. Not cruelly. Not recklessly. Just without treating their disappointment as evidence that you made the wrong decision.</em></li><li><strong>Ask for more before you have proof you deserve it: </strong><em>Make the ask while there's still a meaningful possibility of rejection. The rejection is often cheaper than the years spent quietly under-asking.</em></li><li><strong>Have the conversation you've been avoiding: </strong><em>Say the thing clearly rather than continuing to engineer around it.</em></li><li><strong>Choose your ambition over your current identity: </strong><em>Allow people to update their perception of you.</em></li><li><strong>Stop confusing disappointment with harm: </strong><em>This distinction could radically change your decision-making. Someone being disappointed doesn't necessarily mean you hurt them. Someone being frustrated doesn't necessarily mean you behaved badly. Someone disagreeing with you doesn't necessarily mean you made a bad decision. Someone needing to adjust their expectations doesn't necessarily mean you failed them. Try this filter: Did I violate a legitimate commitment—or did I simply fail to satisfy someone's preference? Those are very different things.</em></li><li><strong>Take the opportunity that creates asymmetric upside: </strong><em>When you're afraid of disappointing people, you tend to favor reversible, socially safe decisions. I'd instead look for opportunities where: Downside = uncomfortable conversation/temporary disappointment. Upside = materially better career, income, freedom, relationships, reputation, or trajectory. Those are precisely the bets you should be more willing to take. The mistake would be avoiding a 20% chance of awkwardness that comes with an 80% chance of substantially improving your situation.</em></li></ul><h2 id="final-thoughts-2">Final thoughts</h2><p>Getting the most realistic feedback possible from ChatGPT about my longstanding issue of being fearful of letting everyone down proved to be an eye-opening experience. </p><p>With the right prompt, it confronted my life obstacle, produced strict yet equitable advice and steered me towards changing my habits for the better. Now I’m even more inclined to experiment with the strategic discomfort prompt when I need some decision-making tips about my career, relationships, a change in environment and more. </p><p>Talking with friends, family and experts before I make life-changing decisions is a must. But I’ll also be sure to consider ChatGPT’s discomforting yet helpful counsel from now on.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-in-google-maps-is-better-than-ever-use-these-7-ask-maps-prompts-to-plan-better-trips-and-discover-new-foods" target="_blank">Google Maps is better than ever — here are 7 'Ask Maps' prompts to try next</a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful" target="_blank">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li><li><a href="https://www.tomsguide.com/ai/this-new-ai-assistant-makes-ai-easier-for-people-65-no-app-or-prompts-required" target="_blank">This new AI assistant makes AI easier for people 65+ — no app or prompts required</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-used-the-strategic-discomfort-prompt-to-turn-chatgpt-into-a-tough-life-coach-and-it-helped-me-fix-one-of-my-biggest-problems</link>
                                                                            <description>
                            <![CDATA[ With a single prompt, I transformed ChatGPT into a life coach that tells me exactly what I need to hear—and it helped me correct a lifelong issue. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2u2BtiX3fMvtNEFMJiakpK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/oCJqxGrx8rsdLs7D6CoVGk-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/oCJqxGrx8rsdLs7D6CoVGk-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[thinking]]></media:description>                                                            <media:text><![CDATA[thinking]]></media:text>
                                <media:title type="plain"><![CDATA[thinking]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/oCJqxGrx8rsdLs7D6CoVGk-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Maneuvering through life means you’re bound to come up against some major dilemmas that require you to make a tough decision.</p><p>Typically, one of those decisions can keep you in a comfortable position, while the other could potentially be transformative and simultaneously break you out of your comfort zone. I can certainly relate to that sort of situation, since I made the tough decision to attend college out of state instead of staying in my home state to pursue my degree. Forcing myself to examine the choices that cater to my safety and the ones that could maximize my upside while pushing me to do something outside of my wheelhouse is trying but necessary.</p><p>There’s one conundrum that has plagued me for the longest time now. And while I’ve gotten plenty of feedback on how to remedy that issue from loved ones, I’m usually left with more questions regarding what I should do to remedy it.</p><p>For my latest “help me fix my problems” session with ChatGPT, I used the “strategic discomfort” prompt to tackle said issue. It rose to the occasion to be as real as it gets and proved to be tough yet fair in its analysis.</p><h2 id="uncomfortable-truths-backed-by-uncomfortable-decisions">Uncomfortable truths backed by uncomfortable decisions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3322px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="TVbcLs7YhaAGoB3mCj28kW" name="chatgpt" alt="An iPhone 15 displaying the ChatGPT homepage." src="https://cdn.mos.cms.futurecdn.net/TVbcLs7YhaAGoB3mCj28kW.jpg" mos="" align="middle" fullscreen="" width="3322" height="1869" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The strategic discomfort prompt is as follows: <em>You're my strategic coach. Your goal isn't to motivate me—it's to identify where I'm playing too safely. Show me the uncomfortable decisions that would create the biggest upside.</em></p><p>As for my longstanding problem, I asked for its advice on the sort of decisions I should make to help me remedy the overwhelming feeling of being afraid of disappointing people. I’ve always felt like this issue puts the wants and needs of others ahead of mine and leads me to take on all the tasks that people ask of me since I’m always keen to please.</p><p>ChatGPT’s opening line showcased its transformative state from an average AI assistant that produces nothing but flattering advice to a tough coach that presents hard truths combined with viable solutions:</p><p><em>The uncomfortable truth: if you're afraid of disappointing people, you may be optimizing your life around avoiding other people's short-term discomfort rather than maximizing your own long-term upside. That creates a very specific strategic problem: you become reliable, agreeable, and easy to work with—but potentially under-leveraged.</em></p><p>Afterward, ChatGPT provided me with a list of uncomfortable decisions I should put into action that could change my way of thinking and make me approach my interactions with people in a completely different manner. </p><p>For instance, the chatbot told me to stop making myself indispensable in low-value ways.</p><p>While it stated how being the person who always responds quickly, fixes things, takes the extra assignment, etc., feels valuable, being useful isn’t the same as being strategically valuable. The uncomfortable decision the chatbot told me to consider is becoming less available for low-leverage work, so I have the capacity for high-leverage work. Which, by my definition, means ignoring requests that are routine and aren’t truly beneficial while saving my energy for requests that produce a major impact for me and anyone else involved with them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:66.66%;"><img id="AdLuxLuBBvULt852RwMELG" name="shutterstock_2568172687" alt="thinking" src="https://cdn.mos.cms.futurecdn.net/AdLuxLuBBvULt852RwMELG.jpg" mos="" align="middle" fullscreen="" width="5000" height="3333" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Some of the other fixes and uncomfortable decisions ChatGPT presented to me as the best ways to confront my problem included:</p><ul><li><strong>Stop saying yes before you've decided whether you actually want to: </strong><em>Start declining things that are merely reasonable rather than genuinely valuable.</em></li><li><strong>Let someone think you're difficult: </strong><em>Choose the option that advances your goals even when you know someone will be mildly unhappy with you. Not cruelly. Not recklessly. Just without treating their disappointment as evidence that you made the wrong decision.</em></li><li><strong>Ask for more before you have proof you deserve it: </strong><em>Make the ask while there's still a meaningful possibility of rejection. The rejection is often cheaper than the years spent quietly under-asking.</em></li><li><strong>Have the conversation you've been avoiding: </strong><em>Say the thing clearly rather than continuing to engineer around it.</em></li><li><strong>Choose your ambition over your current identity: </strong><em>Allow people to update their perception of you.</em></li><li><strong>Stop confusing disappointment with harm: </strong><em>This distinction could radically change your decision-making. Someone being disappointed doesn't necessarily mean you hurt them. Someone being frustrated doesn't necessarily mean you behaved badly. Someone disagreeing with you doesn't necessarily mean you made a bad decision. Someone needing to adjust their expectations doesn't necessarily mean you failed them. Try this filter: Did I violate a legitimate commitment—or did I simply fail to satisfy someone's preference? Those are very different things.</em></li><li><strong>Take the opportunity that creates asymmetric upside: </strong><em>When you're afraid of disappointing people, you tend to favor reversible, socially safe decisions. I'd instead look for opportunities where: Downside = uncomfortable conversation/temporary disappointment. Upside = materially better career, income, freedom, relationships, reputation, or trajectory. Those are precisely the bets you should be more willing to take. The mistake would be avoiding a 20% chance of awkwardness that comes with an 80% chance of substantially improving your situation.</em></li></ul><h2 id="final-thoughts-2">Final thoughts</h2><p>Getting the most realistic feedback possible from ChatGPT about my longstanding issue of being fearful of letting everyone down proved to be an eye-opening experience. </p><p>With the right prompt, it confronted my life obstacle, produced strict yet equitable advice and steered me towards changing my habits for the better. Now I’m even more inclined to experiment with the strategic discomfort prompt when I need some decision-making tips about my career, relationships, a change in environment and more. </p><p>Talking with friends, family and experts before I make life-changing decisions is a must. But I’ll also be sure to consider ChatGPT’s discomforting yet helpful counsel from now on.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-in-google-maps-is-better-than-ever-use-these-7-ask-maps-prompts-to-plan-better-trips-and-discover-new-foods" target="_blank">Google Maps is better than ever — here are 7 'Ask Maps' prompts to try next</a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful" target="_blank">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li><li><a href="https://www.tomsguide.com/ai/this-new-ai-assistant-makes-ai-easier-for-people-65-no-app-or-prompts-required" target="_blank">This new AI assistant makes AI easier for people 65+ — no app or prompts required</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I used AI to create a deli meat-inspired watch face for my Pixel Watch 5 — and now I'm questioning everything ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I’m testing the latest <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-tried-the-new-google-pixel-watch-5-and-its-new-health-and-safety-features-blow-the-apple-watch-out-of-the-water">Google Pixel Watch 5</a>, and one new feature (no one really asked for) is the ability to generate customized watch faces via generative AI using your voice or a text prompt. What could possibly go wrong? </p><p>This feature is, of course, underpinned by Gemini, but is it actually any good? Well, uh, that really depends on how creative you’re feeling and your overall aesthetic preferences/sensibilities (or lack thereof).</p><h3 class="article-body__section" id="section-teddy-bears-and-laser-beams"><span>“Teddy bears and laser beams”</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3687px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ii3sSenhj5LRLh9Se38wGh" name="PixelWatch5-AI-face-03" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/ii3sSenhj5LRLh9Se38wGh.jpg" mos="" align="middle" fullscreen="" width="3687" height="2074" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Generating a customized AI watch face using the Pixel Watch 5 is surprisingly easy. You simply open the “Create Watch Face” app and tap “create your own” using either text input or voice transcription. A cellular connection or Wi-fi connection is required. </p><p>Once you submit a prompt, the process takes anywhere from ten to thirty seconds to complete. Note: In my experience, one out of five times the app rejects your prompt, especially if it is hard to understand, overly complicated, or the internet connection is weak. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3334px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="sXzHccxdRDnCrFUiE9LeVh" name="PixelWatch5-AI-face-02" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/sXzHccxdRDnCrFUiE9LeVh.jpg" mos="" align="middle" fullscreen="" width="3334" height="1875" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The first prompt I entered was “Teddy bears and laser beams.” The results are... You decide. To me, it looks more like Pink Floyd-inspired Cheerios than what I entered. Moreover, it seems the app overly prioritizes the first bit of text you've entered as the basis for any textures that appear in the watch face. </p><p>Post-generation, the Create Watch Face app provides six options to choose from, along with the ability to create additional versions of the original prompt or start over. As of this writing, there isn’t much variety among the six initial choices.</p><h3 class="article-body__section" id="section-raging-river-with-jumping-salmon"><span>“Raging river with jumping salmon”</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3316px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="HbkSNAW4CUz5LDFLpYXc6h" name="PixelWatch5-AI-face-01" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/HbkSNAW4CUz5LDFLpYXc6h.jpg" mos="" align="middle" fullscreen="" width="3316" height="1866" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The next prompt I entered was “A raging river with jumping orange salmon.” This resulted in a slightly more visually appealing result, even if it looks more like clip-art koi fish.</p><p>Ultimately, I was hoping the feature could generate a watch face with movement, like fish slowly swimming around, but it can’t. Generated watch faces are entirely static, no matter what prompt you enter. (I also tried "Fish actively swimming in a stream" to no avail.)</p><h3 class="article-body__section" id="section-should-you-generate-a-custom-ai-watch-face-on-the-pixel-watch-5"><span>Should you generate a custom AI watch face on the Pixel Watch 5?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UCoj7XvaeHGMzTXNN3Ga4j" name="Google Pixel Watch 5--5" alt="Hands-on with the new Google Pixel Watch 5" src="https://cdn.mos.cms.futurecdn.net/UCoj7XvaeHGMzTXNN3Ga4j.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: John Velasco/Tom's Guide)</span></figcaption></figure><p>Maybe! But be prepared for slightly underwhelming, generic results... or maybe something a bit more unsettling; my third prompt, "Deli meats," resulted in the masterpiece at the intro of this article </p><p>Ultimately, in my opinion, Google already offers a ton of really amazing free watch faces that are far more feature-rich than anything the Create Watch Face app can come up with. </p><p>That said, for special occasions — like a koi fish convention — an AI watch face might be fun. Maybe just avoid the prompt “teddy bears and laser beams.” </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/wellness/smartwatches/pixel-watch-5-vs-samsung-galaxy-watch-9-5-key-differences-you-need-to-know"><strong>Pixel Watch 5 vs Samsung Galaxy Watch 9 — 5 key differences you need to know</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-reviewed-the-garmin-cirqa-5-things-you-need-to-know-about-garmins-subscription-free-whoop-and-fitbit-air-alternative"><strong>I just reviewed the Garmin Cirqa — 5 things you need to know about Garmin’s subscription-free Whoop and Fitbit Air alternative</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-trekked-the-cascade-mountains-with-the-apple-watch-ultra-3-vs-garmin-instinct-3-vs-samsung-galaxy-watch-ultra-2-this-is-the-one-id-take-on-my-next-hike"><strong>I trekked the Cascade Mountains with the Apple Watch Ultra 3 vs Garmin Instinct 3 vs Samsung Galaxy Watch Ultra 2 — this is the one I'd take on my next hike</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/wellness/smartwatches/i-used-ai-to-create-a-deli-meat-inspired-watch-face-for-my-pixel-watch-5-and-now-im-questioning-everything</link>
                                                                            <description>
                            <![CDATA[ Just because you can generate a custom AI watch face for the new Google Pixel Watch 5 doesn't mean that you should. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jtkpHiUxaL6dz7TLgDHrg4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bdozjJ2daigra64wsyFESb-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bdozjJ2daigra64wsyFESb-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Google Pixel Watch 5 with an AI-generated watch face with the time and sate shown as if they are made of deli meats]]></media:description>                                                            <media:text><![CDATA[Close-up of the Google Pixel Watch 5 with an AI-generated watch face with the time and sate shown as if they are made of deli meats]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Google Pixel Watch 5 with an AI-generated watch face with the time and sate shown as if they are made of deli meats]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bdozjJ2daigra64wsyFESb-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m testing the latest <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-tried-the-new-google-pixel-watch-5-and-its-new-health-and-safety-features-blow-the-apple-watch-out-of-the-water">Google Pixel Watch 5</a>, and one new feature (no one really asked for) is the ability to generate customized watch faces via generative AI using your voice or a text prompt. What could possibly go wrong? </p><p>This feature is, of course, underpinned by Gemini, but is it actually any good? Well, uh, that really depends on how creative you’re feeling and your overall aesthetic preferences/sensibilities (or lack thereof).</p><h3 class="article-body__section" id="section-teddy-bears-and-laser-beams"><span>“Teddy bears and laser beams”</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3687px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ii3sSenhj5LRLh9Se38wGh" name="PixelWatch5-AI-face-03" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/ii3sSenhj5LRLh9Se38wGh.jpg" mos="" align="middle" fullscreen="" width="3687" height="2074" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Generating a customized AI watch face using the Pixel Watch 5 is surprisingly easy. You simply open the “Create Watch Face” app and tap “create your own” using either text input or voice transcription. A cellular connection or Wi-fi connection is required. </p><p>Once you submit a prompt, the process takes anywhere from ten to thirty seconds to complete. Note: In my experience, one out of five times the app rejects your prompt, especially if it is hard to understand, overly complicated, or the internet connection is weak. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3334px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="sXzHccxdRDnCrFUiE9LeVh" name="PixelWatch5-AI-face-02" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/sXzHccxdRDnCrFUiE9LeVh.jpg" mos="" align="middle" fullscreen="" width="3334" height="1875" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The first prompt I entered was “Teddy bears and laser beams.” The results are... You decide. To me, it looks more like Pink Floyd-inspired Cheerios than what I entered. Moreover, it seems the app overly prioritizes the first bit of text you've entered as the basis for any textures that appear in the watch face. </p><p>Post-generation, the Create Watch Face app provides six options to choose from, along with the ability to create additional versions of the original prompt or start over. As of this writing, there isn’t much variety among the six initial choices.</p><h3 class="article-body__section" id="section-raging-river-with-jumping-salmon"><span>“Raging river with jumping salmon”</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3316px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="HbkSNAW4CUz5LDFLpYXc6h" name="PixelWatch5-AI-face-01" alt="Close-up of the AI watch face generating feature on the Pixel Watch 5 smartwatch" src="https://cdn.mos.cms.futurecdn.net/HbkSNAW4CUz5LDFLpYXc6h.jpg" mos="" align="middle" fullscreen="" width="3316" height="1866" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The next prompt I entered was “A raging river with jumping orange salmon.” This resulted in a slightly more visually appealing result, even if it looks more like clip-art koi fish.</p><p>Ultimately, I was hoping the feature could generate a watch face with movement, like fish slowly swimming around, but it can’t. Generated watch faces are entirely static, no matter what prompt you enter. (I also tried "Fish actively swimming in a stream" to no avail.)</p><h3 class="article-body__section" id="section-should-you-generate-a-custom-ai-watch-face-on-the-pixel-watch-5"><span>Should you generate a custom AI watch face on the Pixel Watch 5?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UCoj7XvaeHGMzTXNN3Ga4j" name="Google Pixel Watch 5--5" alt="Hands-on with the new Google Pixel Watch 5" src="https://cdn.mos.cms.futurecdn.net/UCoj7XvaeHGMzTXNN3Ga4j.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: John Velasco/Tom's Guide)</span></figcaption></figure><p>Maybe! But be prepared for slightly underwhelming, generic results... or maybe something a bit more unsettling; my third prompt, "Deli meats," resulted in the masterpiece at the intro of this article </p><p>Ultimately, in my opinion, Google already offers a ton of really amazing free watch faces that are far more feature-rich than anything the Create Watch Face app can come up with. </p><p>That said, for special occasions — like a koi fish convention — an AI watch face might be fun. Maybe just avoid the prompt “teddy bears and laser beams.” </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/wellness/smartwatches/pixel-watch-5-vs-samsung-galaxy-watch-9-5-key-differences-you-need-to-know"><strong>Pixel Watch 5 vs Samsung Galaxy Watch 9 — 5 key differences you need to know</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-reviewed-the-garmin-cirqa-5-things-you-need-to-know-about-garmins-subscription-free-whoop-and-fitbit-air-alternative"><strong>I just reviewed the Garmin Cirqa — 5 things you need to know about Garmin’s subscription-free Whoop and Fitbit Air alternative</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-trekked-the-cascade-mountains-with-the-apple-watch-ultra-3-vs-garmin-instinct-3-vs-samsung-galaxy-watch-ultra-2-this-is-the-one-id-take-on-my-next-hike"><strong>I trekked the Cascade Mountains with the Apple Watch Ultra 3 vs Garmin Instinct 3 vs Samsung Galaxy Watch Ultra 2 — this is the one I'd take on my next hike</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 Gemini features ChatGPT still can’t match ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Over the past few years we've seen <a href="https://www.tomsguide.com/ai/i-used-chatgpt-every-day-for-a-year-these-5-habits-get-me-better-answers-than-any-new-model-upgrade">ChatGPT</a> and <a href="https://www.tomsguide.com/ai/i-replaced-my-notes-app-with-geminis-new-notebooks-and-im-not-going-back">Gemini</a> get some really useful features. Each AI assistant offers unique abilities and both ChatGPT and Gemini can handle many of the same jobs. But their differences become clearer when you move past the question and answer features. </p><p>Google has connected Gemini to services and devices it already controls, including Android and Google Photos. It has given Gemini a few creative tools that ChatGPT still doesn’t offer, too. You can create a finished song, turn a research report into a podcast and build a reusable AI version of yourself.</p><p>I use both assistants regularly, and these are five things Gemini can currently do that ChatGPT cannot do natively. Of course, availability of these Gemini features depends on your device, account, subscription and location, so you may not see every feature yet.</p><h2 id="1-create-an-original-song-you-can-download">1. Create an original song you can download</h2><div class="instagram-embed"><blockquote class="instagram-media"  data-instgrm-version="6" style="width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><p><a href="https://www.instagram.com/p/DU5-LwljWLa/" target="_blank">A post shared by Amanda Caswell (@amandacaswell_ai)</a></p><p>A photo posted by  on </p></blockquote></div><p>ChatGPT can write lyrics, suggest chord progressions and help plan a song. But it still does not have the ability to take that prompt and hand you a finished track with music and vocals.</p><p>Gemini can because it offers<a href="https://www.tomsguide.com/ai/i-tried-geminis-new-lyria-3-in-app-ai-song-generator-and-it-turned-my-to-do-list-into-a-punk-rock-anthem"> Lyria 3 music generator</a> directly into the app. You can describe the song you want or upload a photo or video to use as inspiration. You can even upload text messages and ask it to create a song from those. The possibilities are endless right in the chatbot as Gemini then generates the music and lyrics together.</p><p>A prompt could be as simple as: “Create an upbeat pop song about surviving the first week of school as a tired parent.”</p><p>You can download the finished result as an MP3 or save it as an MP4 with cover art. According to <a href="https://support.google.com/gemini/answer/16901237" target="_blank">Google’s instructions</a>, generating a full track requires switching Gemini to its Pro model. This is one of the clearest gaps between the two assistants. ChatGPT can help you plan the song. Gemini can make something you can actually play.</p><h2 id="2-search-through-your-google-photos-without-uploading-anything">2. Search through your Google Photos without uploading anything</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:580px;"><p class="vanilla-image-block" style="padding-top:58.79%;"><img id="k42GJ2H45QYHUbAX5NYa3V" name="Google photos 3 jpg.jpg" alt="Use the Google Photos apps for iOS and Android to upload photos from mobile devices." src="https://cdn.mos.cms.futurecdn.net/k42GJ2H45QYHUbAX5NYa3V.jpg" mos="" align="middle" fullscreen="" width="580" height="341" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Finding one particular picture in a library containing thousands of nearly identical family photos can take forever. But Gemini can search a connected <a href="https://www.tomsguide.com/computing/mobile-apps/google-photos-is-getting-a-huge-upgrade-for-millions-to-boost-your-old-pics">Google Photos</a> account using the people, places and objects that appear in your images. You could ask it to find photos from a particular birthday, show you pictures from last summer or look for images containing a specific person.</p><p>It can answer questions using details from those photos, too. Google suggests prompts asking Gemini to identify the themes used at someone’s previous birthday parties or recall what you ate during a vacation.</p><p>ChatGPT can analyze any photo you upload, but it cannot natively search through your entire Google Photos library. You have to find the relevant pictures and add them to the conversation yourself.</p><p>There are several restrictions. <a href="https://support.google.com/gemini/answer/15734842" target="_blank">Google Photos access in Gemini</a> requires a personal Google account, isn’t available to users under 18 and only works in supported regions. You must turn on Gemini’s Keep Activity setting and certain Google Photos features, including Face Groups.</p><p>I’d think carefully before asking an AI assistant to retrieve something as sensitive as a driver’s license or medical document from my photos. For finding 47 pictures of the same child wearing their favorite blue shirt, though, it could save a lot of scrolling. If you know, you know. </p><h2 id="3-turn-a-document-into-a-podcast-style-conversation">3. Turn a document into a podcast-style conversation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1470px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="wDPgHhaWx9CCQ3ASFjnxUP" name="NotebookLM" alt="NotebookLM" src="https://cdn.mos.cms.futurecdn.net/wDPgHhaWx9CCQ3ASFjnxUP.png" mos="" align="middle" fullscreen="" width="1470" height="827" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Gemini can take a document, presentation, <a href="https://www.tomsguide.com/ai/gemini-notebook-just-sold-me-on-foldables-heres-why-i-finally-get-the-hype">Gemini Notebook</a> (formally NotebookLM) or Deep Research report and turn it into an Audio Overview.</p><p>Instead of reading a long report, you can listen to two AI hosts discuss the information in a podcast-like conversation. It’s especially useful for catching up while driving, walking or working around the house.</p><p><a href="https://www.tomsguide.com/ai/i-replaced-my-true-crime-podcast-with-chatgpt-voice-for-a-week-heres-what-happened">ChatGPT Voice</a> can read answers aloud and discuss an uploaded document with you. It does not currently have a dedicated feature that turns the source into this kind of produced, shareable conversation.</p><p>Gemini usually takes a few minutes to create an Audio Overview. Once it’s finished, you can listen inside the Gemini app, download it or share a link. <a href="https://support.google.com/gemini/answer/16047373" target="_blank">Google explains how Audio Overviews work here</a>.</p><p>This could be useful for more than research papers. I can see myself using it to get through a long school document, meeting notes or a report I need to understand before starting work.</p><h2 id="4-create-personal-gemini-avatars-ai-digital-twin">4. Create Personal Gemini Avatars (AI Digital Twin)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S3pXpDiXFzWqjTX3TnXvnb" name="8 - 2026-08-17T165308.790" alt="Gemini Avatar of Amanda Caswell" src="https://cdn.mos.cms.futurecdn.net/S3pXpDiXFzWqjTX3TnXvnb.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Google allows paid subscribers to build a Personal Avatar, which is a digital clone that looks and sounds like you, powered by <a href="https://www.tomsguide.com/ai/gemini-omni-flash-can-create-and-edit-videos-with-your-voice-and-it-feels-like-the-future-of-multimodal-ai">Gemini Omni</a> and <a href="https://www.tomsguide.com/entertainment/streaming-devices/google-tv-is-getting-nano-banana-veo-and-youtube-shorts-heres-what-you-can-do-now">Google Veo</a>. You can build it right in the Gemini app. </p><p>Tap on your profile/settings, and select <strong>Personal Avatar</strong> (or tap <strong>Add Files + Avatar</strong> in the prompt window). From there, follow the on-screen prompts on your smartphone to record your face and voice.</p><p>You will be asked to turn your head side-to-side and read out lines of text so Gemini can map your facial structure and voice profile.</p><p>Once recorded, you can summon yourself in Gemini prompts using @me or @[your username]. <br><br>You can also create a custom gem with a prompt such as: <br><em>"Generate a 3D digital illustration of a friendly male developer with short brown hair and round glasses, wearing a dark blue hoodie, vibrant neon-lit background, studio lighting, high resolution profile avatar."</em></p><h2 id="5-analyze-a-youtube-video-from-a-link">5. Analyze a YouTube video from a link</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hmKz9wwXtemvNvF5tTCLsh" name="YouTube home page.JPEG" alt="Possible new YouTube homepage" src="https://cdn.mos.cms.futurecdn.net/hmKz9wwXtemvNvF5tTCLsh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: <a href="https://x.com/vidIQ">@vidIQ</a>  on X)</span></figcaption></figure><p>I often find a useful YouTube video and immediately wish I could skip the introduction, sponsorship and repeated explanations. With Gemini, I can paste the link into a chat and ask for the information I actually need.</p><p>Gemini can summarize a public YouTube video, answer questions about what was discussed and pull out specific tips or instructions. I could give it a 30-minute product tutorial and ask, “What settings does the presenter recommend changing?” or “List the steps for fixing the problem, but leave out the promotional sections.”</p><p>Gemini can also find relevant videos, playlists and channels before answering questions about their content. Connecting YouTube lets it personalize some results using your viewing history.</p><p>ChatGPT can now do something similar through its Chrome extension, which uses a video’s timestamped transcript when captions are available. The difference is where it works. Gemini handles YouTube links inside its regular web and mobile apps, while ChatGPT’s officially documented version requires opening the video through Chrome.</p><h2 id="bottom-line-2">Bottom line</h2><p>ChatGPT remains my choice for plenty of everyday work, but Google is using its existing products to give Gemini abilities that are difficult for another chatbot to copy.</p><p>Google Photos search and Android control come from Gemini’s position inside Google’s ecosystem. Music generation, Audio Overviews and reusable avatars are more surprising because they change what you can create without leaving the chat. Give them a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/this-new-ai-assistant-makes-ai-easier-for-people-65-no-app-or-prompts-required"><strong>This new AI assistant makes AI easier for people 65+ — no app or prompts required</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match</link>
                                                                            <description>
                            <![CDATA[ Here are 5 practical, everyday features Gemini offers that OpenAI's chatbot still doesn't support. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T9vESqRMKe74NHMSbb5xDf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/d6iRrNAQeYiESHsFCyjoUK-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 05:30:00 +0000</pubDate>                                                                                                                                <updated>Tue, 18 Aug 2026 07:48:31 +0000</updated>
                                                                                                                                            <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/d6iRrNAQeYiESHsFCyjoUK-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gemini]]></media:description>                                                            <media:text><![CDATA[Gemini]]></media:text>
                                <media:title type="plain"><![CDATA[Gemini]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/d6iRrNAQeYiESHsFCyjoUK-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Over the past few years we've seen <a href="https://www.tomsguide.com/ai/i-used-chatgpt-every-day-for-a-year-these-5-habits-get-me-better-answers-than-any-new-model-upgrade">ChatGPT</a> and <a href="https://www.tomsguide.com/ai/i-replaced-my-notes-app-with-geminis-new-notebooks-and-im-not-going-back">Gemini</a> get some really useful features. Each AI assistant offers unique abilities and both ChatGPT and Gemini can handle many of the same jobs. But their differences become clearer when you move past the question and answer features. </p><p>Google has connected Gemini to services and devices it already controls, including Android and Google Photos. It has given Gemini a few creative tools that ChatGPT still doesn’t offer, too. You can create a finished song, turn a research report into a podcast and build a reusable AI version of yourself.</p><p>I use both assistants regularly, and these are five things Gemini can currently do that ChatGPT cannot do natively. Of course, availability of these Gemini features depends on your device, account, subscription and location, so you may not see every feature yet.</p><h2 id="1-create-an-original-song-you-can-download">1. Create an original song you can download</h2><div class="instagram-embed"><blockquote class="instagram-media"  data-instgrm-version="6" style="width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><p><a href="https://www.instagram.com/p/DU5-LwljWLa/" target="_blank">A post shared by Amanda Caswell (@amandacaswell_ai)</a></p><p>A photo posted by  on </p></blockquote></div><p>ChatGPT can write lyrics, suggest chord progressions and help plan a song. But it still does not have the ability to take that prompt and hand you a finished track with music and vocals.</p><p>Gemini can because it offers<a href="https://www.tomsguide.com/ai/i-tried-geminis-new-lyria-3-in-app-ai-song-generator-and-it-turned-my-to-do-list-into-a-punk-rock-anthem"> Lyria 3 music generator</a> directly into the app. You can describe the song you want or upload a photo or video to use as inspiration. You can even upload text messages and ask it to create a song from those. The possibilities are endless right in the chatbot as Gemini then generates the music and lyrics together.</p><p>A prompt could be as simple as: “Create an upbeat pop song about surviving the first week of school as a tired parent.”</p><p>You can download the finished result as an MP3 or save it as an MP4 with cover art. According to <a href="https://support.google.com/gemini/answer/16901237" target="_blank">Google’s instructions</a>, generating a full track requires switching Gemini to its Pro model. This is one of the clearest gaps between the two assistants. ChatGPT can help you plan the song. Gemini can make something you can actually play.</p><h2 id="2-search-through-your-google-photos-without-uploading-anything">2. Search through your Google Photos without uploading anything</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:580px;"><p class="vanilla-image-block" style="padding-top:58.79%;"><img id="k42GJ2H45QYHUbAX5NYa3V" name="Google photos 3 jpg.jpg" alt="Use the Google Photos apps for iOS and Android to upload photos from mobile devices." src="https://cdn.mos.cms.futurecdn.net/k42GJ2H45QYHUbAX5NYa3V.jpg" mos="" align="middle" fullscreen="" width="580" height="341" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Finding one particular picture in a library containing thousands of nearly identical family photos can take forever. But Gemini can search a connected <a href="https://www.tomsguide.com/computing/mobile-apps/google-photos-is-getting-a-huge-upgrade-for-millions-to-boost-your-old-pics">Google Photos</a> account using the people, places and objects that appear in your images. You could ask it to find photos from a particular birthday, show you pictures from last summer or look for images containing a specific person.</p><p>It can answer questions using details from those photos, too. Google suggests prompts asking Gemini to identify the themes used at someone’s previous birthday parties or recall what you ate during a vacation.</p><p>ChatGPT can analyze any photo you upload, but it cannot natively search through your entire Google Photos library. You have to find the relevant pictures and add them to the conversation yourself.</p><p>There are several restrictions. <a href="https://support.google.com/gemini/answer/15734842" target="_blank">Google Photos access in Gemini</a> requires a personal Google account, isn’t available to users under 18 and only works in supported regions. You must turn on Gemini’s Keep Activity setting and certain Google Photos features, including Face Groups.</p><p>I’d think carefully before asking an AI assistant to retrieve something as sensitive as a driver’s license or medical document from my photos. For finding 47 pictures of the same child wearing their favorite blue shirt, though, it could save a lot of scrolling. If you know, you know. </p><h2 id="3-turn-a-document-into-a-podcast-style-conversation">3. Turn a document into a podcast-style conversation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1470px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="wDPgHhaWx9CCQ3ASFjnxUP" name="NotebookLM" alt="NotebookLM" src="https://cdn.mos.cms.futurecdn.net/wDPgHhaWx9CCQ3ASFjnxUP.png" mos="" align="middle" fullscreen="" width="1470" height="827" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Gemini can take a document, presentation, <a href="https://www.tomsguide.com/ai/gemini-notebook-just-sold-me-on-foldables-heres-why-i-finally-get-the-hype">Gemini Notebook</a> (formally NotebookLM) or Deep Research report and turn it into an Audio Overview.</p><p>Instead of reading a long report, you can listen to two AI hosts discuss the information in a podcast-like conversation. It’s especially useful for catching up while driving, walking or working around the house.</p><p><a href="https://www.tomsguide.com/ai/i-replaced-my-true-crime-podcast-with-chatgpt-voice-for-a-week-heres-what-happened">ChatGPT Voice</a> can read answers aloud and discuss an uploaded document with you. It does not currently have a dedicated feature that turns the source into this kind of produced, shareable conversation.</p><p>Gemini usually takes a few minutes to create an Audio Overview. Once it’s finished, you can listen inside the Gemini app, download it or share a link. <a href="https://support.google.com/gemini/answer/16047373" target="_blank">Google explains how Audio Overviews work here</a>.</p><p>This could be useful for more than research papers. I can see myself using it to get through a long school document, meeting notes or a report I need to understand before starting work.</p><h2 id="4-create-personal-gemini-avatars-ai-digital-twin">4. Create Personal Gemini Avatars (AI Digital Twin)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S3pXpDiXFzWqjTX3TnXvnb" name="8 - 2026-08-17T165308.790" alt="Gemini Avatar of Amanda Caswell" src="https://cdn.mos.cms.futurecdn.net/S3pXpDiXFzWqjTX3TnXvnb.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Google allows paid subscribers to build a Personal Avatar, which is a digital clone that looks and sounds like you, powered by <a href="https://www.tomsguide.com/ai/gemini-omni-flash-can-create-and-edit-videos-with-your-voice-and-it-feels-like-the-future-of-multimodal-ai">Gemini Omni</a> and <a href="https://www.tomsguide.com/entertainment/streaming-devices/google-tv-is-getting-nano-banana-veo-and-youtube-shorts-heres-what-you-can-do-now">Google Veo</a>. You can build it right in the Gemini app. </p><p>Tap on your profile/settings, and select <strong>Personal Avatar</strong> (or tap <strong>Add Files + Avatar</strong> in the prompt window). From there, follow the on-screen prompts on your smartphone to record your face and voice.</p><p>You will be asked to turn your head side-to-side and read out lines of text so Gemini can map your facial structure and voice profile.</p><p>Once recorded, you can summon yourself in Gemini prompts using @me or @[your username]. <br><br>You can also create a custom gem with a prompt such as: <br><em>"Generate a 3D digital illustration of a friendly male developer with short brown hair and round glasses, wearing a dark blue hoodie, vibrant neon-lit background, studio lighting, high resolution profile avatar."</em></p><h2 id="5-analyze-a-youtube-video-from-a-link">5. Analyze a YouTube video from a link</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hmKz9wwXtemvNvF5tTCLsh" name="YouTube home page.JPEG" alt="Possible new YouTube homepage" src="https://cdn.mos.cms.futurecdn.net/hmKz9wwXtemvNvF5tTCLsh.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: <a href="https://x.com/vidIQ">@vidIQ</a>  on X)</span></figcaption></figure><p>I often find a useful YouTube video and immediately wish I could skip the introduction, sponsorship and repeated explanations. With Gemini, I can paste the link into a chat and ask for the information I actually need.</p><p>Gemini can summarize a public YouTube video, answer questions about what was discussed and pull out specific tips or instructions. I could give it a 30-minute product tutorial and ask, “What settings does the presenter recommend changing?” or “List the steps for fixing the problem, but leave out the promotional sections.”</p><p>Gemini can also find relevant videos, playlists and channels before answering questions about their content. Connecting YouTube lets it personalize some results using your viewing history.</p><p>ChatGPT can now do something similar through its Chrome extension, which uses a video’s timestamped transcript when captions are available. The difference is where it works. Gemini handles YouTube links inside its regular web and mobile apps, while ChatGPT’s officially documented version requires opening the video through Chrome.</p><h2 id="bottom-line-2">Bottom line</h2><p>ChatGPT remains my choice for plenty of everyday work, but Google is using its existing products to give Gemini abilities that are difficult for another chatbot to copy.</p><p>Google Photos search and Android control come from Gemini’s position inside Google’s ecosystem. Music generation, Audio Overviews and reusable avatars are more surprising because they change what you can create without leaving the chat. Give them a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/this-new-ai-assistant-makes-ai-easier-for-people-65-no-app-or-prompts-required"><strong>This new AI assistant makes AI easier for people 65+ — no app or prompts required</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Meta files patent for AI facial recognition glasses that identify people around you and record automatically ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Imagine hosting a dinner party without stopping to pull out your phone. Later, your glasses present you with a collection of photos and video clips showing your partner across the table and your friends laughing together. That's the idea behind the system Meta has patented for it's <a href="https://www.tomsguide.com/computing/smart-glasses/i-wore-meta-ai-glasses-for-a-month-and-even-after-struggling-with-privacy-concerns-im-still-not-convinced-theyre-the-future-of-wearables">Meta glasses</a>. <br><br>The <a href="https://www.documentcloud.org/documents/28556604-meta-fac-rec-party-patent/">patent filing</a> describes camera-equipped glasses that use facial recognition, expression analysis and information about your relationships to identify the people around you and decide which moments you may want to keep.</p><p>The glasses could even ask, “I’ve generated some highlights of tonight’s dinner party. Would you like to see them?”</p><p>At a time when Meta is continuously under fire for it's <a href="https://www.tomsguide.com/computing/smart-glasses/im-worried-smart-glasses-might-ruin-wearable-displays-and-of-course-its-the-cameras">"pervert glasses"</a> the patent sounds convenient for some, but also a potential privacy nightmare. </p><h2 id="how-meta-s-glasses-could-choose-what-to-capture">How Meta’s glasses could choose what to capture</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4120px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="EAgWrap9kXZtzKeqxM5PmH" name="shutterstock_2384736895-2" alt="friends" src="https://cdn.mos.cms.futurecdn.net/EAgWrap9kXZtzKeqxM5PmH.jpg" mos="" align="middle" fullscreen="" width="4120" height="2317" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The patent, <a href="https://www.404media.co/meta-patents-ai-glasses-to-use-facial-recognition-to-identify-people-make-highlight-reels-of-your-dinner-party/" target="_blank">published Thursday and first reported by 404 Media</a>, describes a system that looks for “points of interest” within the wearer’s field of view.</p><p>At a dinner party, facial recognition could identify the wearer’s wife and place her in the center of the frame. Other guests could be cropped out or blurred in the background.</p><p>The system could then analyze facial expressions. If two people start laughing, for example, the glasses could recognize that reaction and reposition the camera to focus on them.</p><p>Who makes the final cut may depend on the wearer’s relationship with each person. According to the report, information from a user’s social graph could help the system determine which friends or family members are likely to be more interesting to them than other people in the room.</p><p>The patent mentions eye-gaze data too. Looking at a particular person or object could help the glasses determine where to focus, while stabilization and automatic cropping could improve the resulting photo or video.</p><p>The wearer may still need to give a command before taking a picture or recording a clip in some of the examples described. The larger system, however, would handle much of the decision-making: identifying people, interpreting what they’re doing and sorting the results into a personalized collection.</p><h2 id="the-glasses-could-remember-who-you-ve-met">The glasses could remember who you’ve met</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oENiEfZsNmnJoYiGo9RRo5" name="Instagram logo" alt="Instagram logo" src="https://cdn.mos.cms.futurecdn.net/oENiEfZsNmnJoYiGo9RRo5.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Meta’s patent goes past creating a highlight reel. It describes connecting newly captured moments with a collection of “episodic memories” associated with the wearer.</p><p>One example asks: “Did I ever meet the guy in red T-shirt?”</p><p>The system could search old posts, comments, photos and videos before retrieving a group picture showing that the wearer had previously met him at a conference.</p><p>That could help someone remember a name or find a photograph they would otherwise struggle to locate. It would also turn casual real-world encounters into searchable records.</p><h2 id="meta-has-already-explored-facial-recognition-for-its-glasses">Meta has already explored facial recognition for its glasses</h2><p>Of course, owning the patent doesn’t guarantee that Meta will release any of this. Companies regularly patent ideas that never become consumer products. Facial recognition for Meta’s glasses is more than a hypothetical concern, though.</p><p>In June, <a href="https://www.wired.com/story/meta-smart-glasses-face-recognition-nametag-connections/" target="_blank">Wired found unreleased code for a feature called NameTag</a> inside the Meta AI companion app. If enabled, NameTag could turn faces captured by the glasses into biometric signatures and compare them with faceprints stored on the wearer’s phone.</p><p>Meta removed the facial-recognition code after Wired published its investigation. The company said the feature wasn’t available to consumers.</p><p>The newly published patent offers a much more detailed look at how facial recognition could work alongside automatic framing, expression analysis and personalized memory tools.</p><h2 id="what-happens-to-everyone-else-in-the-room">What happens to everyone else in the room?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZMnLQAX8D4hd8Dtgggi7En" name="meta 4.jpg" alt="Ray-Ban Meta Smart glasses" src="https://cdn.mos.cms.futurecdn.net/ZMnLQAX8D4hd8Dtgggi7En.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray-Ban Meta glasses currently use a white capture light to indicate when the wearer is taking a photo or recording video. That indicator is easy enough to understand when someone deliberately presses a button or asks the glasses to start recording.</p><p>Even if those calculations happen before a picture or video is saved, the people standing in front of the camera are still being assessed. They may not know that the glasses have recognized them, connected them to the wearer or decided that their reaction is interesting enough to capture. A system that analyzes people before deciding what to record could make that distinction harder to explain.</p><p>Those concerns are already drawing legal scrutiny. On August 12, <a href="https://www.reuters.com/legal/government/german-advocacy-group-lodges-criminal-complaint-over-meta-ai-glasses-2026-08-12/">German digital-rights group HateAid filed a criminal complaint</a> against Meta and several companies selling its glasses in Germany. </p><h2 id="bottom-line-3">Bottom line </h2><p>Meta’s current smart glasses have become popular because they look like regular Ray-Bans and make it easy to listen to music, ask Meta AI a quick question or <a href="https://www.tomsguide.com/ai/i-went-shopping-wearing-the-ai-powered-meta-ray-bans-heres-what-i-love-and-what-annoyed-me">shop without reaching for a phone</a>.</p><p>This patent imagines giving the glasses far more control over the camera. But while the wearer may appreciate having those memories captured for them. Their guests may reasonably wonder when they agreed to be part of it.</p><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful"><strong>I connected Claude to my daily apps — here are the 5 that actually made it useful</strong></a></li></ul><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights</link>
                                                                            <description>
                            <![CDATA[ Meta has patented AI glasses that could recognize your friends, detect when they laugh and decide which moments are worth saving. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">G22Lt23Utgo4GY4VCVNBkd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9WURzTBi2fqG6U23Dy9FRM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 17 Aug 2026 18:19:30 +0000</pubDate>                                                                                                                                <updated>Mon, 17 Aug 2026 18:32:49 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9WURzTBi2fqG6U23Dy9FRM-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A front view of Meta Ray-Ban (gen 2) smart glasses]]></media:description>                                                            <media:text><![CDATA[A front view of Meta Ray-Ban (gen 2) smart glasses]]></media:text>
                                <media:title type="plain"><![CDATA[A front view of Meta Ray-Ban (gen 2) smart glasses]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9WURzTBi2fqG6U23Dy9FRM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Imagine hosting a dinner party without stopping to pull out your phone. Later, your glasses present you with a collection of photos and video clips showing your partner across the table and your friends laughing together. That's the idea behind the system Meta has patented for it's <a href="https://www.tomsguide.com/computing/smart-glasses/i-wore-meta-ai-glasses-for-a-month-and-even-after-struggling-with-privacy-concerns-im-still-not-convinced-theyre-the-future-of-wearables">Meta glasses</a>. <br><br>The <a href="https://www.documentcloud.org/documents/28556604-meta-fac-rec-party-patent/">patent filing</a> describes camera-equipped glasses that use facial recognition, expression analysis and information about your relationships to identify the people around you and decide which moments you may want to keep.</p><p>The glasses could even ask, “I’ve generated some highlights of tonight’s dinner party. Would you like to see them?”</p><p>At a time when Meta is continuously under fire for it's <a href="https://www.tomsguide.com/computing/smart-glasses/im-worried-smart-glasses-might-ruin-wearable-displays-and-of-course-its-the-cameras">"pervert glasses"</a> the patent sounds convenient for some, but also a potential privacy nightmare. </p><h2 id="how-meta-s-glasses-could-choose-what-to-capture">How Meta’s glasses could choose what to capture</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4120px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="EAgWrap9kXZtzKeqxM5PmH" name="shutterstock_2384736895-2" alt="friends" src="https://cdn.mos.cms.futurecdn.net/EAgWrap9kXZtzKeqxM5PmH.jpg" mos="" align="middle" fullscreen="" width="4120" height="2317" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The patent, <a href="https://www.404media.co/meta-patents-ai-glasses-to-use-facial-recognition-to-identify-people-make-highlight-reels-of-your-dinner-party/" target="_blank">published Thursday and first reported by 404 Media</a>, describes a system that looks for “points of interest” within the wearer’s field of view.</p><p>At a dinner party, facial recognition could identify the wearer’s wife and place her in the center of the frame. Other guests could be cropped out or blurred in the background.</p><p>The system could then analyze facial expressions. If two people start laughing, for example, the glasses could recognize that reaction and reposition the camera to focus on them.</p><p>Who makes the final cut may depend on the wearer’s relationship with each person. According to the report, information from a user’s social graph could help the system determine which friends or family members are likely to be more interesting to them than other people in the room.</p><p>The patent mentions eye-gaze data too. Looking at a particular person or object could help the glasses determine where to focus, while stabilization and automatic cropping could improve the resulting photo or video.</p><p>The wearer may still need to give a command before taking a picture or recording a clip in some of the examples described. The larger system, however, would handle much of the decision-making: identifying people, interpreting what they’re doing and sorting the results into a personalized collection.</p><h2 id="the-glasses-could-remember-who-you-ve-met">The glasses could remember who you’ve met</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oENiEfZsNmnJoYiGo9RRo5" name="Instagram logo" alt="Instagram logo" src="https://cdn.mos.cms.futurecdn.net/oENiEfZsNmnJoYiGo9RRo5.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Meta’s patent goes past creating a highlight reel. It describes connecting newly captured moments with a collection of “episodic memories” associated with the wearer.</p><p>One example asks: “Did I ever meet the guy in red T-shirt?”</p><p>The system could search old posts, comments, photos and videos before retrieving a group picture showing that the wearer had previously met him at a conference.</p><p>That could help someone remember a name or find a photograph they would otherwise struggle to locate. It would also turn casual real-world encounters into searchable records.</p><h2 id="meta-has-already-explored-facial-recognition-for-its-glasses">Meta has already explored facial recognition for its glasses</h2><p>Of course, owning the patent doesn’t guarantee that Meta will release any of this. Companies regularly patent ideas that never become consumer products. Facial recognition for Meta’s glasses is more than a hypothetical concern, though.</p><p>In June, <a href="https://www.wired.com/story/meta-smart-glasses-face-recognition-nametag-connections/" target="_blank">Wired found unreleased code for a feature called NameTag</a> inside the Meta AI companion app. If enabled, NameTag could turn faces captured by the glasses into biometric signatures and compare them with faceprints stored on the wearer’s phone.</p><p>Meta removed the facial-recognition code after Wired published its investigation. The company said the feature wasn’t available to consumers.</p><p>The newly published patent offers a much more detailed look at how facial recognition could work alongside automatic framing, expression analysis and personalized memory tools.</p><h2 id="what-happens-to-everyone-else-in-the-room">What happens to everyone else in the room?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZMnLQAX8D4hd8Dtgggi7En" name="meta 4.jpg" alt="Ray-Ban Meta Smart glasses" src="https://cdn.mos.cms.futurecdn.net/ZMnLQAX8D4hd8Dtgggi7En.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray-Ban Meta glasses currently use a white capture light to indicate when the wearer is taking a photo or recording video. That indicator is easy enough to understand when someone deliberately presses a button or asks the glasses to start recording.</p><p>Even if those calculations happen before a picture or video is saved, the people standing in front of the camera are still being assessed. They may not know that the glasses have recognized them, connected them to the wearer or decided that their reaction is interesting enough to capture. A system that analyzes people before deciding what to record could make that distinction harder to explain.</p><p>Those concerns are already drawing legal scrutiny. On August 12, <a href="https://www.reuters.com/legal/government/german-advocacy-group-lodges-criminal-complaint-over-meta-ai-glasses-2026-08-12/">German digital-rights group HateAid filed a criminal complaint</a> against Meta and several companies selling its glasses in Germany. </p><h2 id="bottom-line-3">Bottom line </h2><p>Meta’s current smart glasses have become popular because they look like regular Ray-Bans and make it easy to listen to music, ask Meta AI a quick question or <a href="https://www.tomsguide.com/ai/i-went-shopping-wearing-the-ai-powered-meta-ray-bans-heres-what-i-love-and-what-annoyed-me">shop without reaching for a phone</a>.</p><p>This patent imagines giving the glasses far more control over the camera. But while the wearer may appreciate having those memories captured for them. Their guests may reasonably wonder when they agreed to be part of it.</p><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful"><strong>I connected Claude to my daily apps — here are the 5 that actually made it useful</strong></a></li></ul><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google Maps is better than ever — here are 7 'Ask Maps' prompts to try next ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Whipping out my phone during a stroll or drive around wherever I may be usually leads me to ask for Google Maps’ trip planning and food-finding expertise.</p><p>Ever since the location-finder app has received Gemini-powered AI integration and the conversational-/text-enabled assistance of “Ask Maps,” I’ve gotten plenty of mileage out of Google Maps most recent updates. I’ve learned to get used to the puzzled stares from the folks who observe me having a longer-than-usual chat with a GPS app on a park bench—I’ll yap as much as I want with the Ask Maps feature to find something fun to do and something amazing to eat.</p><p>You’re probably just as addicted to using <a href="https://www.tomsguide.com/computing/mobile-apps/gmail-is-getting-a-big-ai-boost-from-gemini-heres-all-the-new-features">Google Maps’ AI-boosted features</a> just as much as I am. If that’s the case, allow me to provide you with a collection of prompts that maximize Ask Maps’ travel planning and food discovery abilities.</p><p>And since one of them helped me unearth my new favorite hidden gem eatery, I’m living proof that <a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-is-adding-even-more-gemini-features-and-it-could-be-the-biggest-upgrade-for-years">Google Maps’ Ask Maps</a> feature is a blessing for hardcore foodies.</p><h2 id="prompting-your-way-into-fun-activities-and-delicious-destinations">Prompting your way into fun activities and delicious destinations</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5810px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NxjvQTNS45BPS4BZnox4BB" name="shutterstock_2630313157-2" alt="asking for directions" src="https://cdn.mos.cms.futurecdn.net/NxjvQTNS45BPS4BZnox4BB.jpg" mos="" align="middle" fullscreen="" width="5810" height="3268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Using these seven Gemini-generated prompts to find an area that targets the specific atmosphere you’re looking for, discover a pet-friendly location, look for somewhere to stay dry when it starts pouring, etc., should work best:</p><ul><li><strong>The "Vibe Check" Itinerary: </strong><em>Plan a half-day walking tour in [location] that feels historical but hipster, ending at a highly-rated craft cocktail bar.</em></li><li><strong>The Hyper-Specific Pitstop: </strong><em>Find a dog-friendly cafe with outdoor seating and ample parking along my current route to [location], no more than a [time]-minute detour.</em></li><li><strong>The Weather-Pivot Plan: </strong><em>It just started raining. Find the best indoor family activities within a [time]-minute drive of my location that don't require advance tickets.</em></li><li><strong>The Scenic vs. Fast Debate: </strong><em>Show me a route to [location] that prioritizes scenic mountain views and historic roadside attractions over the fastest highway time.</em></li><li><strong>The Dish-Specific Hunt: </strong><em>Where is the absolute best [name of food dish] within a [time]-minute walk of my hotel that is open right now?</em></li><li><strong>The Group Consensus Solver: </strong><em>Suggest a dinner spot near [location] with a lively atmosphere that has great reviews for both gluten-free options and steaks, and takes reservations.</em></li><li><strong>The "Local Secret" Search: </strong><em>Find a hole-in-the-wall [type of food] restaurant/stand in [location] that locals love, isn't a massive tourist trap, and has a rating of 4.5 or higher.</em></li></ul><h2 id="getting-led-to-my-new-favorite-hidden-gem-japanese-restaurant">Getting led to my new favorite hidden-gem Japanese restaurant</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6135px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wm5UERzhnehdjdE2QHJzeQ" name="shutterstock_2638702745-2" alt="japanese food" src="https://cdn.mos.cms.futurecdn.net/wm5UERzhnehdjdE2QHJzeQ.jpg" mos="" align="middle" fullscreen="" width="6135" height="3451" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>That last prompt came in handy when I was on a mission to find something different to eat after work in the city.</p><p>After getting tired of my familiar food spots (I still love Taco Bell, Chick-fil-A and Wendy’s, but I needed a break from them…), I turned to Ask Maps to highlight a hole-in-the-wall Japanese restaurant that’s within walking distance of Times Square.</p><p>Google Maps didn’t waste any time bringing up a 4.9-star-rated spot called Sozai Japanese Restaurant (Izakaya Ramen). Based on Ask Maps’ detailed description, I just had to head there and get a taste of what they were serving: </p><p><em>This charming, unassuming spot sits just a brief walk from the core of Times Square and delivers an authentic gastropub atmosphere that completely escapes the tourist rush. It is heavily favored by local midtown workers looking for legitimate comfort food after hours. The vibe is warm, cozy, and buzzing with a lively izakaya energy featuring traditional decor and deeply attentive service. Patrons highly recommend the crispy katsu, sizzling skewers, and steaming bowls of ramen made with remarkably fresh ingredients.</em></p><p>Thankfully, Sozai ended up being a delicious win (the Karaage, Garlic Fried Rice and Gyūdon taste amazing!). Ask Maps also featured Sushi by Bou and Sushi 35 West alongside its first pick, so I’ll have to make the journey to those places since they’re also highly reviewed and have delicious descriptions.</p><h2 id="final-thoughts-3">Final thoughts</h2><p>Google Maps’ Ask Maps feature just so happens to be my go-to location and restaurant curator whenever I’m on foot. And it handles its duties as a road trip assistant quite well since I regularly speak to it whenever I, my passenger or my driver needs to know where to go next. </p><p>Being able to share curated locations and share Ask Maps’ suggestions as a collaborative list that others can fill out with their recommended picks makes Google Maps even better than its previous versions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-for-mac-just-got-smarter-these-10-prompts-put-its-new-computer-history-feature-to-work" target="_blank">ChatGPT for Mac just got smarter — these 10 prompts put its new Computer History feature to work</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/gemini-in-google-maps-is-better-than-ever-use-these-7-ask-maps-prompts-to-plan-better-trips-and-discover-new-foods</link>
                                                                            <description>
                            <![CDATA[ With these seven prompts, you’ll have even more fun setting up your leisure activities and discovering new eateries. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">WFyUm7ohCFvgmnhmZCgCqR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Q82gTVfSngY342JtDgZANC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 17 Aug 2026 09:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 17 Aug 2026 14:00:50 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Google Gemini]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Q82gTVfSngY342JtDgZANC-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google Maps logo on phone with map in background]]></media:description>                                                            <media:text><![CDATA[Google Maps logo on phone with map in background]]></media:text>
                                <media:title type="plain"><![CDATA[Google Maps logo on phone with map in background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Q82gTVfSngY342JtDgZANC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Whipping out my phone during a stroll or drive around wherever I may be usually leads me to ask for Google Maps’ trip planning and food-finding expertise.</p><p>Ever since the location-finder app has received Gemini-powered AI integration and the conversational-/text-enabled assistance of “Ask Maps,” I’ve gotten plenty of mileage out of Google Maps most recent updates. I’ve learned to get used to the puzzled stares from the folks who observe me having a longer-than-usual chat with a GPS app on a park bench—I’ll yap as much as I want with the Ask Maps feature to find something fun to do and something amazing to eat.</p><p>You’re probably just as addicted to using <a href="https://www.tomsguide.com/computing/mobile-apps/gmail-is-getting-a-big-ai-boost-from-gemini-heres-all-the-new-features">Google Maps’ AI-boosted features</a> just as much as I am. If that’s the case, allow me to provide you with a collection of prompts that maximize Ask Maps’ travel planning and food discovery abilities.</p><p>And since one of them helped me unearth my new favorite hidden gem eatery, I’m living proof that <a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-is-adding-even-more-gemini-features-and-it-could-be-the-biggest-upgrade-for-years">Google Maps’ Ask Maps</a> feature is a blessing for hardcore foodies.</p><h2 id="prompting-your-way-into-fun-activities-and-delicious-destinations">Prompting your way into fun activities and delicious destinations</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5810px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NxjvQTNS45BPS4BZnox4BB" name="shutterstock_2630313157-2" alt="asking for directions" src="https://cdn.mos.cms.futurecdn.net/NxjvQTNS45BPS4BZnox4BB.jpg" mos="" align="middle" fullscreen="" width="5810" height="3268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Using these seven Gemini-generated prompts to find an area that targets the specific atmosphere you’re looking for, discover a pet-friendly location, look for somewhere to stay dry when it starts pouring, etc., should work best:</p><ul><li><strong>The "Vibe Check" Itinerary: </strong><em>Plan a half-day walking tour in [location] that feels historical but hipster, ending at a highly-rated craft cocktail bar.</em></li><li><strong>The Hyper-Specific Pitstop: </strong><em>Find a dog-friendly cafe with outdoor seating and ample parking along my current route to [location], no more than a [time]-minute detour.</em></li><li><strong>The Weather-Pivot Plan: </strong><em>It just started raining. Find the best indoor family activities within a [time]-minute drive of my location that don't require advance tickets.</em></li><li><strong>The Scenic vs. Fast Debate: </strong><em>Show me a route to [location] that prioritizes scenic mountain views and historic roadside attractions over the fastest highway time.</em></li><li><strong>The Dish-Specific Hunt: </strong><em>Where is the absolute best [name of food dish] within a [time]-minute walk of my hotel that is open right now?</em></li><li><strong>The Group Consensus Solver: </strong><em>Suggest a dinner spot near [location] with a lively atmosphere that has great reviews for both gluten-free options and steaks, and takes reservations.</em></li><li><strong>The "Local Secret" Search: </strong><em>Find a hole-in-the-wall [type of food] restaurant/stand in [location] that locals love, isn't a massive tourist trap, and has a rating of 4.5 or higher.</em></li></ul><h2 id="getting-led-to-my-new-favorite-hidden-gem-japanese-restaurant">Getting led to my new favorite hidden-gem Japanese restaurant</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6135px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wm5UERzhnehdjdE2QHJzeQ" name="shutterstock_2638702745-2" alt="japanese food" src="https://cdn.mos.cms.futurecdn.net/wm5UERzhnehdjdE2QHJzeQ.jpg" mos="" align="middle" fullscreen="" width="6135" height="3451" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>That last prompt came in handy when I was on a mission to find something different to eat after work in the city.</p><p>After getting tired of my familiar food spots (I still love Taco Bell, Chick-fil-A and Wendy’s, but I needed a break from them…), I turned to Ask Maps to highlight a hole-in-the-wall Japanese restaurant that’s within walking distance of Times Square.</p><p>Google Maps didn’t waste any time bringing up a 4.9-star-rated spot called Sozai Japanese Restaurant (Izakaya Ramen). Based on Ask Maps’ detailed description, I just had to head there and get a taste of what they were serving: </p><p><em>This charming, unassuming spot sits just a brief walk from the core of Times Square and delivers an authentic gastropub atmosphere that completely escapes the tourist rush. It is heavily favored by local midtown workers looking for legitimate comfort food after hours. The vibe is warm, cozy, and buzzing with a lively izakaya energy featuring traditional decor and deeply attentive service. Patrons highly recommend the crispy katsu, sizzling skewers, and steaming bowls of ramen made with remarkably fresh ingredients.</em></p><p>Thankfully, Sozai ended up being a delicious win (the Karaage, Garlic Fried Rice and Gyūdon taste amazing!). Ask Maps also featured Sushi by Bou and Sushi 35 West alongside its first pick, so I’ll have to make the journey to those places since they’re also highly reviewed and have delicious descriptions.</p><h2 id="final-thoughts-3">Final thoughts</h2><p>Google Maps’ Ask Maps feature just so happens to be my go-to location and restaurant curator whenever I’m on foot. And it handles its duties as a road trip assistant quite well since I regularly speak to it whenever I, my passenger or my driver needs to know where to go next. </p><p>Being able to share curated locations and share Ask Maps’ suggestions as a collaborative list that others can fill out with their recommended picks makes Google Maps even better than its previous versions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-for-mac-just-got-smarter-these-10-prompts-put-its-new-computer-history-feature-to-work" target="_blank">ChatGPT for Mac just got smarter — these 10 prompts put its new Computer History feature to work</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I connected Claude to my daily apps — here are the 5 that actually made it useful ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I've discovered that <a href="https://www.tomsguide.com/ai/claude/i-found-the-7-easiest-claude-connectors-for-people-over-50-start-with-these">Claude Connectors</a> can fill in some of the gaps in my workflow just by giving the assistant access to apps such as Gmail, Google Calendar and Notion. The good news is, you don’t have to paste in every email, meeting and project note before asking for help.</p><p>Of course, that convenience requires handing Claude access to parts of your digital life you may prefer to keep private. The setup entails permission screens, and you’ll need to decide how much <a href="https://www.tomsguide.com/ai/i-compared-the-privacy-of-chatgpt-gemini-claude-and-perplexity-heres-the-one-you-should-trust-most-with-your-personal-info">access you’re willing to grant</a>. An AI could still misunderstand a sensitive document or make a change you didn’t intend.</p><p>I tested five popular connectors to see which ones saved me time and which felt like one more thing to manage.</p><h2 id="asking-claude-to-manage-my-busy-day">Asking Claude to manage my busy day </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9FntwdtgJ6Hu4mniGyhsS" name="z (14)" alt="Claude connectors screenshot" src="https://cdn.mos.cms.futurecdn.net/B9FntwdtgJ6Hu4mniGyhsS.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><strong>I started with this prompt: </strong><em>Look at my unread emails, check my recent project notes in Drive, cross-reference my calendar and build me a realistic schedule for today.</em></p><p>Claude found two unresolved PR questions in Gmail and pulled the background information from a Google Drive document. It then checked my calendar and found an uninterrupted two-hour window I could use for writing.</p><p>Normally, I would have opened several tabs and gathered all of that information myself. Claude did the searching and matched the work to the time I actually had available. <br><br>Here are 5 more ways Claude is worth using at work and the Connectors that make all the difference. </p><h2 id="1-gmail">1. Gmail</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CUsJfx4ZxhsmotgspP3qqX" name="gmail.shutterstock_2517682173" alt="A smartphone with the Gmail logo on it resting on top of a computer keyboard." src="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Finding buried conversations and drafting replies.</p><p>Searching my inbox through Claude felt surprisingly natural. I asked, “What client questions am I still waiting on?” and received a short summary instead of having to work through 40 unread messages. </p><p>Claude drafted the replies without sending them, giving me a chance to check the wording first.</p><h2 id="2-google-drive">2. Google Drive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2tL6kjrv2UVHitpKKDzhLQ" name="Google Drive on laptop" alt="Google Drive on laptop" src="https://cdn.mos.cms.futurecdn.net/2tL6kjrv2UVHitpKKDzhLQ.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Finding information in long PDFs and buried Google Docs.</p><p>I often know I saved a document, but forgot where I put it. Claude searched Drive for the relevant feedback or research notes and brought the information into my current conversation.</p><p>I didn’t have to reorganize my folders or click through documents hoping to recognize the right one.</p><h2 id="3-google-calendar">3. Google Calendar</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iwM52LUwtcAaRPuPrBJAa3" name="Claude Calendar analysis prompt" alt="Claude Calendar analysis prompt" src="https://cdn.mos.cms.futurecdn.net/iwM52LUwtcAaRPuPrBJAa3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p><strong>Best for:</strong> Finding focus time and planning a workday I could follow.</p><p>I usually check my calendar to see where I need to be. Claude paid attention to the empty spaces.</p><p>It found time for work that required more concentration, including writing, before meetings and smaller jobs took over the day.</p><h2 id="4-notion-or-slack">4. Notion or Slack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iZKUqKrGbqkeUaL8iZ7sPZ" name="2021-01-04.jpg" alt="Slack down" src="https://cdn.mos.cms.futurecdn.net/iZKUqKrGbqkeUaL8iZ7sPZ.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Recovering old research and decisions.</p><p>Old Notion pages and Slack threads can hold plenty of useful information, assuming you can find it again. Claude searched past research, conversations and team decisions without sending me scrolling through months of messages.</p><p>The better choice will depend on where your team tends to leave that information behind.</p><h2 id="5-canva">5. Canva</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3700px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="4WxnwYNAk3KE6Z7UyssMrf" name="shutterstock_2154068439" alt="Person holding smartphone with logo of Australian graphic design company Canva Pty Ltd on screen in front of website." src="https://cdn.mos.cms.futurecdn.net/4WxnwYNAk3KE6Z7UyssMrf.jpg" mos="" align="middle" fullscreen="" width="3700" height="2081" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Turning an outline into a presentation or visual asset.</p><p>After developing an article, <a href="https://www.tomsguide.com/ai/i-tested-chatgpt-claude-and-gemini-with-canva-to-build-a-resume-and-one-completely-failed">pitch or story idea in Claude</a>, I could send that work to Canva without opening a blank design and rebuilding it there.</p><p>I’d still review the finished design and make my own changes, but the connector cut down on the usual back-and-forth between writing and creating the visual.</p><h2 id="what-to-know-before-connecting-your-accounts">What to know before connecting your accounts</h2><p>The setup takes some patience. Expect OAuth screens, permission settings and account confirmations, especially when connecting email or personal files.</p><p>Each connector works a little differently. Some can only read information, while others can make changes. The available features may depend on your account, device or permissions set by your employer.</p><p>Anthropic says Claude follows the permissions attached to your account. It shouldn’t be able to open a file or Slack channel that you couldn’t access yourself. You should still check what you’re sharing and which actions the connector is allowed to take.</p><h2 id="bottom-line-4">Bottom line </h2><p>Should you connect your apps to Claude? I wouldn’t go through the setup just to summarize the occasional email. The time savings came from letting Claude check my email, calendar and project notes in the same conversation.</p><p>With that information available, the schedule reflected the work already waiting for me and the hours I had to get it done. I didn’t have to explain my day before Claude could help me plan it. And while this set up is similar to what Gemini and ChatGPT can do, it all comes down to perference. Give it a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful</link>
                                                                            <description>
                            <![CDATA[ Connecting Claude to your daily apps can actually save you time. Here are the 5 best Claude Connectors worth setting up—plus safety tips to know first. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yHkS8RqgTQyGEaAWZLVvif</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Mon, 17 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Claude]]></media:description>                                                            <media:text><![CDATA[Claude]]></media:text>
                                <media:title type="plain"><![CDATA[Claude]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I've discovered that <a href="https://www.tomsguide.com/ai/claude/i-found-the-7-easiest-claude-connectors-for-people-over-50-start-with-these">Claude Connectors</a> can fill in some of the gaps in my workflow just by giving the assistant access to apps such as Gmail, Google Calendar and Notion. The good news is, you don’t have to paste in every email, meeting and project note before asking for help.</p><p>Of course, that convenience requires handing Claude access to parts of your digital life you may prefer to keep private. The setup entails permission screens, and you’ll need to decide how much <a href="https://www.tomsguide.com/ai/i-compared-the-privacy-of-chatgpt-gemini-claude-and-perplexity-heres-the-one-you-should-trust-most-with-your-personal-info">access you’re willing to grant</a>. An AI could still misunderstand a sensitive document or make a change you didn’t intend.</p><p>I tested five popular connectors to see which ones saved me time and which felt like one more thing to manage.</p><h2 id="asking-claude-to-manage-my-busy-day">Asking Claude to manage my busy day </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9FntwdtgJ6Hu4mniGyhsS" name="z (14)" alt="Claude connectors screenshot" src="https://cdn.mos.cms.futurecdn.net/B9FntwdtgJ6Hu4mniGyhsS.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><strong>I started with this prompt: </strong><em>Look at my unread emails, check my recent project notes in Drive, cross-reference my calendar and build me a realistic schedule for today.</em></p><p>Claude found two unresolved PR questions in Gmail and pulled the background information from a Google Drive document. It then checked my calendar and found an uninterrupted two-hour window I could use for writing.</p><p>Normally, I would have opened several tabs and gathered all of that information myself. Claude did the searching and matched the work to the time I actually had available. <br><br>Here are 5 more ways Claude is worth using at work and the Connectors that make all the difference. </p><h2 id="1-gmail">1. Gmail</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CUsJfx4ZxhsmotgspP3qqX" name="gmail.shutterstock_2517682173" alt="A smartphone with the Gmail logo on it resting on top of a computer keyboard." src="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Finding buried conversations and drafting replies.</p><p>Searching my inbox through Claude felt surprisingly natural. I asked, “What client questions am I still waiting on?” and received a short summary instead of having to work through 40 unread messages. </p><p>Claude drafted the replies without sending them, giving me a chance to check the wording first.</p><h2 id="2-google-drive">2. Google Drive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2tL6kjrv2UVHitpKKDzhLQ" name="Google Drive on laptop" alt="Google Drive on laptop" src="https://cdn.mos.cms.futurecdn.net/2tL6kjrv2UVHitpKKDzhLQ.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Finding information in long PDFs and buried Google Docs.</p><p>I often know I saved a document, but forgot where I put it. Claude searched Drive for the relevant feedback or research notes and brought the information into my current conversation.</p><p>I didn’t have to reorganize my folders or click through documents hoping to recognize the right one.</p><h2 id="3-google-calendar">3. Google Calendar</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iwM52LUwtcAaRPuPrBJAa3" name="Claude Calendar analysis prompt" alt="Claude Calendar analysis prompt" src="https://cdn.mos.cms.futurecdn.net/iwM52LUwtcAaRPuPrBJAa3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p><strong>Best for:</strong> Finding focus time and planning a workday I could follow.</p><p>I usually check my calendar to see where I need to be. Claude paid attention to the empty spaces.</p><p>It found time for work that required more concentration, including writing, before meetings and smaller jobs took over the day.</p><h2 id="4-notion-or-slack">4. Notion or Slack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iZKUqKrGbqkeUaL8iZ7sPZ" name="2021-01-04.jpg" alt="Slack down" src="https://cdn.mos.cms.futurecdn.net/iZKUqKrGbqkeUaL8iZ7sPZ.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Recovering old research and decisions.</p><p>Old Notion pages and Slack threads can hold plenty of useful information, assuming you can find it again. Claude searched past research, conversations and team decisions without sending me scrolling through months of messages.</p><p>The better choice will depend on where your team tends to leave that information behind.</p><h2 id="5-canva">5. Canva</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3700px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="4WxnwYNAk3KE6Z7UyssMrf" name="shutterstock_2154068439" alt="Person holding smartphone with logo of Australian graphic design company Canva Pty Ltd on screen in front of website." src="https://cdn.mos.cms.futurecdn.net/4WxnwYNAk3KE6Z7UyssMrf.jpg" mos="" align="middle" fullscreen="" width="3700" height="2081" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Best for:</strong> Turning an outline into a presentation or visual asset.</p><p>After developing an article, <a href="https://www.tomsguide.com/ai/i-tested-chatgpt-claude-and-gemini-with-canva-to-build-a-resume-and-one-completely-failed">pitch or story idea in Claude</a>, I could send that work to Canva without opening a blank design and rebuilding it there.</p><p>I’d still review the finished design and make my own changes, but the connector cut down on the usual back-and-forth between writing and creating the visual.</p><h2 id="what-to-know-before-connecting-your-accounts">What to know before connecting your accounts</h2><p>The setup takes some patience. Expect OAuth screens, permission settings and account confirmations, especially when connecting email or personal files.</p><p>Each connector works a little differently. Some can only read information, while others can make changes. The available features may depend on your account, device or permissions set by your employer.</p><p>Anthropic says Claude follows the permissions attached to your account. It shouldn’t be able to open a file or Slack channel that you couldn’t access yourself. You should still check what you’re sharing and which actions the connector is allowed to take.</p><h2 id="bottom-line-4">Bottom line </h2><p>Should you connect your apps to Claude? I wouldn’t go through the setup just to summarize the occasional email. The time savings came from letting Claude check my email, calendar and project notes in the same conversation.</p><p>With that information available, the schedule reflected the work already waiting for me and the hours I had to get it done. I didn’t have to explain my day before Claude could help me plan it. And while this set up is similar to what Gemini and ChatGPT can do, it all comes down to perference. Give it a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse"><strong>Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This new AI assistant makes AI easier for people 65+ — no app or prompts required ]]></title>
                                                                                                <dc:content><![CDATA[ <p>AI assistants can plan vacations, <a href="https://www.tomsguide.com/ai/7-claude-3-prompts-to-try-to-boost-your-productivity">offer productivity support</a> and <a href="https://www.tomsguide.com/ai/10-chatgpt-prompts-to-help-you-streamline-your-workflow-and-stay-productive-all-day-long">help organize your day</a>. First, however, you need to choose one, download the app and figure out what to ask it. For those who've already left the workplace and aren't on their computers all day or simply don't want the hassle of logging into an app, "Ask Proxy" is helping to remove that learning curve. </p><p>The new <a href="https://askproxy.com/" target="_blank">personal AI assistant</a> works entirely through text messages and was designed in part for baby boomers who are curious about AI but don’t want to learn how to write prompts. Once it gets to know you, Proxy can even text first with reminders and suggestions based on what is happening in your life.</p><p>There’s no app to download and no new interface to figure out. If you already know how to send a text, you know how to use it.</p><h2 id="an-easier-way-to-try-ai">An easier way to try AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LsWz6X4ZBqrwMteJ72AR79" name="8 - 2026-08-14T170416.305" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/LsWz6X4ZBqrwMteJ72AR79.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Although <a href="https://www.tomsguide.com/ai/my-mom-is-in-her-70s-and-uses-ai-every-day-these-are-her-5-go-to-favorite-uses">my mom is pretty versed in AI </a>(I am her daughter, after all), she couldn't wait to try Ask Proxy, which launched on August 4th. To get started, all she had to do was save Proxy’s phone number (820-732-2625) in her phone and text it "Start." <br><br>Yes, it's that simple. Setting up the assistant took less than 20 minutes as it asked her questions about her life including her interests, preferences and the way she makes decisions. She was able to connect her calendar, which is optional, but she has a pretty busy social life, so she was eager to do that.</p><p>Once she was logged in, she was able to text Proxy just as she would me or my sister. There are no special commands to remember or prompts to perfect. It's ideal for boomers like her and I felt better knowing she didn't have to log into an app to chat. </p><h2 id="uses-for-ask-proxy">Uses for Ask Proxy</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xB67zy42GKgS8xn9V42iAC" name="8 - 2026-08-14T170701.248" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/xB67zy42GKgS8xn9V42iAC.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Whatever someone might ask ChatGPT, they can Ask Proxy. For example, my mom was looking for a gift for a neighbor's retirement party and Ask Proxy helped her pick out an adorable jewelry box. It can even help with planning vacations or simply respond when my mom needs someone to chat with during the day. <br><br>Proxy accepts photos and voice messages too, so users can send a picture of what’s inside the refrigerator rather than typing out a list of ingredients to get a recipe or dinner idea. </p><p>That familiarity may be its biggest advantage for older adults. ChatGPT, Claude and Gemini can handle many of the same requests, but they still require you to open an AI app and start the conversation.</p><h2 id="it-can-text-you-first">It can text you first</h2><p>Proxy doesn’t always wait for a question. The assistant uses the information you share, along with your calendar if you connect it, to anticipate what may be coming up.</p><p>It could remind you to start planning for a grandchild’s birthday, suggest booking a restaurant before an anniversary or prompt you to coordinate holiday plans while everyone is still available.<br><br>I really liked this feature because I've noticed my mom sometimes feels lonely. Even with my sister and me close by, her friends aren't always available. Proxy is a great way to feel connected with a daily joke or weekly dinner conversation. Honestly, since she started using it, my mom seems happier. </p><p>Like ChatGPT Memory, the company says Proxy <a href="https://www.tomsguide.com/ai/chatgpts-improved-memory-means-it-has-an-easier-time-remembering-your-previous-chats">remembers previous conversations </a>and adjusts its recommendations as it learns more about you. Its responses draw from your personal information, a private database of guidance selected by the company and current Google searches.</p><h2 id="is-proxy-safe">Is Proxy safe? </h2><p>Any time you use a personalized AI assistant, sharing details blurs the line. However, Ask Proxy says it does not sell or share personal information, show ads or use conversations to train public AI models. The company also says outside humans do not review messages and recommendations are not influenced by paid placements.</p><p>Those are the company’s own privacy claims, and users should still be selective about what they share. I wouldn’t send highly sensitive medical, financial or identification information through a text-based AI service. And if you're an adult child with a senior parent, it's good to remind them of this if they start using the app. </p><p>It’s worth remembering that Proxy is still AI. Its recommendations can be inaccurate, even when they sound confident. Advice involving health, money or a family member’s care should be checked with a qualified person.<br><br>Also, I noticed the responses are not always quick. Unlike ChatGPT where users get an answer in seconds, sometimes a few minutes go by before a response, much like an actual text conversation. </p><h2 id="bottom-line-5">Bottom line </h2><p>Ask Proxy includes 15 free messages, giving users a chance to see how the service works before paying. Unlimited text support costs $29 a month. That could be a bit pricey, but keep in mind it just about aligns with Claude Pro and ChatGPT Plus. And while it's slighly more expensive, the AI is selling simplicity (and frankly, peace of mind for adults like me). </p><p>For boomers who already use ChatGPT comfortably, Proxy may not offer enough to justify another subscription. Although my mom uses both and enjoys them for different reasons. <br><br>I recommend Ask Proxy anyone who has wanted to try AI and felt put off by the setup, texting a familiar phone number could be a far easier place to begin.</p><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/this-new-ai-assistant-makes-ai-easier-for-people-65-no-app-or-prompts-required</link>
                                                                            <description>
                            <![CDATA[ Ask Proxy helps people over 65 use AI through simple text messages, with no app to download or complicated prompts to learn. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">V5NCpqki4iaW5U2XgCRzy3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EBs89PV2SW3XVSM23CwAML-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 16 Aug 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EBs89PV2SW3XVSM23CwAML-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[senior with phone]]></media:description>                                                            <media:text><![CDATA[senior with phone]]></media:text>
                                <media:title type="plain"><![CDATA[senior with phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EBs89PV2SW3XVSM23CwAML-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>AI assistants can plan vacations, <a href="https://www.tomsguide.com/ai/7-claude-3-prompts-to-try-to-boost-your-productivity">offer productivity support</a> and <a href="https://www.tomsguide.com/ai/10-chatgpt-prompts-to-help-you-streamline-your-workflow-and-stay-productive-all-day-long">help organize your day</a>. First, however, you need to choose one, download the app and figure out what to ask it. For those who've already left the workplace and aren't on their computers all day or simply don't want the hassle of logging into an app, "Ask Proxy" is helping to remove that learning curve. </p><p>The new <a href="https://askproxy.com/" target="_blank">personal AI assistant</a> works entirely through text messages and was designed in part for baby boomers who are curious about AI but don’t want to learn how to write prompts. Once it gets to know you, Proxy can even text first with reminders and suggestions based on what is happening in your life.</p><p>There’s no app to download and no new interface to figure out. If you already know how to send a text, you know how to use it.</p><h2 id="an-easier-way-to-try-ai">An easier way to try AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LsWz6X4ZBqrwMteJ72AR79" name="8 - 2026-08-14T170416.305" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/LsWz6X4ZBqrwMteJ72AR79.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Although <a href="https://www.tomsguide.com/ai/my-mom-is-in-her-70s-and-uses-ai-every-day-these-are-her-5-go-to-favorite-uses">my mom is pretty versed in AI </a>(I am her daughter, after all), she couldn't wait to try Ask Proxy, which launched on August 4th. To get started, all she had to do was save Proxy’s phone number (820-732-2625) in her phone and text it "Start." <br><br>Yes, it's that simple. Setting up the assistant took less than 20 minutes as it asked her questions about her life including her interests, preferences and the way she makes decisions. She was able to connect her calendar, which is optional, but she has a pretty busy social life, so she was eager to do that.</p><p>Once she was logged in, she was able to text Proxy just as she would me or my sister. There are no special commands to remember or prompts to perfect. It's ideal for boomers like her and I felt better knowing she didn't have to log into an app to chat. </p><h2 id="uses-for-ask-proxy">Uses for Ask Proxy</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xB67zy42GKgS8xn9V42iAC" name="8 - 2026-08-14T170701.248" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/xB67zy42GKgS8xn9V42iAC.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Whatever someone might ask ChatGPT, they can Ask Proxy. For example, my mom was looking for a gift for a neighbor's retirement party and Ask Proxy helped her pick out an adorable jewelry box. It can even help with planning vacations or simply respond when my mom needs someone to chat with during the day. <br><br>Proxy accepts photos and voice messages too, so users can send a picture of what’s inside the refrigerator rather than typing out a list of ingredients to get a recipe or dinner idea. </p><p>That familiarity may be its biggest advantage for older adults. ChatGPT, Claude and Gemini can handle many of the same requests, but they still require you to open an AI app and start the conversation.</p><h2 id="it-can-text-you-first">It can text you first</h2><p>Proxy doesn’t always wait for a question. The assistant uses the information you share, along with your calendar if you connect it, to anticipate what may be coming up.</p><p>It could remind you to start planning for a grandchild’s birthday, suggest booking a restaurant before an anniversary or prompt you to coordinate holiday plans while everyone is still available.<br><br>I really liked this feature because I've noticed my mom sometimes feels lonely. Even with my sister and me close by, her friends aren't always available. Proxy is a great way to feel connected with a daily joke or weekly dinner conversation. Honestly, since she started using it, my mom seems happier. </p><p>Like ChatGPT Memory, the company says Proxy <a href="https://www.tomsguide.com/ai/chatgpts-improved-memory-means-it-has-an-easier-time-remembering-your-previous-chats">remembers previous conversations </a>and adjusts its recommendations as it learns more about you. Its responses draw from your personal information, a private database of guidance selected by the company and current Google searches.</p><h2 id="is-proxy-safe">Is Proxy safe? </h2><p>Any time you use a personalized AI assistant, sharing details blurs the line. However, Ask Proxy says it does not sell or share personal information, show ads or use conversations to train public AI models. The company also says outside humans do not review messages and recommendations are not influenced by paid placements.</p><p>Those are the company’s own privacy claims, and users should still be selective about what they share. I wouldn’t send highly sensitive medical, financial or identification information through a text-based AI service. And if you're an adult child with a senior parent, it's good to remind them of this if they start using the app. </p><p>It’s worth remembering that Proxy is still AI. Its recommendations can be inaccurate, even when they sound confident. Advice involving health, money or a family member’s care should be checked with a qualified person.<br><br>Also, I noticed the responses are not always quick. Unlike ChatGPT where users get an answer in seconds, sometimes a few minutes go by before a response, much like an actual text conversation. </p><h2 id="bottom-line-5">Bottom line </h2><p>Ask Proxy includes 15 free messages, giving users a chance to see how the service works before paying. Unlimited text support costs $29 a month. That could be a bit pricey, but keep in mind it just about aligns with Claude Pro and ChatGPT Plus. And while it's slighly more expensive, the AI is selling simplicity (and frankly, peace of mind for adults like me). </p><p>For boomers who already use ChatGPT comfortably, Proxy may not offer enough to justify another subscription. Although my mom uses both and enjoys them for different reasons. <br><br>I recommend Ask Proxy anyone who has wanted to try AI and felt put off by the setup, texting a familiar phone number could be a far easier place to begin.</p><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Salmonella and cyclospora outbreaks are spreading: Can AI help keep you safe? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>At this point, I’m nervous enough not to crack open a box of Teddy Grahams because it might not be safe to eat.</p><p>Every time I turn on the news, hop on social media or tune into my favorite morning radio shows, I see more news about a food recall. I’ve been lucky enough to avoid <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-how-to-avoid-explosive-diarrhea-this-summer-heres-the-advice-im-actually-following">getting explosive diarrhea </a>for the past few summer months after the first big recall, but now it seems like there are other unsafe foods making the rounds. </p><p>I wanted to get a primer on the most recent food recalls, learn about the best methods to avoid them & other types of contaminated food and get quick tips on how to remain safe.</p><p>To see this mission to a successful completion, I asked ChatGPT to assist me. In the end, it gave me all the helpful information I needed that I’m sure will prove equally useful for you.</p><h2 id="the-prompt-that-fed-me-the-safety-information-we-all-need-to-know">The prompt that “fed” me the safety information we all need to know</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rjAeWTxsKAzSPBQWvsgj59" name="shutterstock_2606659935-16x9" alt="fda" src="https://cdn.mos.cms.futurecdn.net/rjAeWTxsKAzSPBQWvsgj59.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I wanted to go into my latest health-centered chat with ChatGPT with a prompt that covered all of my requests. I asked the chatbot to refine my simple prompt of “Tell me about the latest food recalls and give me advice on how to remain safe from them.” </p><p>Here’s the super descriptive prompt it gave me to produce even better results:</p><p><em>Act as a food-safety researcher and help me identify the most recent food recalls in the United States.</em></p><p><em>Search the web for recalls announced or updated within the last 30 days, prioritizing authoritative sources such as the FDA, USDA FSIS, CDC, and official manufacturer/retailer notices. Do not rely on social media or unverified reports.</em></p><p><em>For each significant recall, tell me: </em></p><p><em>Product name and brand</em></p><p><em>Reason for the recall</em></p><p><em>Contaminant or hazard involved, if known</em></p><p><em>Product codes, lot numbers, UPCs, expiration/use-by dates, or other identifying information</em></p><p><em>Where the product was sold</em></p><p><em>Recall date and whether the recall is still active</em></p><p><em>What consumers should do if they have the product</em></p><p><em>Whether the product should be returned, discarded, or otherwise handled</em></p><p><em>Any reported illnesses, injuries, or deaths associated with the recall, if confirmed</em></p><p><em>Then give me a practical food-safety action plan for avoiding recalled or contaminated food.</em></p><p><em>Cover:</em></p><p><em>How often I should check for recalls</em></p><p><em>The best official websites or alerts to monitor</em></p><p><em>How to check whether food already in my refrigerator, freezer, or pantry is recalled</em></p><p><em>How to safely dispose of recalled food</em></p><p><em>How to prevent cross-contamination</em></p><p><em>Safe food-storage and cooking practices</em></p><p><em>What warning signs mean I should contact a healthcare professional after eating a recalled product</em></p><p><em>Important: Clearly distinguish between confirmed recalls and general food-safety warnings. Include the date of every source you use and direct links to the original government or manufacturer announcement. If you cannot verify a claim through a reliable source, say so rather than guessing.</em></p><p><em>Finally, give me a "What I should check right now" section with the 5 most important actions I can take today.</em></p><h2 id="the-most-important-current-recalls-and-following-a-practical-food-safety-action-plan">The most important current recalls and following a practical food-safety action plan</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sHpfzYcMQAEUcKotFvmX5j" name="shutterstock_2065426409-16x9" alt="lettuce" src="https://cdn.mos.cms.futurecdn.net/sHpfzYcMQAEUcKotFvmX5j.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Once I input this prompt into ChatGPT, it took on its role as my digital food-safety researcher with pride.</p><p>On the topic of the most recent and significant food recalls, it mentioned Cyclospora being linked to recalled Taylor Farms iceberg lettuce, E. coli being linked to GreenWise frozen blueberries and Salmonella being linked to Midwest Poultry Services shell eggs as the ones I really need to be clued in on. It also pointed out recalls that are specific to my region, such as undeclared allergens being linked to Eridanous shortbread and coconut sprinkles cookies.</p><p>As for the sensible actions I should take to remain safe, ChatGPT gave me the sort of common-sense advice that everyone else and I most likely practice already. Disposing of any recalled food I may still have, keeping my refrigerator & freezer at the proper temperature for food storage and preventing cross-contamination by keeping certain foods apart came up as those sorts of tips. </p><p>But I did make sure to take note of the chatbot’s tip regarding how often I should check for food recalls. Simply checking the official sites for the FDA, FSIS, FoodSafety.gov and CDC weekly should help me stay informed.</p><p>Another aspect of ChatGPT’s information breakdown is how it made a clear distinction between a recall and a general warning:</p><p><em>A recall means a specific product has been identified for removal, and the notice normally gives you matching information such as brand, product, package size, UPC, lot code, or date. </em></p><p><em>A public-health/outbreak advisory is broader. It may tell you that an investigation is underway even before investigators can identify every affected product.</em></p><p><em>For example, FDA's current Cyclospora investigation is an ongoing outbreak investigation, while Taylor Farms has issued a specific recall. Likewise, the frozen-blueberry E. coli investigation is ongoing, but the affected GreenWise products have been specifically recalled.</em></p><h2 id="the-takeaway-2">The takeaway</h2><p>ChatGPT laid out all the data, sources and vital safety tips I needed to know—keeping my gut safe by prompting a chatbot to bring me up to speed on food recalls worked out great. For the time being, shopping at Lidl, eating GreenWise frozen blueberries & mixed berries and picking up sort of lettuce marked by the Taylor Farms logo just isn’t the way to go. As we move into the cooler months of the year, I’ll be using everything ChatGPT gave me from this healthy conversation to stay out of the intensive care unit.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/apples-siri-news-fix-has-a-big-gen-z-problem" target="_blank">Apple’s Siri news fix has a big Gen Z problem</a></li><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-plan-the-ultimate-coffee-shop-crawl-for-national-coffee-month-here-are-the-places-im-checking-out-and-the-drinks-im-trying" target="_blank">I used ChatGPT to plan the ultimate coffee shop crawl for National Coffee Month — here's the tasty itinerary it gave me</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/food-recalls-are-piling-up-as-people-get-sick-from-cyclospora-and-salmonella-i-asked-chatgpt-what-you-need-to-know-and-how-to-stay-safe</link>
                                                                            <description>
                            <![CDATA[ With this prompt, I learned about the most important food recalls and the action plan I need to take to avoid getting sick. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nCVxANjPPidmYH5k4gVBZW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/U35V3ECDyecTcbTVjFijQR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 16 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/U35V3ECDyecTcbTVjFijQR-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[eggs]]></media:description>                                                            <media:text><![CDATA[eggs]]></media:text>
                                <media:title type="plain"><![CDATA[eggs]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/U35V3ECDyecTcbTVjFijQR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>At this point, I’m nervous enough not to crack open a box of Teddy Grahams because it might not be safe to eat.</p><p>Every time I turn on the news, hop on social media or tune into my favorite morning radio shows, I see more news about a food recall. I’ve been lucky enough to avoid <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-how-to-avoid-explosive-diarrhea-this-summer-heres-the-advice-im-actually-following">getting explosive diarrhea </a>for the past few summer months after the first big recall, but now it seems like there are other unsafe foods making the rounds. </p><p>I wanted to get a primer on the most recent food recalls, learn about the best methods to avoid them & other types of contaminated food and get quick tips on how to remain safe.</p><p>To see this mission to a successful completion, I asked ChatGPT to assist me. In the end, it gave me all the helpful information I needed that I’m sure will prove equally useful for you.</p><h2 id="the-prompt-that-fed-me-the-safety-information-we-all-need-to-know">The prompt that “fed” me the safety information we all need to know</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rjAeWTxsKAzSPBQWvsgj59" name="shutterstock_2606659935-16x9" alt="fda" src="https://cdn.mos.cms.futurecdn.net/rjAeWTxsKAzSPBQWvsgj59.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I wanted to go into my latest health-centered chat with ChatGPT with a prompt that covered all of my requests. I asked the chatbot to refine my simple prompt of “Tell me about the latest food recalls and give me advice on how to remain safe from them.” </p><p>Here’s the super descriptive prompt it gave me to produce even better results:</p><p><em>Act as a food-safety researcher and help me identify the most recent food recalls in the United States.</em></p><p><em>Search the web for recalls announced or updated within the last 30 days, prioritizing authoritative sources such as the FDA, USDA FSIS, CDC, and official manufacturer/retailer notices. Do not rely on social media or unverified reports.</em></p><p><em>For each significant recall, tell me: </em></p><p><em>Product name and brand</em></p><p><em>Reason for the recall</em></p><p><em>Contaminant or hazard involved, if known</em></p><p><em>Product codes, lot numbers, UPCs, expiration/use-by dates, or other identifying information</em></p><p><em>Where the product was sold</em></p><p><em>Recall date and whether the recall is still active</em></p><p><em>What consumers should do if they have the product</em></p><p><em>Whether the product should be returned, discarded, or otherwise handled</em></p><p><em>Any reported illnesses, injuries, or deaths associated with the recall, if confirmed</em></p><p><em>Then give me a practical food-safety action plan for avoiding recalled or contaminated food.</em></p><p><em>Cover:</em></p><p><em>How often I should check for recalls</em></p><p><em>The best official websites or alerts to monitor</em></p><p><em>How to check whether food already in my refrigerator, freezer, or pantry is recalled</em></p><p><em>How to safely dispose of recalled food</em></p><p><em>How to prevent cross-contamination</em></p><p><em>Safe food-storage and cooking practices</em></p><p><em>What warning signs mean I should contact a healthcare professional after eating a recalled product</em></p><p><em>Important: Clearly distinguish between confirmed recalls and general food-safety warnings. Include the date of every source you use and direct links to the original government or manufacturer announcement. If you cannot verify a claim through a reliable source, say so rather than guessing.</em></p><p><em>Finally, give me a "What I should check right now" section with the 5 most important actions I can take today.</em></p><h2 id="the-most-important-current-recalls-and-following-a-practical-food-safety-action-plan">The most important current recalls and following a practical food-safety action plan</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sHpfzYcMQAEUcKotFvmX5j" name="shutterstock_2065426409-16x9" alt="lettuce" src="https://cdn.mos.cms.futurecdn.net/sHpfzYcMQAEUcKotFvmX5j.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Once I input this prompt into ChatGPT, it took on its role as my digital food-safety researcher with pride.</p><p>On the topic of the most recent and significant food recalls, it mentioned Cyclospora being linked to recalled Taylor Farms iceberg lettuce, E. coli being linked to GreenWise frozen blueberries and Salmonella being linked to Midwest Poultry Services shell eggs as the ones I really need to be clued in on. It also pointed out recalls that are specific to my region, such as undeclared allergens being linked to Eridanous shortbread and coconut sprinkles cookies.</p><p>As for the sensible actions I should take to remain safe, ChatGPT gave me the sort of common-sense advice that everyone else and I most likely practice already. Disposing of any recalled food I may still have, keeping my refrigerator & freezer at the proper temperature for food storage and preventing cross-contamination by keeping certain foods apart came up as those sorts of tips. </p><p>But I did make sure to take note of the chatbot’s tip regarding how often I should check for food recalls. Simply checking the official sites for the FDA, FSIS, FoodSafety.gov and CDC weekly should help me stay informed.</p><p>Another aspect of ChatGPT’s information breakdown is how it made a clear distinction between a recall and a general warning:</p><p><em>A recall means a specific product has been identified for removal, and the notice normally gives you matching information such as brand, product, package size, UPC, lot code, or date. </em></p><p><em>A public-health/outbreak advisory is broader. It may tell you that an investigation is underway even before investigators can identify every affected product.</em></p><p><em>For example, FDA's current Cyclospora investigation is an ongoing outbreak investigation, while Taylor Farms has issued a specific recall. Likewise, the frozen-blueberry E. coli investigation is ongoing, but the affected GreenWise products have been specifically recalled.</em></p><h2 id="the-takeaway-2">The takeaway</h2><p>ChatGPT laid out all the data, sources and vital safety tips I needed to know—keeping my gut safe by prompting a chatbot to bring me up to speed on food recalls worked out great. For the time being, shopping at Lidl, eating GreenWise frozen blueberries & mixed berries and picking up sort of lettuce marked by the Taylor Farms logo just isn’t the way to go. As we move into the cooler months of the year, I’ll be using everything ChatGPT gave me from this healthy conversation to stay out of the intensive care unit.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/apples-siri-news-fix-has-a-big-gen-z-problem" target="_blank">Apple’s Siri news fix has a big Gen Z problem</a></li><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-plan-the-ultimate-coffee-shop-crawl-for-national-coffee-month-here-are-the-places-im-checking-out-and-the-drinks-im-trying" target="_blank">I used ChatGPT to plan the ultimate coffee shop crawl for National Coffee Month — here's the tasty itinerary it gave me</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The 256GB laptop is the new 32GB phone — and it’s quietly pushing you into cloud subscriptions ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There was a time not too long ago when a 32GB smartphone felt perfectly workable — potentially even spacious. Fast forward to today and apps have gotten bigger, cameras have become larger, and routine software updates now eat entire gigabytes on their own. </p><p>32GB has gone from seeming totally normal (even luxurious) to looking absurdly stingy. I think 256GB laptops are heading in the same direction. </p><p>In 2026, plenty of otherwise <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">excellent laptops</a> start with 256GB of storage, despite many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best smartphones</a> offering the same amount. At first, 256GB might be enough, but after months or years of apps, photos, downloads, and updates, that breathing room is just... gone.</p><p>And when it does go, <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> and <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS</a> have a very convenient answer waiting in the wings: move more of your stuff into the cloud — and, sooner or later, start paying for it.</p><div class="product"><a data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2S3mMDzKcdQKAxWc4wGxDQ" name="MacBook Air M5 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2S3mMDzKcdQKAxWc4wGxDQ.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label='13" MacBook Air (M5)' data-dimension48='13" MacBook Air (M5)' data-dimension25="$1297">13" MacBook Air (M5): $1297</a></strong><br>The MacBook Air has been upgraded with more power. The new laptop features a 13.6-inch (2560 x 1664) display, the new Apple M5 chip, 16GB of RAM, a 512GB SSD, and support for Wi-Fi 7 and Bluetooth 6. Although it now costs $100 more, the base model comes with a 512GB SSD instead of 256GB.<a class="view-deal button" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297">View Deal</a></p></div><h2 id="256gb-isn-t-tiny-and-that-s-exactly-the-problem">256GB isn’t tiny — and that’s exactly the problem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iQBUvBQeStovV4YftmSdMZ" name="Lenovo Chromebook Plus 14" alt="Lenovo Chromebook Plus 14" src="https://cdn.mos.cms.futurecdn.net/iQBUvBQeStovV4YftmSdMZ.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The funny part, if we can call it that, is that 256GB can feel perfectly comfortable for those who live inside a browser. But there's a difference between having enough storage and having enough room to <em>grow</em>.</p><p>We’ve previously said that <a href="https://www.tomsguide.com/computing/laptops/5-things-to-look-for-when-buying-a-laptop-from-someone-who-reviews-them-for-a-living">256GB is the bare minimum</a> you should look for in a general-purpose laptop, and that increasingly feels spot on in 2026.  </p><p>It’s definitely enough to get by, but it doesn’t leave you with a huge amount of headroom for the future. In a world where a single <a href="https://www.tomsguide.com/entertainment/music-streaming/spotifys-latest-update-makes-organizing-your-music-easier-plus-improved-offline-downloads">Spotify</a> playlist with 1,000 songs can take up nearly 10GB of space, bigger is better.  </p><p>You can actually see the shift happening elsewhere in the market: Apple’s latest <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-m5-review">MacBook Air</a> now starts with 512GB, an upgrade we welcomed, while many <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">budget laptops</a> continue to stick with 256GB to keep their prices down.</p><p>There is, of course, some nuance to this picture. A <a href="https://www.tomsguide.com/news/best-chromebook-deals-prices">cheap Chromebook</a> or secondary laptop definitely doesn’t need a huge SSD, and with memory prices soaring, buying decisions are becoming harder than ever.</p><p>But for a laptop you expect to use as your main computer for the next five-plus years, 256GB looks less like a specification and more like a compromise.</p><h2 id="your-laptop-can-last-years-but-its-storage-can-t-grow-with-it">Your laptop can last years, but its storage can’t grow with it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ywqirqeDaWNqKZgmGgbrqF" name="macbook air m4" alt="macbook air m4" src="https://cdn.mos.cms.futurecdn.net/ywqirqeDaWNqKZgmGgbrqF.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>At a basic level, storage is one of the few parts of a laptop that can become more restrictive simply through normal use.</p><p>Photos, downloads, apps, offline media, assorted files, and everything else you acquire from day to day gradually pile up, while the SSD you bought on day one stays the same size. This situation is less of a problem if you can simply replace the SSD later. </p><p>Some Windows laptops, like the excellent <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-13-pro-revealed-and-its-a-ground-up-redesign-of-our-favorite-modular-laptop">Framework models</a>, still make that relatively straightforward, but plenty of thin-and-light notebooks — including <a href="https://www.tomsguide.com/computing/macbooks/i-review-macbooks-for-a-living-and-these-are-the-biggest-developments-i-expect-in-2026">MacBooks</a> — effectively lock you into whatever capacity you choose at checkout.</p><div class="product"><a data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599" href="https://frame.work/laptop16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1305px;"><p class="vanilla-image-block" style="padding-top:69.04%;"><img id="fnhfRVzYGyhBCo8Ng2wFJn" name="Framework Laptop 16.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fnhfRVzYGyhBCo8Ng2wFJn.jpg" mos="" align="middle" fullscreen="" width="1305" height="901" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">Laptop 16 (2025): $1599</a></strong><br>The Framework Laptop 16 is a fully customizable, repairable, and upgradable laptop. It now includes the option to outfit it with an Nvidia GeForce RTX 5070 graphics card. In our <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-16-2025-review">Framework Laptop 16 review,</a> we called the Editor's Choice machine our favorite laptop of the year and a must-buy for DIYers and folks who value their right to repair.<a class="view-deal button" href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">View Deal</a></p></div><h2 id="conveniently-there-s-a-subscription-for-that">Conveniently, there’s a subscription for that</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2112px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6vEt8qRjSJA8ncGGUriukH" name="Framework Laptop 13 upgradeable" alt="Framework Laptop 13 being upgraded with new memory" src="https://cdn.mos.cms.futurecdn.net/6vEt8qRjSJA8ncGGUriukH.jpg" mos="" align="middle" fullscreen="" width="2112" height="1188" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Framework)</span></figcaption></figure><p>Running low on storage is less painful than it used to be, mainly because Windows and macOS are extremely good at pushing files to the cloud.</p><p>OneDrive’s <a href="https://www.tomsguide.com/reviews/microsoft-onedrive-review">Files On-Demand feature</a>, for example, lets files remain visible in File Explorer without actually taking up space, while macOS can automatically move less frequently used files into <a href="https://www.tomsguide.com/phones/iphones/i-pay-for-icloud-not-for-storage-but-for-this-perk-instead">iCloud</a> when space starts running low.</p><p>There's no denying that these are genuinely useful features that save people a lot of hassle; having to actively choose what to delete is tough, and decision paralysis is real. </p><p>The problem comes when cloud storage starts compensating for your laptop's limited built-in storage.</p><p>Both OSes make that transition remarkably easy: You fill the SSD, move more into the cloud, and eventually find yourself paying for extra capacity. Almost without noticing, an understandable hardware compromise becomes yet another subscription.</p><p><a href="https://www.tomsguide.com/buying-guide/best-cloud-storage">Cloud storage</a> also isn’t a like-for-like replacement for local storage. Apps, games, caches, and plenty of other files still need SSD space, while online-only files naturally depend on an internet connection.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBz6Ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBz6Ke.js" async></script><h2 id="ai-is-making-the-obvious-solution-harder">AI is making the obvious solution harder</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xvJgTcuknLbUZo9QawcVzi" name="macbook neo" alt="macbook neo" src="https://cdn.mos.cms.futurecdn.net/xvJgTcuknLbUZo9QawcVzi.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The obvious answer would be for 512GB to become the new baseline. Unfortunately, 2026 is turning out to be a pretty terrible year for that transition.</p><p>As you might have read, the <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> is also putting pressure on the storage inside our laptops, as well as <a href="https://www.tomsguide.com/gaming/best-games-consoles">consoles</a>, <a href="https://www.tomsguide.com/best-picks/best-cheap-tablets">tablets</a>, <a href="https://www.tomsguide.com/best-picks/best-phones">smartphones</a>, and, well, pretty much every consumer device.</p><p>Data centres need vast amounts of memory and storage to keep AI services running, and that extra demand is making the components used in consumer SSDs more expensive too.</p><p>We’ve already seen how the wider memory crunch is <a href="https://www.tomsguide.com/computing/laptops/buying-a-laptop-in-2026-is-complicated-heres-a-survival-guide-to-help-you-make-the-best-choice">affecting the laptop market</a>, with manufacturers facing higher component costs and difficult decisions over where to make compromises. Even usually unflappable giants like Apple are <a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">raising prices</a> across the board. </p><p>All of this makes sticking with 256GB easier to understand, even if it doesn’t make it any more appealing. The 256GB laptop isn’t obsolete yet. But, like the 32GB phone before it, its days as an acceptable default should be numbered.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/computing/gaming-laptops/hyperx-omen-15-review">I tested the HyperX Omen 15, and it almost made me forget my PS5</a></li><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend">I checked out the Pixel 11, Pixel 11 Pro, and Pixel 11 Pro XL — here’s the one I recommend</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/cloud-storage/the-256gb-laptop-is-the-new-32gb-phone-and-its-quietly-pushing-you-into-cloud-subscriptions</link>
                                                                            <description>
                            <![CDATA[ Many laptops start with 256GB of storage. Unfortunately, that doesn't tend to last long, which could inevitably force you into cloud subscriptions. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2dDayHGrQtJTU2i7pfpWjg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 15 Aug 2026 06:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Cloud Storage]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Max Slater-Robins ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Neo]]></media:description>                                                            <media:text><![CDATA[MacBook Neo]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Neo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There was a time not too long ago when a 32GB smartphone felt perfectly workable — potentially even spacious. Fast forward to today and apps have gotten bigger, cameras have become larger, and routine software updates now eat entire gigabytes on their own. </p><p>32GB has gone from seeming totally normal (even luxurious) to looking absurdly stingy. I think 256GB laptops are heading in the same direction. </p><p>In 2026, plenty of otherwise <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">excellent laptops</a> start with 256GB of storage, despite many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best smartphones</a> offering the same amount. At first, 256GB might be enough, but after months or years of apps, photos, downloads, and updates, that breathing room is just... gone.</p><p>And when it does go, <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> and <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS</a> have a very convenient answer waiting in the wings: move more of your stuff into the cloud — and, sooner or later, start paying for it.</p><div class="product"><a data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2S3mMDzKcdQKAxWc4wGxDQ" name="MacBook Air M5 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2S3mMDzKcdQKAxWc4wGxDQ.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label='13" MacBook Air (M5)' data-dimension48='13" MacBook Air (M5)' data-dimension25="$1297">13" MacBook Air (M5): $1297</a></strong><br>The MacBook Air has been upgraded with more power. The new laptop features a 13.6-inch (2560 x 1664) display, the new Apple M5 chip, 16GB of RAM, a 512GB SSD, and support for Wi-Fi 7 and Bluetooth 6. Although it now costs $100 more, the base model comes with a 512GB SSD instead of 256GB.<a class="view-deal button" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297">View Deal</a></p></div><h2 id="256gb-isn-t-tiny-and-that-s-exactly-the-problem">256GB isn’t tiny — and that’s exactly the problem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iQBUvBQeStovV4YftmSdMZ" name="Lenovo Chromebook Plus 14" alt="Lenovo Chromebook Plus 14" src="https://cdn.mos.cms.futurecdn.net/iQBUvBQeStovV4YftmSdMZ.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The funny part, if we can call it that, is that 256GB can feel perfectly comfortable for those who live inside a browser. But there's a difference between having enough storage and having enough room to <em>grow</em>.</p><p>We’ve previously said that <a href="https://www.tomsguide.com/computing/laptops/5-things-to-look-for-when-buying-a-laptop-from-someone-who-reviews-them-for-a-living">256GB is the bare minimum</a> you should look for in a general-purpose laptop, and that increasingly feels spot on in 2026.  </p><p>It’s definitely enough to get by, but it doesn’t leave you with a huge amount of headroom for the future. In a world where a single <a href="https://www.tomsguide.com/entertainment/music-streaming/spotifys-latest-update-makes-organizing-your-music-easier-plus-improved-offline-downloads">Spotify</a> playlist with 1,000 songs can take up nearly 10GB of space, bigger is better.  </p><p>You can actually see the shift happening elsewhere in the market: Apple’s latest <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-m5-review">MacBook Air</a> now starts with 512GB, an upgrade we welcomed, while many <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">budget laptops</a> continue to stick with 256GB to keep their prices down.</p><p>There is, of course, some nuance to this picture. A <a href="https://www.tomsguide.com/news/best-chromebook-deals-prices">cheap Chromebook</a> or secondary laptop definitely doesn’t need a huge SSD, and with memory prices soaring, buying decisions are becoming harder than ever.</p><p>But for a laptop you expect to use as your main computer for the next five-plus years, 256GB looks less like a specification and more like a compromise.</p><h2 id="your-laptop-can-last-years-but-its-storage-can-t-grow-with-it">Your laptop can last years, but its storage can’t grow with it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ywqirqeDaWNqKZgmGgbrqF" name="macbook air m4" alt="macbook air m4" src="https://cdn.mos.cms.futurecdn.net/ywqirqeDaWNqKZgmGgbrqF.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>At a basic level, storage is one of the few parts of a laptop that can become more restrictive simply through normal use.</p><p>Photos, downloads, apps, offline media, assorted files, and everything else you acquire from day to day gradually pile up, while the SSD you bought on day one stays the same size. This situation is less of a problem if you can simply replace the SSD later. </p><p>Some Windows laptops, like the excellent <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-13-pro-revealed-and-its-a-ground-up-redesign-of-our-favorite-modular-laptop">Framework models</a>, still make that relatively straightforward, but plenty of thin-and-light notebooks — including <a href="https://www.tomsguide.com/computing/macbooks/i-review-macbooks-for-a-living-and-these-are-the-biggest-developments-i-expect-in-2026">MacBooks</a> — effectively lock you into whatever capacity you choose at checkout.</p><div class="product"><a data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599" href="https://frame.work/laptop16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1305px;"><p class="vanilla-image-block" style="padding-top:69.04%;"><img id="fnhfRVzYGyhBCo8Ng2wFJn" name="Framework Laptop 16.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fnhfRVzYGyhBCo8Ng2wFJn.jpg" mos="" align="middle" fullscreen="" width="1305" height="901" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">Laptop 16 (2025): $1599</a></strong><br>The Framework Laptop 16 is a fully customizable, repairable, and upgradable laptop. It now includes the option to outfit it with an Nvidia GeForce RTX 5070 graphics card. In our <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-16-2025-review">Framework Laptop 16 review,</a> we called the Editor's Choice machine our favorite laptop of the year and a must-buy for DIYers and folks who value their right to repair.<a class="view-deal button" href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">View Deal</a></p></div><h2 id="conveniently-there-s-a-subscription-for-that">Conveniently, there’s a subscription for that</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2112px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6vEt8qRjSJA8ncGGUriukH" name="Framework Laptop 13 upgradeable" alt="Framework Laptop 13 being upgraded with new memory" src="https://cdn.mos.cms.futurecdn.net/6vEt8qRjSJA8ncGGUriukH.jpg" mos="" align="middle" fullscreen="" width="2112" height="1188" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Framework)</span></figcaption></figure><p>Running low on storage is less painful than it used to be, mainly because Windows and macOS are extremely good at pushing files to the cloud.</p><p>OneDrive’s <a href="https://www.tomsguide.com/reviews/microsoft-onedrive-review">Files On-Demand feature</a>, for example, lets files remain visible in File Explorer without actually taking up space, while macOS can automatically move less frequently used files into <a href="https://www.tomsguide.com/phones/iphones/i-pay-for-icloud-not-for-storage-but-for-this-perk-instead">iCloud</a> when space starts running low.</p><p>There's no denying that these are genuinely useful features that save people a lot of hassle; having to actively choose what to delete is tough, and decision paralysis is real. </p><p>The problem comes when cloud storage starts compensating for your laptop's limited built-in storage.</p><p>Both OSes make that transition remarkably easy: You fill the SSD, move more into the cloud, and eventually find yourself paying for extra capacity. Almost without noticing, an understandable hardware compromise becomes yet another subscription.</p><p><a href="https://www.tomsguide.com/buying-guide/best-cloud-storage">Cloud storage</a> also isn’t a like-for-like replacement for local storage. Apps, games, caches, and plenty of other files still need SSD space, while online-only files naturally depend on an internet connection.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBz6Ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBz6Ke.js" async></script><h2 id="ai-is-making-the-obvious-solution-harder">AI is making the obvious solution harder</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xvJgTcuknLbUZo9QawcVzi" name="macbook neo" alt="macbook neo" src="https://cdn.mos.cms.futurecdn.net/xvJgTcuknLbUZo9QawcVzi.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The obvious answer would be for 512GB to become the new baseline. Unfortunately, 2026 is turning out to be a pretty terrible year for that transition.</p><p>As you might have read, the <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> is also putting pressure on the storage inside our laptops, as well as <a href="https://www.tomsguide.com/gaming/best-games-consoles">consoles</a>, <a href="https://www.tomsguide.com/best-picks/best-cheap-tablets">tablets</a>, <a href="https://www.tomsguide.com/best-picks/best-phones">smartphones</a>, and, well, pretty much every consumer device.</p><p>Data centres need vast amounts of memory and storage to keep AI services running, and that extra demand is making the components used in consumer SSDs more expensive too.</p><p>We’ve already seen how the wider memory crunch is <a href="https://www.tomsguide.com/computing/laptops/buying-a-laptop-in-2026-is-complicated-heres-a-survival-guide-to-help-you-make-the-best-choice">affecting the laptop market</a>, with manufacturers facing higher component costs and difficult decisions over where to make compromises. Even usually unflappable giants like Apple are <a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">raising prices</a> across the board. </p><p>All of this makes sticking with 256GB easier to understand, even if it doesn’t make it any more appealing. The 256GB laptop isn’t obsolete yet. But, like the 32GB phone before it, its days as an acceptable default should be numbered.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/computing/gaming-laptops/hyperx-omen-15-review">I tested the HyperX Omen 15, and it almost made me forget my PS5</a></li><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend">I checked out the Pixel 11, Pixel 11 Pro, and Pixel 11 Pro XL — here’s the one I recommend</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I challenged ChatGPT and Gemini to find the best ways to unwind — these 7 ideas made National Relaxation Day even better ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Entering a total state of zen without your worries disturbing your peace for just a few seconds feels incredible.</p><p>I may not get to it as much as I’d like to. But when I do get the chance to calm my nerves and leave the stresses of the world behind, I cherish those moments. One of the annual holidays that encapsulates that sense of tranquility is National Relaxation Day. The fact that it just so happens to fall on a Saturday this year is perfect since it’s always my chosen day to unwind.</p><p>With my goal of adopting the best methods that will help me unwind on National Relaxation Day and beyond, I presented two challenges to ChatGPT and Gemini: find me the 10 best ways to relax without spending any money and suggest some unorthodox relaxation methods I can try.</p><p>Both chatbots met my inquiry with a bunch of valuable relaxation techniques that are instantly recognizable and a few that I never even knew existed. I made a conscious effort to implement them into my National Relaxation Day chill sessions and bookmark them for my future lazy Saturdays.</p><h2 id="chatgpt-and-gemini-s-ultimate-relaxation-recommendations">ChatGPT and Gemini’s ultimate relaxation recommendations</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4320px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A2tRJs9tbwHQRAV9Wx5245" name="shutterstock_1517688029-2" alt="breathing techniques" src="https://cdn.mos.cms.futurecdn.net/A2tRJs9tbwHQRAV9Wx5245.jpg" mos="" align="middle" fullscreen="" width="4320" height="2430" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>National Relaxation Day is all about encouraging everyone to simply slow down and unwind as much as possible. With that theme in mind, I approached ChatGPT and Gemini with the sole purpose of discovering the best ways to loosen up and boost my positive mental state. First up are ChatGPT’s suggestions, which led me to add five winning methods to my batch of restoration procedures:</p><ul><li><strong>Practice deep breathing: </strong><em>Try the 4-7-8 technique. Inhale for 4 seconds, hold for 7, then exhale for 8. Repeat several times.</em></li><li><em><strong>Have a “low-information hour”</strong></em><strong>: </strong><em>No news, social media, email, podcasts, or scrolling. You can still read, walk, cook, stretch, or listen to music—just don't consume information.</em></li><li><strong>Have a fake vacation in your own neighborhood:</strong> <em>Walk somewhere you've never explored, sit somewhere unfamiliar, and pretend you're a tourist for an hour.</em></li><li><strong>Write an aggressively unproductive to-do list: </strong><em>Put things like “stare out the window,” “make a ridiculous sandwich,” and “lie down for 15 minutes” on the list. Then check them off.</em></li><li><strong>Have a “bad art” session: </strong><em>Draw, paint, or doodle with the explicit goal of making something terrible. Removing the pressure to be good can make the activity much more relaxing.</em></li></ul><p>The first, second, fourth and fifth relaxation tips that ChatGPT put forth worked like a charm during the time I spent indoors. Standing in place while practicing that signature breathing technique, turning my “low-information hour” into a two-hour one, adding “look up at the ceiling while listening to the sounds of crashing waves” to my unproductive to-do list and doodling like I used to do in grade school all put me at peace. </p><p>Tip number three paid off for me once I decided to step outside and walk aimlessly for an hour to see parts of my neighborhood I’d never been to before.</p><p>As for Gemini’s offering of relaxation processes, there were two that stood out to me the most:</p><ul><li><strong>Practice Progressive Muscle Relaxation: </strong><em>This is a highly effective physical reset. Lie down, close your eyes, and starting from your toes, intentionally tense each muscle group for a few seconds before completely releasing it. Work your way all the way up to your face and jaw.</em></li><li><strong>EFT Tapping (Emotional Freedom Technique): </strong><em>Tapping involves using your fingertips to tap on specific meridian points on your head, face, and collarbone while repeating a phrase about whatever is stressing you out. It looks a bit silly to an observer, but it combines cognitive therapy (acknowledging the stressor) with somatic physical feedback. The rhythmic tapping sends calming signals to the amygdala—the stress center of your brain—telling it that you are safe, even while thinking about a stressful subject.</em></li></ul><p>Both of those physical methods did more for my physical and mental well-being than I expected. I may have felt a little silly tapping my forehead while shouting out, “Watching my parents get older is really getting to me,” but this practice proved to be useful, as it gave me a central stress point to focus on while I soothed my head with soft taps.</p><h2 id="final-thoughts-4">Final thoughts</h2><p>My National Relaxation Day was filled with a bevy of worthwhile techniques that made me feel a whole lot better than I usually do. Thanks to ChatGPT and Gemini, I learned about a few common and uncommon relaxation methods that will remain a permanent part of my chill Saturday sessions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/ai/grok/elon-musks-grok-dominates-alarming-deepfake-report-1-in-6-attacks-involved-sexual-images-including-children" target="_blank">Researchers tracked 821 deepfake attacks — Elon Musk's Grok was linked to most of them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-challenged-chatgpt-and-gemini-to-find-the-best-ways-to-unwind-these-7-ideas-made-national-relaxation-day-even-better</link>
                                                                            <description>
                            <![CDATA[ I discovered the best ways to relax thanks to suggestions from ChatGPT and Gemini—and they made my National Relaxation Day “celebration” extra chill. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nd7UKbxbimQ92iGPd2gKkG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hpTdxwyY6Y6iRb5DFqF49Y-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 15 Aug 2026 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hpTdxwyY6Y6iRb5DFqF49Y-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[relaxing at home]]></media:description>                                                            <media:text><![CDATA[relaxing at home]]></media:text>
                                <media:title type="plain"><![CDATA[relaxing at home]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hpTdxwyY6Y6iRb5DFqF49Y-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Entering a total state of zen without your worries disturbing your peace for just a few seconds feels incredible.</p><p>I may not get to it as much as I’d like to. But when I do get the chance to calm my nerves and leave the stresses of the world behind, I cherish those moments. One of the annual holidays that encapsulates that sense of tranquility is National Relaxation Day. The fact that it just so happens to fall on a Saturday this year is perfect since it’s always my chosen day to unwind.</p><p>With my goal of adopting the best methods that will help me unwind on National Relaxation Day and beyond, I presented two challenges to ChatGPT and Gemini: find me the 10 best ways to relax without spending any money and suggest some unorthodox relaxation methods I can try.</p><p>Both chatbots met my inquiry with a bunch of valuable relaxation techniques that are instantly recognizable and a few that I never even knew existed. I made a conscious effort to implement them into my National Relaxation Day chill sessions and bookmark them for my future lazy Saturdays.</p><h2 id="chatgpt-and-gemini-s-ultimate-relaxation-recommendations">ChatGPT and Gemini’s ultimate relaxation recommendations</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4320px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A2tRJs9tbwHQRAV9Wx5245" name="shutterstock_1517688029-2" alt="breathing techniques" src="https://cdn.mos.cms.futurecdn.net/A2tRJs9tbwHQRAV9Wx5245.jpg" mos="" align="middle" fullscreen="" width="4320" height="2430" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>National Relaxation Day is all about encouraging everyone to simply slow down and unwind as much as possible. With that theme in mind, I approached ChatGPT and Gemini with the sole purpose of discovering the best ways to loosen up and boost my positive mental state. First up are ChatGPT’s suggestions, which led me to add five winning methods to my batch of restoration procedures:</p><ul><li><strong>Practice deep breathing: </strong><em>Try the 4-7-8 technique. Inhale for 4 seconds, hold for 7, then exhale for 8. Repeat several times.</em></li><li><em><strong>Have a “low-information hour”</strong></em><strong>: </strong><em>No news, social media, email, podcasts, or scrolling. You can still read, walk, cook, stretch, or listen to music—just don't consume information.</em></li><li><strong>Have a fake vacation in your own neighborhood:</strong> <em>Walk somewhere you've never explored, sit somewhere unfamiliar, and pretend you're a tourist for an hour.</em></li><li><strong>Write an aggressively unproductive to-do list: </strong><em>Put things like “stare out the window,” “make a ridiculous sandwich,” and “lie down for 15 minutes” on the list. Then check them off.</em></li><li><strong>Have a “bad art” session: </strong><em>Draw, paint, or doodle with the explicit goal of making something terrible. Removing the pressure to be good can make the activity much more relaxing.</em></li></ul><p>The first, second, fourth and fifth relaxation tips that ChatGPT put forth worked like a charm during the time I spent indoors. Standing in place while practicing that signature breathing technique, turning my “low-information hour” into a two-hour one, adding “look up at the ceiling while listening to the sounds of crashing waves” to my unproductive to-do list and doodling like I used to do in grade school all put me at peace. </p><p>Tip number three paid off for me once I decided to step outside and walk aimlessly for an hour to see parts of my neighborhood I’d never been to before.</p><p>As for Gemini’s offering of relaxation processes, there were two that stood out to me the most:</p><ul><li><strong>Practice Progressive Muscle Relaxation: </strong><em>This is a highly effective physical reset. Lie down, close your eyes, and starting from your toes, intentionally tense each muscle group for a few seconds before completely releasing it. Work your way all the way up to your face and jaw.</em></li><li><strong>EFT Tapping (Emotional Freedom Technique): </strong><em>Tapping involves using your fingertips to tap on specific meridian points on your head, face, and collarbone while repeating a phrase about whatever is stressing you out. It looks a bit silly to an observer, but it combines cognitive therapy (acknowledging the stressor) with somatic physical feedback. The rhythmic tapping sends calming signals to the amygdala—the stress center of your brain—telling it that you are safe, even while thinking about a stressful subject.</em></li></ul><p>Both of those physical methods did more for my physical and mental well-being than I expected. I may have felt a little silly tapping my forehead while shouting out, “Watching my parents get older is really getting to me,” but this practice proved to be useful, as it gave me a central stress point to focus on while I soothed my head with soft taps.</p><h2 id="final-thoughts-4">Final thoughts</h2><p>My National Relaxation Day was filled with a bevy of worthwhile techniques that made me feel a whole lot better than I usually do. Thanks to ChatGPT and Gemini, I learned about a few common and uncommon relaxation methods that will remain a permanent part of my chill Saturday sessions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing" target="_blank">I asked ChatGPT to plan my fan convention trip — and it saved me hours</a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing" target="_blank">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/ai/grok/elon-musks-grok-dominates-alarming-deepfake-report-1-in-6-attacks-involved-sexual-images-including-children" target="_blank">Researchers tracked 821 deepfake attacks — Elon Musk's Grok was linked to most of them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ChatGPT for Mac just got smarter — these 10 prompts put its new Computer History feature to work ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Since its arrival on Mac desktops and laptops as a native app, ChatGPT has earned its keep as one of the most reliable AI tools for macOS users.</p><p>By combining the chatbot’s Chat, Work and Codex features, <a href="https://chatgpt.com/download/" target="_blank">ChatGPT’s macOS app</a> has become a quality digital assistant that steps up to handle any job when you request its help with a simple keyboard shortcut (Option + Space). ChatGPT for Mac is already capable of pulling context from whatever’s on your screen, your email, screenshots and files to fulfill any of the jobs you give it. But a newly installed feature now makes it capable of learning and remembering everything you do on your Mac, even when you do it outside of the app itself.</p><p>With the new <a href="https://learn.chatgpt.com/docs/customization/computer-history" target="_blank">“Computer History”</a> update, the native macOS ChatGPT app builds a searchable timeline of all the activity you’ve done across all your selected sites and apps. It’s worth noting that this feature is off by default, which means Pro users can choose to turn it on, while Business and Enterprise users must ask for access from their administrators to make that feature active.</p><p>If you want to test out this new Computer History feature to see what it can do, test out these 10 prompts to put it to work.</p><h2 id="making-sure-chatgpt-for-mac-never-forgets-what-you-ve-been-doing">Making sure ChatGPT for Mac never forgets what you’ve been doing</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2087997145404387497"><p lang="en" dir="ltr">here’s what mine caught yesterday:i was evaluating speaking opportunities, and Computer History suggested turning that workflow into a reusable skill.you can find your timeline in settings > computer history.context is all codex needs. pic.twitter.com/cBCTPZTGSA<a href="https://twitter.com/cantworkitout/status/2087997145404387497">August 13, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The Computer History feature is promised to be as safe to use as possible—OpenAI has made it clear that it only temporarily stores interaction events that have taken place on your Mac for up to 48 hours. And while that data is processed on the tech giant’s servers to generate the memories the ChatGPT macOS app needs to reference your past activity, it’s not kept after being processed and is never used for AI training.</p><p>This new feature doesn’t save screenshots, screen recordings, microphone input or system audio—it simply keeps track of whatever sites and apps you’ve been working with to handle jobs such as finding a document you recently looked at, producing a summary of everything you worked on for the day, creating a productivity report based on everything you worked on for the week, etc.</p><p>To put this new Computer History feature to the test and make your native ChatGPT macOS app do a better job of analyzing, connecting, recovering and improving on your daily workflows, try using these 10 ChatGPT-generated prompts:</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6054px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="82bf8tbBLgQunHjP9wdHUX" name="shutterstock_2268945361-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/82bf8tbBLgQunHjP9wdHUX.jpg" mos="" align="middle" fullscreen="" width="6054" height="3405" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><ul><li><strong>What was I working on?: </strong><em>Look at my computer activity from today and give me a concise summary of everything I worked on. Group it by project, identify what I completed, and tell me what I left unfinished.</em></li><li><strong>Find the thing you were working on: </strong><em>What was that article, document, website, or project I was working on yesterday that I spent the most time on? Tell me what I was doing with it and help me pick up where I left off.</em></li><li><strong>Turn your day into a to-do list: </strong><em>Based on what I actually did on my Mac today, create a prioritized to-do list for tomorrow. Separate unfinished tasks from new tasks you should recommend.</em></li><li><strong>Find unfinished work: </strong><em>Review my computer activity from the past seven days. Identify projects I started but haven't finished, and rank them by how important or urgent they appear to be.</em></li><li><strong>Reconstruct a lost train of thought: </strong><em>Look at what I was doing immediately before I switched away from my most recent project. Based on that activity, tell me what I was probably trying to accomplish and suggest the next three steps.</em></li><li><strong>Create a weekly productivity report: </strong><em>Analyze my computer activity from the past week. What projects consumed most of my time? What recurring tasks did I perform? Where did I appear to lose time? Give me three concrete suggestions for improving my workflow next week.</em></li><li><strong>Find your biggest time sinks: </strong><em>Analyze my computer activity over the last seven days and identify my biggest sources of wasted time. Don't simply count hours — look for repeated patterns, unnecessary app switching, and tasks that seem to interrupt my productive work.</em></li><li><strong>Discover repetitive tasks: </strong><em>Look through my recent computer history for tasks I've repeatedly performed in roughly the same sequence. Identify the three most repetitive workflows and explain how I could automate or simplify each one.</em></li><li><strong>Turn repeated behavior into a workflow: </strong><em>Find a workflow I've performed repeatedly on my Mac. Reconstruct the steps as accurately as possible, then turn it into a reusable checklist or automation plan.</em></li><li><strong>Prepare for tomorrow: </strong><em>Based on my activity today, what should I know before I start work tomorrow? Summarize unfinished projects, important research, open questions, and anything I appeared to be waiting on.</em></li></ul><h2 id="bottom-line-6">Bottom line</h2><p>Based on the digital breadcrumbs you leave behind during your time spent browsing, researching and working across your enabled Mac apps and sites, ChatGPT for Mac’s Computer History feature turns all that activity into memories and a timeline that it can reference to improve your workflow. </p><p>While ChatGPT for Mac users based in the European Economic Area (EEA), Switzerland and the United Kingdom can’t access this feature just yet, it is accessible for users in other countries where ChatGPT for Mac is available.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/this-feels-much-more-like-amazon-forcing-the-issue-on-them-streamer-sounds-the-alarm-on-amazon-using-twitchs-content-to-train-its-ai-models" target="_blank">‘This feels much more like Amazon forcing the issue on them' — streamer sounds the alarm on Amazon using Twitch’s content to train its AI models</a></li><li><a href="https://www.tomsguide.com/ai/eventually-speed-becomes-the-thing-that-slows-you-down-we-spoke-to-an-ai-infrastructure-expert-about-the-accelerating-data-center-race" target="_blank">'The industry focused heavily on how quickly we could build compute and not enough on what was required to support it': we spoke to an AI infrastructure expert about the AI data center backlash</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/chatgpt-for-mac-just-got-smarter-these-10-prompts-put-its-new-computer-history-feature-to-work</link>
                                                                            <description>
                            <![CDATA[ Thanks to the new Computer History feature for ChatGPT’s desktop macOS app, you can get a better understanding of its true potential with these 10 prompts. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jiEBYYdaFA6PhTrUEbDEcY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VrrqiVARjNAMjDZUMzHU9P-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Aug 2026 16:30:46 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VrrqiVARjNAMjDZUMzHU9P-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[chatgpt ]]></media:description>                                                            <media:text><![CDATA[chatgpt ]]></media:text>
                                <media:title type="plain"><![CDATA[chatgpt ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VrrqiVARjNAMjDZUMzHU9P-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Since its arrival on Mac desktops and laptops as a native app, ChatGPT has earned its keep as one of the most reliable AI tools for macOS users.</p><p>By combining the chatbot’s Chat, Work and Codex features, <a href="https://chatgpt.com/download/" target="_blank">ChatGPT’s macOS app</a> has become a quality digital assistant that steps up to handle any job when you request its help with a simple keyboard shortcut (Option + Space). ChatGPT for Mac is already capable of pulling context from whatever’s on your screen, your email, screenshots and files to fulfill any of the jobs you give it. But a newly installed feature now makes it capable of learning and remembering everything you do on your Mac, even when you do it outside of the app itself.</p><p>With the new <a href="https://learn.chatgpt.com/docs/customization/computer-history" target="_blank">“Computer History”</a> update, the native macOS ChatGPT app builds a searchable timeline of all the activity you’ve done across all your selected sites and apps. It’s worth noting that this feature is off by default, which means Pro users can choose to turn it on, while Business and Enterprise users must ask for access from their administrators to make that feature active.</p><p>If you want to test out this new Computer History feature to see what it can do, test out these 10 prompts to put it to work.</p><h2 id="making-sure-chatgpt-for-mac-never-forgets-what-you-ve-been-doing">Making sure ChatGPT for Mac never forgets what you’ve been doing</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2087997145404387497"><p lang="en" dir="ltr">here’s what mine caught yesterday:i was evaluating speaking opportunities, and Computer History suggested turning that workflow into a reusable skill.you can find your timeline in settings > computer history.context is all codex needs. pic.twitter.com/cBCTPZTGSA<a href="https://twitter.com/cantworkitout/status/2087997145404387497">August 13, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The Computer History feature is promised to be as safe to use as possible—OpenAI has made it clear that it only temporarily stores interaction events that have taken place on your Mac for up to 48 hours. And while that data is processed on the tech giant’s servers to generate the memories the ChatGPT macOS app needs to reference your past activity, it’s not kept after being processed and is never used for AI training.</p><p>This new feature doesn’t save screenshots, screen recordings, microphone input or system audio—it simply keeps track of whatever sites and apps you’ve been working with to handle jobs such as finding a document you recently looked at, producing a summary of everything you worked on for the day, creating a productivity report based on everything you worked on for the week, etc.</p><p>To put this new Computer History feature to the test and make your native ChatGPT macOS app do a better job of analyzing, connecting, recovering and improving on your daily workflows, try using these 10 ChatGPT-generated prompts:</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6054px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="82bf8tbBLgQunHjP9wdHUX" name="shutterstock_2268945361-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/82bf8tbBLgQunHjP9wdHUX.jpg" mos="" align="middle" fullscreen="" width="6054" height="3405" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><ul><li><strong>What was I working on?: </strong><em>Look at my computer activity from today and give me a concise summary of everything I worked on. Group it by project, identify what I completed, and tell me what I left unfinished.</em></li><li><strong>Find the thing you were working on: </strong><em>What was that article, document, website, or project I was working on yesterday that I spent the most time on? Tell me what I was doing with it and help me pick up where I left off.</em></li><li><strong>Turn your day into a to-do list: </strong><em>Based on what I actually did on my Mac today, create a prioritized to-do list for tomorrow. Separate unfinished tasks from new tasks you should recommend.</em></li><li><strong>Find unfinished work: </strong><em>Review my computer activity from the past seven days. Identify projects I started but haven't finished, and rank them by how important or urgent they appear to be.</em></li><li><strong>Reconstruct a lost train of thought: </strong><em>Look at what I was doing immediately before I switched away from my most recent project. Based on that activity, tell me what I was probably trying to accomplish and suggest the next three steps.</em></li><li><strong>Create a weekly productivity report: </strong><em>Analyze my computer activity from the past week. What projects consumed most of my time? What recurring tasks did I perform? Where did I appear to lose time? Give me three concrete suggestions for improving my workflow next week.</em></li><li><strong>Find your biggest time sinks: </strong><em>Analyze my computer activity over the last seven days and identify my biggest sources of wasted time. Don't simply count hours — look for repeated patterns, unnecessary app switching, and tasks that seem to interrupt my productive work.</em></li><li><strong>Discover repetitive tasks: </strong><em>Look through my recent computer history for tasks I've repeatedly performed in roughly the same sequence. Identify the three most repetitive workflows and explain how I could automate or simplify each one.</em></li><li><strong>Turn repeated behavior into a workflow: </strong><em>Find a workflow I've performed repeatedly on my Mac. Reconstruct the steps as accurately as possible, then turn it into a reusable checklist or automation plan.</em></li><li><strong>Prepare for tomorrow: </strong><em>Based on my activity today, what should I know before I start work tomorrow? Summarize unfinished projects, important research, open questions, and anything I appeared to be waiting on.</em></li></ul><h2 id="bottom-line-6">Bottom line</h2><p>Based on the digital breadcrumbs you leave behind during your time spent browsing, researching and working across your enabled Mac apps and sites, ChatGPT for Mac’s Computer History feature turns all that activity into memories and a timeline that it can reference to improve your workflow. </p><p>While ChatGPT for Mac users based in the European Economic Area (EEA), Switzerland and the United Kingdom can’t access this feature just yet, it is accessible for users in other countries where ChatGPT for Mac is available.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse" target="_blank">Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse'</a></li><li><a href="https://www.tomsguide.com/ai/this-feels-much-more-like-amazon-forcing-the-issue-on-them-streamer-sounds-the-alarm-on-amazon-using-twitchs-content-to-train-its-ai-models" target="_blank">‘This feels much more like Amazon forcing the issue on them' — streamer sounds the alarm on Amazon using Twitch’s content to train its AI models</a></li><li><a href="https://www.tomsguide.com/ai/eventually-speed-becomes-the-thing-that-slows-you-down-we-spoke-to-an-ai-infrastructure-expert-about-the-accelerating-data-center-race" target="_blank">'The industry focused heavily on how quickly we could build compute and not enough on what was required to support it': we spoke to an AI infrastructure expert about the AI data center backlash</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'The industry focused heavily on how quickly we could build compute and not enough on what was required to support it': we spoke to an AI infrastructure expert about the AI data center backlash ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The disconnect between the companies looking to fast-track the development of AI data centers and the communities and politicians fighting back against them is massive.</p><p>The likes of Microsoft, Meta and Amazon Web Services (AWS) funnel money into the continued expansion of AI data centers on a national scale. But with those data centers comes a negative impact on our environment, with precious fossil fuels being used to power them and a huge strain on our power grid resulting from their computing demand.</p><p>As a result, politicians and grassroots community organizers have started pushing back. And with <a href="https://www.tomsguide.com/ai/the-ai-boom-just-hit-a-wall-these-states-are-considering-banning-all-new-data-centers" target="_blank">a coalition of states placing moratoriums on AI data centers</a>, that opposition is only getting stronger.</p><p>To get more insight into the growing negative sentiment towards AI data centers, what could happen if the US builds them faster instead of responsibly and more, we spoke to <a href="https://www.linkedin.com/in/balaji-tammabattula" target="_blank">Balaji Tammabattula</a>, an AI infrastructure engineering expert and COO of <a href="https://www.barupon.com/" target="_blank">BaRupOn</a>.</p><h2 id="delving-into-the-development-and-rising-backlash-against-ai-infrastructure">Delving into the development and rising backlash against AI infrastructure</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:12288px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="koeFdXMgaXPgGwi9irAkzc" name="shutterstock_2656287847-2" alt="ai data centers" src="https://cdn.mos.cms.futurecdn.net/koeFdXMgaXPgGwi9irAkzc.jpg" mos="" align="middle" fullscreen="" width="12288" height="6912" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: Why do you think the growing backlash against data centers was inevitable? And where do you think the AI industry got it all wrong?</strong></p><p><strong>Balaji Tammabattula: </strong>I think the backlash was inevitable because the industry focused heavily on how quickly we could build compute and not enough on what was required to support it.</p><p>When a large data center comes into a community and suddenly needs hundreds of megawatts of electricity, water and infrastructure, people naturally ask, "What does this mean for us?"</p><p>Those are legitimate questions.</p><p><a href="https://lamptx.com/" target="_blank">At LAMP in Texas</a>, we've taken a different approach. We're developing dedicated behind-the-meter power generation so that the campus is designed around producing the power it needs rather than depending on existing community grid capacity.</p><p>We're applying the same thinking to water and public infrastructure.</p><p>Responsible AI infrastructure shouldn't arrive in a community and ask, "What resources can we take?" The better question is, "What infrastructure can we build, and what can we leave behind?"</p><p>That's where I think the industry needs to go.</p><p><strong>Tom’s Guide: What do you see as the biggest misconception the data-center industry has about the local communities it wants to build in?</strong></p><p><strong>Tammabattula: </strong>That communities are simply resistant to development. They're not. People want to understand the tradeoff.</p><p>If you're bringing a massive project into their community, they want to know whether their electricity rates will be affected, whether you're competing for their water, what happens to emergency services and roads, and whether their children will actually have opportunities created by the investment.</p><p>At LAMP, we're trying to address those questions in the physical design of the campus.</p><p>We're developing our own behind-the-meter power generation. We're planning large-scale rainwater harvesting and have identified the potential to capture more than 500 million gallons of rainwater based on the site's characteristics. We're also planning a fire station and support for local emergency-response capabilities.</p><p>And we want the relationship to extend beyond infrastructure. We plan to support STEM education and local skills development, so young people in the surrounding area can potentially build careers around the industries coming to the campus.</p><p>To me, that's a much healthier relationship between a major infrastructure project and its community.</p><p><strong>Tom’s Guide: With so many communities imposing moratoriums or permitting pauses on new data centers, should the industry see those moves as an obstacle or as a signal that the way they build AI infrastructure needs to change?</strong></p><p><strong>Tammabattula: </strong>It's a signal. If communities across America are raising similar concerns about power, water and infrastructure, we shouldn't dismiss that as opposition to technology. We should change the development model.</p><p>Imagine if a major AI campus came into a community with its own power-generation strategy, its own water-management strategy, investment in emergency services, workforce development and a long-term commitment to the community.</p><p>That's a very different conversation from simply asking a utility for hundreds of megawatts and asking the community to absorb the consequences.</p><p>Moratoriums should force our industry to build better projects, not simply find easier places to build them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5760px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uxVyMC4axbWv9HjcMQWGyh" name="shutterstock_2711380465-2" alt="ai data centers" src="https://cdn.mos.cms.futurecdn.net/uxVyMC4axbWv9HjcMQWGyh.jpg" mos="" align="middle" fullscreen="" width="5760" height="3240" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: When you talk about "Responsible Compute," what does that actually look like in practice?</strong></p><p><strong>Tammabattula: </strong>For me, Responsible Compute is very practical. If you're going to consume enormous amounts of power, participate in creating that power. If you're going to use water, develop a responsible water strategy. If your project changes the demands placed on local infrastructure and emergency services, invest in those services.</p><p>And if you're bringing billions of dollars of technology into a community, create a pathway for the people who live there to participate in that economic opportunity.</p><p>That's the philosophy behind what we're developing at LAMP.</p><p>Our model includes dedicated behind-the-meter generation designed to minimize reliance on community grid capacity. We're planning significant rainwater harvesting, with the site's rainfall potentially providing more than 500 million gallons of recoverable water. We're planning investment in fire and emergency-response capabilities. And we want to fund STEM and skills-development programs that can connect local students and workers with careers at the innovation campus.</p><p>Responsible Compute isn't a certification or a slogan for us. It's the idea that the infrastructure supporting AI should strengthen the place where it is built rather than simply consume its resources.</p><p><strong>Tom’s Guide: Do you think data-center developers can realistically earn community trust before construction begins rather than trying to win people over after a project is already announced?</strong></p><p><strong>Tammabattula: </strong>Yes, but trust doesn't come from a press release. It comes from giving people specific answers.</p><p>Where is your electricity coming from? Where is your water coming from? What are you doing about emergency response? What happens to local infrastructure? What opportunities are you creating for people who already live there?</p><p>We've learned through our own experience at LAMP that developers need to answer those questions much earlier. We've also learned that listening matters. Sometimes community concerns identify things that should have been part of the development plan in the first place.</p><p>Community engagement shouldn't be something you do after designing the project. It should help shape the project.</p><p><strong>Tom’s Guide: As AI dramatically increases the electricity demand, what do policymakers and data-center developers need to change to prevent AI growth from putting additional strain on the national grid and local communities?</strong></p><p><strong>Tammabattula: </strong>We have to change the assumption that every new gigawatt of compute can simply become another gigawatt of demand on the existing grid. At some point, the math doesn't work.</p><p>Large AI infrastructure developers increasingly need to become part of the energy solution. That's one reason we're pursuing behind-the-meter generation at LAMP. Instead of starting with </p><p>"How much power can the grid give us?" we started thinking about "How do we build the power infrastructure required for what we're creating?"</p><p>I think you're going to see much more convergence between energy development and data-center development because AI is making the two inseparable.</p><p>Policymakers should encourage that. If developers bring significant new generation, transmission or other infrastructure with their projects, there should be regulatory pathways that recognize and accelerate responsible development.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Nb3wQbzRWfigMuBxxfrcLM" name="data center" alt="Data Center" src="https://cdn.mos.cms.futurecdn.net/Nb3wQbzRWfigMuBxxfrcLM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><strong>Tom’s Guide: If America wants to remain the global leader in AI, what happens if we continue to focus on building data centers as quickly as possible instead of building them responsibly?</strong></p><p><strong>Tammabattula: </strong>Eventually, speed becomes the thing that slows you down.</p><p>If every major project creates another fight over electricity, water and community resources, we're going to see more moratoriums, permitting delays and political opposition. America absolutely needs to build AI infrastructure quickly. I don't think speed and responsibility are opposites. In fact, I think responsibility ultimately allows us to move faster.</p><p>Build the power with the compute. Develop the water strategy with the campus. Invest in the community infrastructure your project affects. Develop local talent so the economic opportunity doesn't simply pass through the community. That's the model we're trying to demonstrate at LAMP.</p><p>If America can prove that the next generation of AI infrastructure can generate its own power, responsibly manage resources and create lasting economic opportunity for the communities where it operates, that becomes a competitive advantage for the United States.</p><p>Responsible Compute isn't about slowing AI down. It's about building the infrastructure that allows America to keep scaling AI without eventually running into a wall.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/eventually-speed-becomes-the-thing-that-slows-you-down-we-spoke-to-an-ai-infrastructure-expert-about-the-accelerating-data-center-race</link>
                                                                            <description>
                            <![CDATA[ We spoke to Balaji Tammabattula, an AI infrastructure engineering expert and COO of BaRupOn, about the accelerated development of data centers. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YmsBVXitj8NmfDsAR33Az6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WmPxRQDcXgdtNSuR5eDpdE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Aug 2026 06:00:00 +0000</pubDate>                                                                                                                                <updated>Fri, 14 Aug 2026 13:28:11 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WmPxRQDcXgdtNSuR5eDpdE-1280-80.jpg">
                                                            <media:credit><![CDATA[BaRupOn/Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[balaji tammabattula]]></media:description>                                                            <media:text><![CDATA[balaji tammabattula]]></media:text>
                                <media:title type="plain"><![CDATA[balaji tammabattula]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WmPxRQDcXgdtNSuR5eDpdE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The disconnect between the companies looking to fast-track the development of AI data centers and the communities and politicians fighting back against them is massive.</p><p>The likes of Microsoft, Meta and Amazon Web Services (AWS) funnel money into the continued expansion of AI data centers on a national scale. But with those data centers comes a negative impact on our environment, with precious fossil fuels being used to power them and a huge strain on our power grid resulting from their computing demand.</p><p>As a result, politicians and grassroots community organizers have started pushing back. And with <a href="https://www.tomsguide.com/ai/the-ai-boom-just-hit-a-wall-these-states-are-considering-banning-all-new-data-centers" target="_blank">a coalition of states placing moratoriums on AI data centers</a>, that opposition is only getting stronger.</p><p>To get more insight into the growing negative sentiment towards AI data centers, what could happen if the US builds them faster instead of responsibly and more, we spoke to <a href="https://www.linkedin.com/in/balaji-tammabattula" target="_blank">Balaji Tammabattula</a>, an AI infrastructure engineering expert and COO of <a href="https://www.barupon.com/" target="_blank">BaRupOn</a>.</p><h2 id="delving-into-the-development-and-rising-backlash-against-ai-infrastructure">Delving into the development and rising backlash against AI infrastructure</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:12288px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="koeFdXMgaXPgGwi9irAkzc" name="shutterstock_2656287847-2" alt="ai data centers" src="https://cdn.mos.cms.futurecdn.net/koeFdXMgaXPgGwi9irAkzc.jpg" mos="" align="middle" fullscreen="" width="12288" height="6912" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: Why do you think the growing backlash against data centers was inevitable? And where do you think the AI industry got it all wrong?</strong></p><p><strong>Balaji Tammabattula: </strong>I think the backlash was inevitable because the industry focused heavily on how quickly we could build compute and not enough on what was required to support it.</p><p>When a large data center comes into a community and suddenly needs hundreds of megawatts of electricity, water and infrastructure, people naturally ask, "What does this mean for us?"</p><p>Those are legitimate questions.</p><p><a href="https://lamptx.com/" target="_blank">At LAMP in Texas</a>, we've taken a different approach. We're developing dedicated behind-the-meter power generation so that the campus is designed around producing the power it needs rather than depending on existing community grid capacity.</p><p>We're applying the same thinking to water and public infrastructure.</p><p>Responsible AI infrastructure shouldn't arrive in a community and ask, "What resources can we take?" The better question is, "What infrastructure can we build, and what can we leave behind?"</p><p>That's where I think the industry needs to go.</p><p><strong>Tom’s Guide: What do you see as the biggest misconception the data-center industry has about the local communities it wants to build in?</strong></p><p><strong>Tammabattula: </strong>That communities are simply resistant to development. They're not. People want to understand the tradeoff.</p><p>If you're bringing a massive project into their community, they want to know whether their electricity rates will be affected, whether you're competing for their water, what happens to emergency services and roads, and whether their children will actually have opportunities created by the investment.</p><p>At LAMP, we're trying to address those questions in the physical design of the campus.</p><p>We're developing our own behind-the-meter power generation. We're planning large-scale rainwater harvesting and have identified the potential to capture more than 500 million gallons of rainwater based on the site's characteristics. We're also planning a fire station and support for local emergency-response capabilities.</p><p>And we want the relationship to extend beyond infrastructure. We plan to support STEM education and local skills development, so young people in the surrounding area can potentially build careers around the industries coming to the campus.</p><p>To me, that's a much healthier relationship between a major infrastructure project and its community.</p><p><strong>Tom’s Guide: With so many communities imposing moratoriums or permitting pauses on new data centers, should the industry see those moves as an obstacle or as a signal that the way they build AI infrastructure needs to change?</strong></p><p><strong>Tammabattula: </strong>It's a signal. If communities across America are raising similar concerns about power, water and infrastructure, we shouldn't dismiss that as opposition to technology. We should change the development model.</p><p>Imagine if a major AI campus came into a community with its own power-generation strategy, its own water-management strategy, investment in emergency services, workforce development and a long-term commitment to the community.</p><p>That's a very different conversation from simply asking a utility for hundreds of megawatts and asking the community to absorb the consequences.</p><p>Moratoriums should force our industry to build better projects, not simply find easier places to build them.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5760px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uxVyMC4axbWv9HjcMQWGyh" name="shutterstock_2711380465-2" alt="ai data centers" src="https://cdn.mos.cms.futurecdn.net/uxVyMC4axbWv9HjcMQWGyh.jpg" mos="" align="middle" fullscreen="" width="5760" height="3240" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: When you talk about "Responsible Compute," what does that actually look like in practice?</strong></p><p><strong>Tammabattula: </strong>For me, Responsible Compute is very practical. If you're going to consume enormous amounts of power, participate in creating that power. If you're going to use water, develop a responsible water strategy. If your project changes the demands placed on local infrastructure and emergency services, invest in those services.</p><p>And if you're bringing billions of dollars of technology into a community, create a pathway for the people who live there to participate in that economic opportunity.</p><p>That's the philosophy behind what we're developing at LAMP.</p><p>Our model includes dedicated behind-the-meter generation designed to minimize reliance on community grid capacity. We're planning significant rainwater harvesting, with the site's rainfall potentially providing more than 500 million gallons of recoverable water. We're planning investment in fire and emergency-response capabilities. And we want to fund STEM and skills-development programs that can connect local students and workers with careers at the innovation campus.</p><p>Responsible Compute isn't a certification or a slogan for us. It's the idea that the infrastructure supporting AI should strengthen the place where it is built rather than simply consume its resources.</p><p><strong>Tom’s Guide: Do you think data-center developers can realistically earn community trust before construction begins rather than trying to win people over after a project is already announced?</strong></p><p><strong>Tammabattula: </strong>Yes, but trust doesn't come from a press release. It comes from giving people specific answers.</p><p>Where is your electricity coming from? Where is your water coming from? What are you doing about emergency response? What happens to local infrastructure? What opportunities are you creating for people who already live there?</p><p>We've learned through our own experience at LAMP that developers need to answer those questions much earlier. We've also learned that listening matters. Sometimes community concerns identify things that should have been part of the development plan in the first place.</p><p>Community engagement shouldn't be something you do after designing the project. It should help shape the project.</p><p><strong>Tom’s Guide: As AI dramatically increases the electricity demand, what do policymakers and data-center developers need to change to prevent AI growth from putting additional strain on the national grid and local communities?</strong></p><p><strong>Tammabattula: </strong>We have to change the assumption that every new gigawatt of compute can simply become another gigawatt of demand on the existing grid. At some point, the math doesn't work.</p><p>Large AI infrastructure developers increasingly need to become part of the energy solution. That's one reason we're pursuing behind-the-meter generation at LAMP. Instead of starting with </p><p>"How much power can the grid give us?" we started thinking about "How do we build the power infrastructure required for what we're creating?"</p><p>I think you're going to see much more convergence between energy development and data-center development because AI is making the two inseparable.</p><p>Policymakers should encourage that. If developers bring significant new generation, transmission or other infrastructure with their projects, there should be regulatory pathways that recognize and accelerate responsible development.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Nb3wQbzRWfigMuBxxfrcLM" name="data center" alt="Data Center" src="https://cdn.mos.cms.futurecdn.net/Nb3wQbzRWfigMuBxxfrcLM.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><strong>Tom’s Guide: If America wants to remain the global leader in AI, what happens if we continue to focus on building data centers as quickly as possible instead of building them responsibly?</strong></p><p><strong>Tammabattula: </strong>Eventually, speed becomes the thing that slows you down.</p><p>If every major project creates another fight over electricity, water and community resources, we're going to see more moratoriums, permitting delays and political opposition. America absolutely needs to build AI infrastructure quickly. I don't think speed and responsibility are opposites. In fact, I think responsibility ultimately allows us to move faster.</p><p>Build the power with the compute. Develop the water strategy with the campus. Invest in the community infrastructure your project affects. Develop local talent so the economic opportunity doesn't simply pass through the community. That's the model we're trying to demonstrate at LAMP.</p><p>If America can prove that the next generation of AI infrastructure can generate its own power, responsibly manage resources and create lasting economic opportunity for the communities where it operates, that becomes a competitive advantage for the United States.</p><p>Responsible Compute isn't about slowing AI down. It's about building the infrastructure that allows America to keep scaling AI without eventually running into a wall.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Gemini 3.7 Flash is here — and this prompt proves why it's known as Google's 'workhorse' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google released Gemini 3.7 Flash Thursday and it's already calling it the company's  most intelligent “workhorse” model yet. Naturally, I decided to give it an enormous job.</p><p>Rather than testing the new model with trivia questions or a collection of small prompts, I wanted to see what it could do with the kind of task I routinely put off: organizing my life.</p><p>Between work, school messages, appointments, bills, forms and managing my family of five, important information is scattered across my Gmail and Google Drive. I may remember that someone sent me something, but not whether it arrived as an email, a PDF or a document someone shared weeks ago.</p><p>That made it an ideal test for <a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do">Gemini Spark</a>, Google’s personal AI agent for Google AI Pro and Ultra subscribers. Spark now runs on Gemini 3.7 Flash, giving regular users one of the first ways to experience the new model.</p><p>Google says the upgrade makes Spark better at using Workspace tools and completing complicated jobs that involve several different skills. It can consolidate files, draft emails and update status documents, all while working toward a larger goal.</p><p>So I gave it one monster prompt and asked it to find everything that might need my attention over the next 30 days.</p><h2 id="the-epic-gemini-prompt-i-tried">The epic Gemini prompt I tried</h2><p><strong>Here is the complete prompt: </strong><em>Act as my personal life-admin assistant for the next 30 days. Search my Gmail and Google Drive for messages, documents and forms from the past 30 days that contain an upcoming deadline, appointment, payment, event, form, reservation, purchase, school obligation or task I may need to complete. </em></p><p><em>Before taking action, create a master list organized by date. For each item, include what needs to happen, the deadline or event date, who it involves, where you found the information with a link to the original email or file, whether the task is confirmed, unclear or possibly outdated, and the next action I need to take.</em></p><p><em>Look for conflicts, duplicate information, missing forms and messages I may have forgotten to answer. If two sources disagree, show me both versions instead of deciding which one is correct.</em></p><p><em>Then create a realistic plan for completing everything. Group tasks that can be handled together, prioritize anything urgent and avoid scheduling more than three substantial tasks on the same day.</em></p><p><em>Draft any necessary replies, follow-up messages or questions, but do not send them. Suggest calendar events and reminders, but show them to me before adding anything. Do not delete, move or change any existing emails or files.</em></p><p><em>Finish with a short section titled “What needs my attention first” containing the five most urgent items. Clearly tell me if you could not access something or if any conclusion is based on an assumption.</em></p><h2 id="why-this-prompt-is-my-favorite-one-yet">Why this prompt is my favorite one yet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DorVD2re8RAtdfnYZVhn25" name="shutterstock_2414504967-2" alt="google workspace" src="https://cdn.mos.cms.futurecdn.net/DorVD2re8RAtdfnYZVhn25.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>This  prompt is incredibly long, so if you are going to use it, just copy and paste it directly into Gemini 3.7 Flash. It's long because it tackles a lot, and every part has a job. As much as I wish I could simply tell Gemini to “organize my life” and hope it understood what that meant, AI just isn't there yet (thank goodness!). </p><p>I told it where to search, which information to extract and how to organize the results. I also gave it clear boundaries. It could draft messages and suggest reminders, but it couldn’t send, change or delete anything without my approval.</p><h2 id="gemini-found-important-messages-that-i-completely-missed">Gemini found important messages that I completely missed </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.10%;"><img id="2UYaa7Q5trwrK9dQWCeHQF" name="gmail-magnify-shst.jpg" alt="The Gmail logo on a computer screen under a magnifying glass." src="https://cdn.mos.cms.futurecdn.net/2UYaa7Q5trwrK9dQWCeHQF.jpg" mos="" align="middle" fullscreen="" width="1000" height="571" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>Gemini worked quickly but slow enough that I knew it wasn't skipping any details. It searched Gmail, reviewed Drive files and even asked for clarification (I have two email addresses; one for work and one for my personal life, so it was quick to ask if I wanted to check both. <br><br>Eventually, it found several items that required action over the next month. These included permission slips for my son's middle school computer use and my kindergartener's food allergy form. It also discovered updated insurance information and a charge for an app that I no longer use. </p><p>The biggest discovery was that I had completely forgotten to switch my expired credit card over and was getting notices that well, I hadn't noticed. This could have been a delayed payment nightmare for my phone and cable bills. <br><br>For each response, Gemini traced back to the original email or document so I could personally read it and make a note of it. </p><h2 id="gemini-turned-chaos-into-a-plan">Gemini turned chaos into a plan</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:60.20%;"><img id="P5VBsVUMSLLdkg5PuYamgA" name="energy bills.jpg" alt="Woman reacting to high electricity bills" src="https://cdn.mos.cms.futurecdn.net/P5VBsVUMSLLdkg5PuYamgA.jpg" mos="" align="middle" fullscreen="" width="4000" height="2408" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The prompt fills an immediate purpose. It wasn't just Gemini rearranging information I had already handed to it, rather it found finding something useful inside accounts I no longer had the time or patience to search manually.</p><p>Gemini linked back to every source, which made checking its work much easier. Instead of trusting an AI summary, I could actually open the original message and confirm the date, amount or requirement myself.<br><br>Although I wrote this prompt with high hopes, it worked even better than expected. It was so helpful and I can already see the improvements Google has made to this lightweight model. </p><p>For example, I had missed a Popsicle Social that's coming up for my five-year-old, not only did Gemini show me that I hadn't responded, but it responded for me and added it to my calendar. I know my kiddo would have been really disappointed had he missed that event, so not only did this prompt save me from missing the event, but a possible tantrum, too (if you know, you know). </p><h2 id="gemini-3-7-flash-stayed-on-track-mostly">Gemini 3.7 Flash stayed on track — mostly</h2><p>This prompt proves that Gemini 3.7 Flash is ready to take on heavy-duty assignments. Keep in mind that it may not work for your corporate email if you have not given Gemini access. You may need to talk to your administrator if it doesn't work the first time. <br><br>Gemini 3.7 Flash handled constraints like a pro and even processed messages and files for me. This is important because AI assistants frequently follow the beginning of a prompt but have trouble or drop requirements completely near the end. </p><p>I did notice that the AI is still not perfect. Gemini avoided emails that it should have sorted and missed some Google doc files because they were unnamed, but overall it followed through. </p><p>Gemini 3.7 Flash is designed to put more effort into multi-step planning and tool calls. Google says the model follows instructions more closely and is better at adjusting when it encounters a roadblock.</p><h2 id="the-takeaway-3">The takeaway</h2><p>My prompt makes use of Gemini's unique abilities. It can search two Workspace services, understand different kinds of messages and documents, extract exact dates, spot contradictions and turn the results into a realistic plan. It then prepared follow-up actions without crossing the line and taking them without permission.</p><p>The prompt also makes Gemini show its work. Requiring links to original files, confidence labels and clear disclosures of any assumptions makes its findings easier to verify.</p><p>You can change the search window or categories to fit your own life. If you are planning a trip, ask Gemini to focus on reservations, confirmations and payments. Parents could prioritize school notices like I've done, including forms and activities, while freelancers might search for invoices, assignments and unanswered client messages.</p><p> After using Gemini 3.1 Flash with this prompt, I can see why Google describes its newest model as a workhorse. Give it a try and let me know what you think in the comments</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/gemini-3-7-flash-is-here-and-this-prompt-proves-why-its-known-as-googles-workhorse</link>
                                                                            <description>
                            <![CDATA[ Google calls Gemini 3.7 Flash a workhorse, so I created one epic prompt to test its planning, Workspace and agentic abilities. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VtseV3cxAYdfsjzDLM6wdj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EG6X3WQQU9rmLo3Tx7oezR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Aug 2026 04:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EG6X3WQQU9rmLo3Tx7oezR-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gemini logo]]></media:description>                                                            <media:text><![CDATA[Gemini logo]]></media:text>
                                <media:title type="plain"><![CDATA[Gemini logo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EG6X3WQQU9rmLo3Tx7oezR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google released Gemini 3.7 Flash Thursday and it's already calling it the company's  most intelligent “workhorse” model yet. Naturally, I decided to give it an enormous job.</p><p>Rather than testing the new model with trivia questions or a collection of small prompts, I wanted to see what it could do with the kind of task I routinely put off: organizing my life.</p><p>Between work, school messages, appointments, bills, forms and managing my family of five, important information is scattered across my Gmail and Google Drive. I may remember that someone sent me something, but not whether it arrived as an email, a PDF or a document someone shared weeks ago.</p><p>That made it an ideal test for <a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do">Gemini Spark</a>, Google’s personal AI agent for Google AI Pro and Ultra subscribers. Spark now runs on Gemini 3.7 Flash, giving regular users one of the first ways to experience the new model.</p><p>Google says the upgrade makes Spark better at using Workspace tools and completing complicated jobs that involve several different skills. It can consolidate files, draft emails and update status documents, all while working toward a larger goal.</p><p>So I gave it one monster prompt and asked it to find everything that might need my attention over the next 30 days.</p><h2 id="the-epic-gemini-prompt-i-tried">The epic Gemini prompt I tried</h2><p><strong>Here is the complete prompt: </strong><em>Act as my personal life-admin assistant for the next 30 days. Search my Gmail and Google Drive for messages, documents and forms from the past 30 days that contain an upcoming deadline, appointment, payment, event, form, reservation, purchase, school obligation or task I may need to complete. </em></p><p><em>Before taking action, create a master list organized by date. For each item, include what needs to happen, the deadline or event date, who it involves, where you found the information with a link to the original email or file, whether the task is confirmed, unclear or possibly outdated, and the next action I need to take.</em></p><p><em>Look for conflicts, duplicate information, missing forms and messages I may have forgotten to answer. If two sources disagree, show me both versions instead of deciding which one is correct.</em></p><p><em>Then create a realistic plan for completing everything. Group tasks that can be handled together, prioritize anything urgent and avoid scheduling more than three substantial tasks on the same day.</em></p><p><em>Draft any necessary replies, follow-up messages or questions, but do not send them. Suggest calendar events and reminders, but show them to me before adding anything. Do not delete, move or change any existing emails or files.</em></p><p><em>Finish with a short section titled “What needs my attention first” containing the five most urgent items. Clearly tell me if you could not access something or if any conclusion is based on an assumption.</em></p><h2 id="why-this-prompt-is-my-favorite-one-yet">Why this prompt is my favorite one yet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DorVD2re8RAtdfnYZVhn25" name="shutterstock_2414504967-2" alt="google workspace" src="https://cdn.mos.cms.futurecdn.net/DorVD2re8RAtdfnYZVhn25.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>This  prompt is incredibly long, so if you are going to use it, just copy and paste it directly into Gemini 3.7 Flash. It's long because it tackles a lot, and every part has a job. As much as I wish I could simply tell Gemini to “organize my life” and hope it understood what that meant, AI just isn't there yet (thank goodness!). </p><p>I told it where to search, which information to extract and how to organize the results. I also gave it clear boundaries. It could draft messages and suggest reminders, but it couldn’t send, change or delete anything without my approval.</p><h2 id="gemini-found-important-messages-that-i-completely-missed">Gemini found important messages that I completely missed </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.10%;"><img id="2UYaa7Q5trwrK9dQWCeHQF" name="gmail-magnify-shst.jpg" alt="The Gmail logo on a computer screen under a magnifying glass." src="https://cdn.mos.cms.futurecdn.net/2UYaa7Q5trwrK9dQWCeHQF.jpg" mos="" align="middle" fullscreen="" width="1000" height="571" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>Gemini worked quickly but slow enough that I knew it wasn't skipping any details. It searched Gmail, reviewed Drive files and even asked for clarification (I have two email addresses; one for work and one for my personal life, so it was quick to ask if I wanted to check both. <br><br>Eventually, it found several items that required action over the next month. These included permission slips for my son's middle school computer use and my kindergartener's food allergy form. It also discovered updated insurance information and a charge for an app that I no longer use. </p><p>The biggest discovery was that I had completely forgotten to switch my expired credit card over and was getting notices that well, I hadn't noticed. This could have been a delayed payment nightmare for my phone and cable bills. <br><br>For each response, Gemini traced back to the original email or document so I could personally read it and make a note of it. </p><h2 id="gemini-turned-chaos-into-a-plan">Gemini turned chaos into a plan</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:60.20%;"><img id="P5VBsVUMSLLdkg5PuYamgA" name="energy bills.jpg" alt="Woman reacting to high electricity bills" src="https://cdn.mos.cms.futurecdn.net/P5VBsVUMSLLdkg5PuYamgA.jpg" mos="" align="middle" fullscreen="" width="4000" height="2408" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The prompt fills an immediate purpose. It wasn't just Gemini rearranging information I had already handed to it, rather it found finding something useful inside accounts I no longer had the time or patience to search manually.</p><p>Gemini linked back to every source, which made checking its work much easier. Instead of trusting an AI summary, I could actually open the original message and confirm the date, amount or requirement myself.<br><br>Although I wrote this prompt with high hopes, it worked even better than expected. It was so helpful and I can already see the improvements Google has made to this lightweight model. </p><p>For example, I had missed a Popsicle Social that's coming up for my five-year-old, not only did Gemini show me that I hadn't responded, but it responded for me and added it to my calendar. I know my kiddo would have been really disappointed had he missed that event, so not only did this prompt save me from missing the event, but a possible tantrum, too (if you know, you know). </p><h2 id="gemini-3-7-flash-stayed-on-track-mostly">Gemini 3.7 Flash stayed on track — mostly</h2><p>This prompt proves that Gemini 3.7 Flash is ready to take on heavy-duty assignments. Keep in mind that it may not work for your corporate email if you have not given Gemini access. You may need to talk to your administrator if it doesn't work the first time. <br><br>Gemini 3.7 Flash handled constraints like a pro and even processed messages and files for me. This is important because AI assistants frequently follow the beginning of a prompt but have trouble or drop requirements completely near the end. </p><p>I did notice that the AI is still not perfect. Gemini avoided emails that it should have sorted and missed some Google doc files because they were unnamed, but overall it followed through. </p><p>Gemini 3.7 Flash is designed to put more effort into multi-step planning and tool calls. Google says the model follows instructions more closely and is better at adjusting when it encounters a roadblock.</p><h2 id="the-takeaway-3">The takeaway</h2><p>My prompt makes use of Gemini's unique abilities. It can search two Workspace services, understand different kinds of messages and documents, extract exact dates, spot contradictions and turn the results into a realistic plan. It then prepared follow-up actions without crossing the line and taking them without permission.</p><p>The prompt also makes Gemini show its work. Requiring links to original files, confidence labels and clear disclosures of any assumptions makes its findings easier to verify.</p><p>You can change the search window or categories to fit your own life. If you are planning a trip, ask Gemini to focus on reservations, confirmations and payments. Parents could prioritize school notices like I've done, including forms and activities, while freelancers might search for invoices, assignments and unanswered client messages.</p><p> After using Gemini 3.1 Flash with this prompt, I can see why Google describes its newest model as a workhorse. Give it a try and let me know what you think in the comments</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘This feels much more like Amazon forcing the issue on them' — streamer sounds the alarm on Amazon using Twitch’s content to train its AI models ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Twitch’s community of streamers was none too pleased with the popular streaming service when it was revealed that it allowed their content to be used to train Amazon's AI models. </p><p>And what made that shocking bit of news even more upsetting was the fact that those same users were automatically opted into that practice and have unknowingly been a part of that process for years now. It seems like the growing discontent towards this decision forced Twitch to add an option for content creators to opt out of having their channel used as a training tool for Amazon’s generative AI.</p><p>Twitch’s <a href="https://help.twitch.tv/s/article/twitch-account-settings?language=en_US#FAQ" target="_blank">FAQ page</a> makes it clear that opting out means “streams, VODs, clips, stream chats, and pictures and text on your channel will not be used in future training of a model developed by Amazon whose purpose is to generate or synthesize text, audio, images, or video. And we’re sure the streaming service’s massive streamer community is flocking to this official Twitch <a href="http://twitch.tv/settings/security" target="_blank">settings page</a> to make good use of that opt-out option.</p><p>We reached out to <a href="https://www.twitch.tv/zachbussey" target="_blank">Zach Bussey</a>, TOS.gg a Twitch streamer who covers the streaming industry through his <a href="https://tos.gg/" target="_blank">weekly creator newsletter</a>, to get his thoughts on this surprising development.</p><h2 id="a-decision-that-may-be-out-of-twitch-s-hands">A decision that may be out of Twitch’s hands</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4096px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="L96q9fjkYGgxgU9weaWCnG" name="shutterstock_2486109301-2" alt="twitch" src="https://cdn.mos.cms.futurecdn.net/L96q9fjkYGgxgU9weaWCnG.jpg" mos="" align="middle" fullscreen="" width="4096" height="2304" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>When asked about Twitch’s decision to let its content be used to train Amazon’s AI models, Bussey stated that he thinks Amazon made that decision for them.</p><p>“Twitch's decision here isn't really one I think they are making. Instead, this feels much more like Amazon forcing the issue on them,” he noted. “The CPO, Mikey Minty, pretty clearly expressed that without overtly saying it on a stream an hour ago. The problem for Twitch is they have never been profitable and are at the whims of Amazon if they want to continue to be a platform. So it feels like they may have been able to negotiate that Opt-out option, but there was never really a choice about whether it would be implemented.”</p><p>As for the broader trend of tech companies using user-generated content to improve AI models, here’s what else Bussey had to say:</p><p>“The broader trend isn't great for creators, nor is it good for platforms, largely because AI perpetually, at best, makes slop consumable content. There's nothing great about it; it's just stuck in the middle as being, at best, average. Platforms have historically benefitted from startup creators who eventually became great creators. But the process to go from just getting started to being great takes time, effort, and a lot of learning. If they get flooded in the middle of their creator career by all the slop AI content, they'll never be able to achieve greatness. Effectively, we're diluting all these platforms and leaving them stuck in mediocrity. Do you really want to spend your time consuming things when everything is 'okay enough'?”</p><p>Bussey recognizes Twitch’s AI training method as the norm for similar creator platforms. And what’s most interesting is that he says users on those platforms may not even be aware that it’s happening to them yet. “Unfortunately, it likely is the norm across creator platforms, whether we know it or not: maybe first-party or a third party taking the data,” he pointed out. “It's why I think it's incredibly important to have transparency and advocate for better regulation. At the very least, platforms should offer to pay creators for their data when they give creators the option to train on their content.”</p><h2 id="bottom-line-7">Bottom line</h2><p>Bussey left us with this comment as to what AI as a whole could mean for streamers and their profession going forward: </p><p>“For streamers, I don't think that AI is going to replace them if that's the question. In fact, I'd wager that live streaming will be the last holdout in the content creation space. In a world where you won't be able to trust that what you see in a YouTube video, a TikTok, or a Twitter post is real...a lot more people will be seeking out live content for the last reliable digital human experience.”</p><p>You can watch this <a href="https://www.twitch.tv/zachbussey/clip/BlitheUnsightlyMonitorKappaWealth--edSXXVMPiaFzhe-?range=7d">clip</a> from Bussey’s Twitch channel to hear him provide more insight on the matter.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openai-is-testing-a-pay-to-reset-limits-feature-heres-what-it-could-mean-for-your-chatgpt-usage-quota" target="_blank">OpenAI is testing a pay-to-reset limits feature — here’s what it could mean for your ChatGPT usage quota</a></li><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind" target="_blank">Google Health gets a lot of hate — but these 5 AI Coach prompts changed my mind</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/this-feels-much-more-like-amazon-forcing-the-issue-on-them-streamer-sounds-the-alarm-on-amazon-using-twitchs-content-to-train-its-ai-models</link>
                                                                            <description>
                            <![CDATA[ With such a major backlash against the reveal of Twitch allowing its users’ content to train Amazon’s AI models, one streamer we spoke to gave his opinion on the matter. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gXBnVVxQfhiWbB3urkdGo5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HkXoxmEQ5Fr2oNbaohftF8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 17:33:43 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HkXoxmEQ5Fr2oNbaohftF8-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[twitch]]></media:description>                                                            <media:text><![CDATA[twitch]]></media:text>
                                <media:title type="plain"><![CDATA[twitch]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HkXoxmEQ5Fr2oNbaohftF8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Twitch’s community of streamers was none too pleased with the popular streaming service when it was revealed that it allowed their content to be used to train Amazon's AI models. </p><p>And what made that shocking bit of news even more upsetting was the fact that those same users were automatically opted into that practice and have unknowingly been a part of that process for years now. It seems like the growing discontent towards this decision forced Twitch to add an option for content creators to opt out of having their channel used as a training tool for Amazon’s generative AI.</p><p>Twitch’s <a href="https://help.twitch.tv/s/article/twitch-account-settings?language=en_US#FAQ" target="_blank">FAQ page</a> makes it clear that opting out means “streams, VODs, clips, stream chats, and pictures and text on your channel will not be used in future training of a model developed by Amazon whose purpose is to generate or synthesize text, audio, images, or video. And we’re sure the streaming service’s massive streamer community is flocking to this official Twitch <a href="http://twitch.tv/settings/security" target="_blank">settings page</a> to make good use of that opt-out option.</p><p>We reached out to <a href="https://www.twitch.tv/zachbussey" target="_blank">Zach Bussey</a>, TOS.gg a Twitch streamer who covers the streaming industry through his <a href="https://tos.gg/" target="_blank">weekly creator newsletter</a>, to get his thoughts on this surprising development.</p><h2 id="a-decision-that-may-be-out-of-twitch-s-hands">A decision that may be out of Twitch’s hands</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4096px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="L96q9fjkYGgxgU9weaWCnG" name="shutterstock_2486109301-2" alt="twitch" src="https://cdn.mos.cms.futurecdn.net/L96q9fjkYGgxgU9weaWCnG.jpg" mos="" align="middle" fullscreen="" width="4096" height="2304" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>When asked about Twitch’s decision to let its content be used to train Amazon’s AI models, Bussey stated that he thinks Amazon made that decision for them.</p><p>“Twitch's decision here isn't really one I think they are making. Instead, this feels much more like Amazon forcing the issue on them,” he noted. “The CPO, Mikey Minty, pretty clearly expressed that without overtly saying it on a stream an hour ago. The problem for Twitch is they have never been profitable and are at the whims of Amazon if they want to continue to be a platform. So it feels like they may have been able to negotiate that Opt-out option, but there was never really a choice about whether it would be implemented.”</p><p>As for the broader trend of tech companies using user-generated content to improve AI models, here’s what else Bussey had to say:</p><p>“The broader trend isn't great for creators, nor is it good for platforms, largely because AI perpetually, at best, makes slop consumable content. There's nothing great about it; it's just stuck in the middle as being, at best, average. Platforms have historically benefitted from startup creators who eventually became great creators. But the process to go from just getting started to being great takes time, effort, and a lot of learning. If they get flooded in the middle of their creator career by all the slop AI content, they'll never be able to achieve greatness. Effectively, we're diluting all these platforms and leaving them stuck in mediocrity. Do you really want to spend your time consuming things when everything is 'okay enough'?”</p><p>Bussey recognizes Twitch’s AI training method as the norm for similar creator platforms. And what’s most interesting is that he says users on those platforms may not even be aware that it’s happening to them yet. “Unfortunately, it likely is the norm across creator platforms, whether we know it or not: maybe first-party or a third party taking the data,” he pointed out. “It's why I think it's incredibly important to have transparency and advocate for better regulation. At the very least, platforms should offer to pay creators for their data when they give creators the option to train on their content.”</p><h2 id="bottom-line-7">Bottom line</h2><p>Bussey left us with this comment as to what AI as a whole could mean for streamers and their profession going forward: </p><p>“For streamers, I don't think that AI is going to replace them if that's the question. In fact, I'd wager that live streaming will be the last holdout in the content creation space. In a world where you won't be able to trust that what you see in a YouTube video, a TikTok, or a Twitter post is real...a lot more people will be seeking out live content for the last reliable digital human experience.”</p><p>You can watch this <a href="https://www.twitch.tv/zachbussey/clip/BlitheUnsightlyMonitorKappaWealth--edSXXVMPiaFzhe-?range=7d">clip</a> from Bussey’s Twitch channel to hear him provide more insight on the matter.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openai-is-testing-a-pay-to-reset-limits-feature-heres-what-it-could-mean-for-your-chatgpt-usage-quota" target="_blank">OpenAI is testing a pay-to-reset limits feature — here’s what it could mean for your ChatGPT usage quota</a></li><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind" target="_blank">Google Health gets a lot of hate — but these 5 AI Coach prompts changed my mind</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Apple’s Siri news fix has a big Gen Z problem ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Wall Street Journal says Apple is talking to publishers about multi-year deals. The idea is to let <a href="https://www.tomsguide.com/phones/iphones/i-spent-a-week-with-siri-ai-here-are-my-honest-pros-and-cons">Siri AI</a> use their reporting to answer questions about what’s happening now. Perhaps it will look something like <a href="https://www.tomsguide.com/ai/gemini-isnt-just-a-chatbot-anymore-here-are-13-things-it-can-do-in-2026https://www.tomsguide.com/ai/after-25-years-googles-iconic-search-button-is-disappearing-at-least-for-some-users">Gemini AI is already doing with Google</a>, but Apple’s budget for this but be even bigger. According to the <a href="https://www.wsj.com/business/media/apple-in-talks-to-pay-publishers-to-improve-ai-powered-siri-0641f64b" target="_blank">WSJ report</a>, possibly hundreds of millions, depending on how much of each publisher’s work Siri ends up using.</p><p>Actually paying publishers is a shift from the usual <a href="https://www.tomsguide.com/news/googles-new-privacy-policy-says-it-can-scrape-all-of-your-public-data-for-its-ai">scrape-now, argue-later routine</a> that’s defined most of the AI industry so far. It means Siri might finally get real reporting and fewer confidently wrong answers.</p><h2 id="apple-is-betting-on-a-new-model-of-the-news-business">Apple is betting on a new model of the news business </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YC4neGSnxm7Loq89RPbZmg" name="CoffeeShopInBody" alt="People using laptops in coffee shop" src="https://cdn.mos.cms.futurecdn.net/YC4neGSnxm7Loq89RPbZmg.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Apple seems to be betting on a version of the news business that doesn’t really match how most people get their information anymore. For instance, Siri can’t just parrot whatever’s trending on X, TikTok or YouTube. Apple needs sources with editors, corrections and someone who actually takes the blame when things go wrong.</p><p>The company has already learned how quickly AI-generated news can create trouble. Apple suspended notification summaries for news and entertainment apps in early 2025 after Apple Intelligence produced inaccurate summaries of publishers’ alerts. In one widely reported example, it falsely made it appear that the BBC had reported that murder suspect <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-faces-criticism-after-shockingly-bad-apple-intelligence-headline-errors">Luigi Mangione had shot himself</a>.</p><p>Licensing real reporting means Apple can control what Siri says and how it uses that info. Publishers get paid, which matters now that AI answers are making it less likely anyone clicks through to the original version story.</p><p>For questions such as “What did the Federal Reserve announce?" If you ask Siri what the Fed did today or what’s up with the election, it’s safer to pull from vetted sources than to let Siri riff on whatever’s blowing up on <a href="http://online.er/" target="_blank">online.er</a> since audiences are finding news somewhere else.</p><h2 id="people-are-consuming-news-through-multiple-outlets">People are consuming news through multiple outlets </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="E3gEaJmxUrWmH2LAFWbcRf" name="SocialMediaApps" alt="iPhone screen displaying various social media apps" src="https://cdn.mos.cms.futurecdn.net/E3gEaJmxUrWmH2LAFWbcRf.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Kenneth Cheung / Getty Images)</span></figcaption></figure><p>How people actually find news has changed a lot faster than the newsrooms making it. The <a href="https://reutersinstitute.politics.ox.ac.uk/digital-news-report/2026/dnr-executive-summary" target="_blank">Reuters Institute’s 2026 Digital News Report</a> found that social media and video networks have overtaken publishers’ websites and apps as a source of news across many of the markets it studied. Globally, 30% of respondents now describe social and video platforms as their main source, up from 22% five years ago.</p><p>The difference is even sharper among younger people. More than half of 18- to 24-year-olds said social media, video platforms and AI chatbots were now their primary route to news. For people between 18 and 34, the use of news websites and apps has fallen so quickly that those properties no longer represent the leading source for any age group globally.</p><p>Where those users place their attention has changed as well. A separate <a href="https://reutersinstitute.politics.ox.ac.uk/understanding-young-news-audiences-time-rapid-change" target="_blank">Reuters Institute study of young news audiences</a> found that 51% of social media news users between 18 and 24 pay the most attention to individual creators and personalities. Only 39% said the same about traditional news organizations or journalists.</p><p>The pattern is visible in the U.S., too. <a href="https://www.pewresearch.org/journalism/fact-sheet/news-influencers-fact-sheet/" target="_blank">Pew Research Center</a> found that 38% of Americans ages 18 to 29 regularly get news from influencers, compared with 8% of people 65 and older. More than three-quarters of those younger users said they usually encountered that coverage rather than deliberately searching for it.</p><h2 id="even-the-safest-siri-could-still-feel-out-of-step">Even the safest Siri could still feel out of step</h2><p>None of this means Apple should train Siri to repeat a podcaster’s speculation or treat an unverified video as established fact. Independent reporting and creator commentary vary enormously in quality, and social platforms can spread false information much faster than a newsroom can correct it. But the danger is at the other extreme. If Siri leans too hard on several of big publishers, the answers might be technically correct but still miss the point. It could repeat what’s in the official record and skip the interviews, eyewitness clips, niche newsletters and independent reporting that actually make for good reporting.<br><br>Without a doubt, this will make Sirie end up sounding disconnected with a summary that can't confirm the difference between firsthand reporting, analysis and random speculation. All of which, real human reporters can typically discern. </p><p>So while publishers might be able to give Siri a solid base, but they can’t cover the whole news ecosystem on their own.</p><h2 id="amanda-s-take">Amanda's take </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1672px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="nt3BaDADb54M5GZDG2zSga" name="Amanda Caswell" alt="Amanda Caswell at a news desk via Gemini" src="https://cdn.mos.cms.futurecdn.net/nt3BaDADb54M5GZDG2zSga.png" mos="" align="middle" fullscreen="" width="1672" height="941" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As a journalist, I want publishers to be paid when AI companies use their reporting. Apple licensing credible news is far better than Siri scraping articles, stripping away the context and answering without sending anything back to the people who did the work.</p><p>But I don’t think established publishers alone reflect how people understand the news anymore. I read traditional reporting, but I also listen to podcasts, follow independent journalists and watch firsthand videos that may capture a story before a major newsroom catches up. Younger iPhone users are even more likely to piece together what’s happening that way.</p><p>That doesn’t mean Siri should treat every viral post as fact. It means Apple needs a smarter system than a short list of approved publishers. Siri should be able to begin with what has been verified, clearly identify what remains unconfirmed and acknowledge credible reporting or firsthand accounts emerging elsewhere.</p><p>Apple is right to make reliability the foundation. But if it plays things too safely, Siri could end up giving accurate answers that still feel a day behind the conversation.</p><p>The Siri I want would not force me to choose between established journalism and the people documenting events in real time. It would help me understand which claims are confirmed, where they came from and why people are talking about them. Paying publishers is a strong start, but it cannot be Apple’s entire answer to how news works now.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/apples-siri-news-fix-has-a-big-gen-z-problem</link>
                                                                            <description>
                            <![CDATA[ Apple reportedly wants to pay publishers to improve its AI-powered Siri, but relying too heavily on legacy news could leave the assistant out of step with younger iPhone users. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rBUbKWjNTyVPNJxLoWUPgG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/gcs3ExvYy5bMUcVVPVonQK-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 17:21:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/gcs3ExvYy5bMUcVVPVonQK-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock/rasheed-kemy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gen Z on phone]]></media:description>                                                            <media:text><![CDATA[Gen Z on phone]]></media:text>
                                <media:title type="plain"><![CDATA[Gen Z on phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/gcs3ExvYy5bMUcVVPVonQK-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Wall Street Journal says Apple is talking to publishers about multi-year deals. The idea is to let <a href="https://www.tomsguide.com/phones/iphones/i-spent-a-week-with-siri-ai-here-are-my-honest-pros-and-cons">Siri AI</a> use their reporting to answer questions about what’s happening now. Perhaps it will look something like <a href="https://www.tomsguide.com/ai/gemini-isnt-just-a-chatbot-anymore-here-are-13-things-it-can-do-in-2026https://www.tomsguide.com/ai/after-25-years-googles-iconic-search-button-is-disappearing-at-least-for-some-users">Gemini AI is already doing with Google</a>, but Apple’s budget for this but be even bigger. According to the <a href="https://www.wsj.com/business/media/apple-in-talks-to-pay-publishers-to-improve-ai-powered-siri-0641f64b" target="_blank">WSJ report</a>, possibly hundreds of millions, depending on how much of each publisher’s work Siri ends up using.</p><p>Actually paying publishers is a shift from the usual <a href="https://www.tomsguide.com/news/googles-new-privacy-policy-says-it-can-scrape-all-of-your-public-data-for-its-ai">scrape-now, argue-later routine</a> that’s defined most of the AI industry so far. It means Siri might finally get real reporting and fewer confidently wrong answers.</p><h2 id="apple-is-betting-on-a-new-model-of-the-news-business">Apple is betting on a new model of the news business </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YC4neGSnxm7Loq89RPbZmg" name="CoffeeShopInBody" alt="People using laptops in coffee shop" src="https://cdn.mos.cms.futurecdn.net/YC4neGSnxm7Loq89RPbZmg.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Apple seems to be betting on a version of the news business that doesn’t really match how most people get their information anymore. For instance, Siri can’t just parrot whatever’s trending on X, TikTok or YouTube. Apple needs sources with editors, corrections and someone who actually takes the blame when things go wrong.</p><p>The company has already learned how quickly AI-generated news can create trouble. Apple suspended notification summaries for news and entertainment apps in early 2025 after Apple Intelligence produced inaccurate summaries of publishers’ alerts. In one widely reported example, it falsely made it appear that the BBC had reported that murder suspect <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-faces-criticism-after-shockingly-bad-apple-intelligence-headline-errors">Luigi Mangione had shot himself</a>.</p><p>Licensing real reporting means Apple can control what Siri says and how it uses that info. Publishers get paid, which matters now that AI answers are making it less likely anyone clicks through to the original version story.</p><p>For questions such as “What did the Federal Reserve announce?" If you ask Siri what the Fed did today or what’s up with the election, it’s safer to pull from vetted sources than to let Siri riff on whatever’s blowing up on <a href="http://online.er/" target="_blank">online.er</a> since audiences are finding news somewhere else.</p><h2 id="people-are-consuming-news-through-multiple-outlets">People are consuming news through multiple outlets </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="E3gEaJmxUrWmH2LAFWbcRf" name="SocialMediaApps" alt="iPhone screen displaying various social media apps" src="https://cdn.mos.cms.futurecdn.net/E3gEaJmxUrWmH2LAFWbcRf.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Kenneth Cheung / Getty Images)</span></figcaption></figure><p>How people actually find news has changed a lot faster than the newsrooms making it. The <a href="https://reutersinstitute.politics.ox.ac.uk/digital-news-report/2026/dnr-executive-summary" target="_blank">Reuters Institute’s 2026 Digital News Report</a> found that social media and video networks have overtaken publishers’ websites and apps as a source of news across many of the markets it studied. Globally, 30% of respondents now describe social and video platforms as their main source, up from 22% five years ago.</p><p>The difference is even sharper among younger people. More than half of 18- to 24-year-olds said social media, video platforms and AI chatbots were now their primary route to news. For people between 18 and 34, the use of news websites and apps has fallen so quickly that those properties no longer represent the leading source for any age group globally.</p><p>Where those users place their attention has changed as well. A separate <a href="https://reutersinstitute.politics.ox.ac.uk/understanding-young-news-audiences-time-rapid-change" target="_blank">Reuters Institute study of young news audiences</a> found that 51% of social media news users between 18 and 24 pay the most attention to individual creators and personalities. Only 39% said the same about traditional news organizations or journalists.</p><p>The pattern is visible in the U.S., too. <a href="https://www.pewresearch.org/journalism/fact-sheet/news-influencers-fact-sheet/" target="_blank">Pew Research Center</a> found that 38% of Americans ages 18 to 29 regularly get news from influencers, compared with 8% of people 65 and older. More than three-quarters of those younger users said they usually encountered that coverage rather than deliberately searching for it.</p><h2 id="even-the-safest-siri-could-still-feel-out-of-step">Even the safest Siri could still feel out of step</h2><p>None of this means Apple should train Siri to repeat a podcaster’s speculation or treat an unverified video as established fact. Independent reporting and creator commentary vary enormously in quality, and social platforms can spread false information much faster than a newsroom can correct it. But the danger is at the other extreme. If Siri leans too hard on several of big publishers, the answers might be technically correct but still miss the point. It could repeat what’s in the official record and skip the interviews, eyewitness clips, niche newsletters and independent reporting that actually make for good reporting.<br><br>Without a doubt, this will make Sirie end up sounding disconnected with a summary that can't confirm the difference between firsthand reporting, analysis and random speculation. All of which, real human reporters can typically discern. </p><p>So while publishers might be able to give Siri a solid base, but they can’t cover the whole news ecosystem on their own.</p><h2 id="amanda-s-take">Amanda's take </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1672px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="nt3BaDADb54M5GZDG2zSga" name="Amanda Caswell" alt="Amanda Caswell at a news desk via Gemini" src="https://cdn.mos.cms.futurecdn.net/nt3BaDADb54M5GZDG2zSga.png" mos="" align="middle" fullscreen="" width="1672" height="941" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As a journalist, I want publishers to be paid when AI companies use their reporting. Apple licensing credible news is far better than Siri scraping articles, stripping away the context and answering without sending anything back to the people who did the work.</p><p>But I don’t think established publishers alone reflect how people understand the news anymore. I read traditional reporting, but I also listen to podcasts, follow independent journalists and watch firsthand videos that may capture a story before a major newsroom catches up. Younger iPhone users are even more likely to piece together what’s happening that way.</p><p>That doesn’t mean Siri should treat every viral post as fact. It means Apple needs a smarter system than a short list of approved publishers. Siri should be able to begin with what has been verified, clearly identify what remains unconfirmed and acknowledge credible reporting or firsthand accounts emerging elsewhere.</p><p>Apple is right to make reliability the foundation. But if it plays things too safely, Siri could end up giving accurate answers that still feel a day behind the conversation.</p><p>The Siri I want would not force me to choose between established journalism and the people documenting events in real time. It would help me understand which claims are confirmed, where they came from and why people are talking about them. Paying publishers is a strong start, but it cannot be Apple’s entire answer to how news works now.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing"><strong>Claude is now watermarking every response — here's what that means if you use AI for writing</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Claude is now watermarking every response — here's what that means if you use AI for writing ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Anthropic recently announced that all new <a href="https://www.tomsguide.com/ai/claude-is-my-favorite-ai-model-heres-how-i-use-it">Claude</a> models will embed an invisible signal into their text output. The goal is to help identify AI-generated content and meet new transparency requirements under the European Union's AI Act.<br><br>But if you're picturing an invisible digital stamp that permanently proves the words were written by AI, that's not exactly how it works. Instead, Claude subtly changes the statistical patterns in its writing. The text still reads naturally to humans, but software designed to look for those patterns can potentially recognize that it came from Claude.</p><p>The announcement has reignited debate over whether AI watermarking is finally the answer to identifying AI-generated writing or if it even works. </p><h2 id="what-is-an-ai-watermark">What is an AI watermark?</h2><p>Unlike a copyright watermark on an image or hidden metadata inside a file, a statistical watermark is built directly into the words themselves. The AI slightly favors certain word choices and sentence patterns while generating text. </p><p>Individually, those choices are meaningless to us as humans, but across hundreds of words, they create a statistical signature that specialized detection software can identify. It's kind of like a fingerprint that is only recognized by software trained to understand the pattern. </p><p>The watermark itself is invisible to readers and doesn't appear anywhere in the document. Copying text into Word, Google Docs or an email won't reveal anything unusual because the signal is designed to be detected only by software that understands the statistical patterns Claude leaves behind.</p><h2 id="does-watermarking-affect-the-quality-of-claude-s-writing">Does watermarking affect the quality of Claude's writing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1924px;"><p class="vanilla-image-block" style="padding-top:54.00%;"><img id="rTNY6so8ztN25iue6jc26o" name="claude4" alt="Claude 4" src="https://cdn.mos.cms.futurecdn.net/rTNY6so8ztN25iue6jc26o.png" mos="" align="middle" fullscreen="" width="1924" height="1039" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NPowell/Flux-Kontext)</span></figcaption></figure><p>Slightly, but let's be real, AI writing isn't great to begin with. <a href="https://x.com/alexcdot/status/2087078010524406137" target="_blank">Alexander Cui</a>, head of research at <a href="https://www.tomsguide.com/ai/i-tested-5-apps-that-detect-ai-writing-heres-the-one-that-beat-them-all-and-the-one-that-missed-the-mark">GPTZero</a>, tells Tom's Guide that the statistical watermarking does introduce a small tradeoff because the model has to make slightly different word choices than it otherwise would.</p><p>"The output quality does subtly decrease," Cui said. "Directionally, it does reduce the output quality."</p><p>He added that modern watermarking techniques have become sophisticated enough that most users are unlikely to notice the difference in everyday use.</p><p>And, while the watermark can be removed, it makes things much more complicated. Editing a few words won't remove a statistical watermark, in fact, many watermarking systems are designed to survive minor edits or paraphrasing.</p><p>But the signal becomes much more fragile if Claude's response is rewritten by another AI model. That is, if you asked <a href="https://www.tomsguide.com/ai/this-claude-writing-hack-boosted-my-productivity-and-its-completely-free">Claude to write</a> your science paper and then asked <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-to-write-an-email-then-i-asked-claude-to-tell-me-if-it-was-well-written-the-results-were-surprising">ChatGPT to revise the draft</a>. In that case, the watermarking becomes important because Claude's output often isn't the final product. A response might become the input for another chatbot, an AI coding agent or a document editing assistant before anyone reads it.</p><p>Cui says the watermark generally doesn't survive that kind of workflow.</p><p>"The watermark applies very subtle changes," he explained. "They usually would not affect downstream output. What you need is the actual text written by the model itself."</p><h2 id="does-this-mean-ai-detectors-finally-have-proof">Does this mean AI detectors finally have proof?</h2><p>Anthropic's watermark is one additional signal, but it's not definitive proof that a document was written by AI.</p><p>Alon Yamin, CEO of AI detection company <a href="https://copyleaks.com/" target="_blank">Copyleaks</a>, says statistical watermarks can help identify AI-generated content, but shouldn't be treated as a silver bullet.</p><p>"While this seems like a big step forward for AI detection on the surface, it's far from a silver bullet," Yamin said.</p><p>He argues that watermarking should be considered alongside other evidence rather than replacing broader AI detection methods.</p><p>These days, modern documents often mix human writing with AI assistance. From tools like <a href="https://www.tomsguide.com/ai/grammarly-just-became-superhuman-meet-the-companys-new-ai-writing-powers">Grammarly</a> to help edit or <a href="https://www.tomsguide.com/ai/apple-intelligence/i-tested-chatgpt-canvas-vs-apples-writing-tools-to-improve-my-screenplay-heres-the-winner">Apple Intelligence Writing Tools</a>, these common AI features have become integrated into daily use by many. For example, someone might draft an article themselves and ask Claude to improve grammar, reorganize paragraphs or rewrite a headline.</p><h2 id="does-chatgpt-do-the-same-thing">Does ChatGPT do the same thing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pajU7eXF66SeEf3o5EDCL3" name="ChatGPT hero.jpg" alt="ChatGPT" src="https://cdn.mos.cms.futurecdn.net/pajU7eXF66SeEf3o5EDCL3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>OpenAI has spent years researching watermarking and other provenance technologies, but it has not broadly deployed statistical text watermarking across ChatGPT responses.</p><p>Google has also explored watermarking techniques for AI-generated content, while several companies have experimented with metadata-based approaches instead of statistical signals embedded in text.</p><p>As a result, Claude is currently taking one of the most visible steps toward model-level watermarking for everyday AI writing.</p><p>You'll likely never notice a watermark while using Claude, and it won't suddenly make AI-generated writing easy to identify. But where it could matter is in education, publishing, enterprise software and workplaces that need to disclose when AI was used to create content.</p><h2 id="bottom-line-8">Bottom line </h2><p>The big picture here is that watermarking is a tool companies are experimenting with as governments push for greater transparency around AI-generated content. It can be useful under the right conditions, disappear after enough editing or rewriting and works best when combined with other evidence rather than on its own.<br><br>But as of August 2, 2026, every word Claude writes now contains a hidden statistical watermark that most people will never see. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing</link>
                                                                            <description>
                            <![CDATA[ Claude now secretly watermarks every AI-generated response. Here's how AI watermarking works, whether it can be removed and what it means for power users. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xGWMxjH6MR6CqmuHqPz7jd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8PAxq4dxtPNAcHt5oAdBzZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 05:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 13 Aug 2026 13:22:32 +0000</updated>
                                                                                                                                            <category><![CDATA[Claude]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8PAxq4dxtPNAcHt5oAdBzZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Acer]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Person typing on Acer Swift Air 16 on table with coffee and glasses on table]]></media:description>                                                            <media:text><![CDATA[Person typing on Acer Swift Air 16 on table with coffee and glasses on table]]></media:text>
                                <media:title type="plain"><![CDATA[Person typing on Acer Swift Air 16 on table with coffee and glasses on table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8PAxq4dxtPNAcHt5oAdBzZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Anthropic recently announced that all new <a href="https://www.tomsguide.com/ai/claude-is-my-favorite-ai-model-heres-how-i-use-it">Claude</a> models will embed an invisible signal into their text output. The goal is to help identify AI-generated content and meet new transparency requirements under the European Union's AI Act.<br><br>But if you're picturing an invisible digital stamp that permanently proves the words were written by AI, that's not exactly how it works. Instead, Claude subtly changes the statistical patterns in its writing. The text still reads naturally to humans, but software designed to look for those patterns can potentially recognize that it came from Claude.</p><p>The announcement has reignited debate over whether AI watermarking is finally the answer to identifying AI-generated writing or if it even works. </p><h2 id="what-is-an-ai-watermark">What is an AI watermark?</h2><p>Unlike a copyright watermark on an image or hidden metadata inside a file, a statistical watermark is built directly into the words themselves. The AI slightly favors certain word choices and sentence patterns while generating text. </p><p>Individually, those choices are meaningless to us as humans, but across hundreds of words, they create a statistical signature that specialized detection software can identify. It's kind of like a fingerprint that is only recognized by software trained to understand the pattern. </p><p>The watermark itself is invisible to readers and doesn't appear anywhere in the document. Copying text into Word, Google Docs or an email won't reveal anything unusual because the signal is designed to be detected only by software that understands the statistical patterns Claude leaves behind.</p><h2 id="does-watermarking-affect-the-quality-of-claude-s-writing">Does watermarking affect the quality of Claude's writing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1924px;"><p class="vanilla-image-block" style="padding-top:54.00%;"><img id="rTNY6so8ztN25iue6jc26o" name="claude4" alt="Claude 4" src="https://cdn.mos.cms.futurecdn.net/rTNY6so8ztN25iue6jc26o.png" mos="" align="middle" fullscreen="" width="1924" height="1039" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NPowell/Flux-Kontext)</span></figcaption></figure><p>Slightly, but let's be real, AI writing isn't great to begin with. <a href="https://x.com/alexcdot/status/2087078010524406137" target="_blank">Alexander Cui</a>, head of research at <a href="https://www.tomsguide.com/ai/i-tested-5-apps-that-detect-ai-writing-heres-the-one-that-beat-them-all-and-the-one-that-missed-the-mark">GPTZero</a>, tells Tom's Guide that the statistical watermarking does introduce a small tradeoff because the model has to make slightly different word choices than it otherwise would.</p><p>"The output quality does subtly decrease," Cui said. "Directionally, it does reduce the output quality."</p><p>He added that modern watermarking techniques have become sophisticated enough that most users are unlikely to notice the difference in everyday use.</p><p>And, while the watermark can be removed, it makes things much more complicated. Editing a few words won't remove a statistical watermark, in fact, many watermarking systems are designed to survive minor edits or paraphrasing.</p><p>But the signal becomes much more fragile if Claude's response is rewritten by another AI model. That is, if you asked <a href="https://www.tomsguide.com/ai/this-claude-writing-hack-boosted-my-productivity-and-its-completely-free">Claude to write</a> your science paper and then asked <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-to-write-an-email-then-i-asked-claude-to-tell-me-if-it-was-well-written-the-results-were-surprising">ChatGPT to revise the draft</a>. In that case, the watermarking becomes important because Claude's output often isn't the final product. A response might become the input for another chatbot, an AI coding agent or a document editing assistant before anyone reads it.</p><p>Cui says the watermark generally doesn't survive that kind of workflow.</p><p>"The watermark applies very subtle changes," he explained. "They usually would not affect downstream output. What you need is the actual text written by the model itself."</p><h2 id="does-this-mean-ai-detectors-finally-have-proof">Does this mean AI detectors finally have proof?</h2><p>Anthropic's watermark is one additional signal, but it's not definitive proof that a document was written by AI.</p><p>Alon Yamin, CEO of AI detection company <a href="https://copyleaks.com/" target="_blank">Copyleaks</a>, says statistical watermarks can help identify AI-generated content, but shouldn't be treated as a silver bullet.</p><p>"While this seems like a big step forward for AI detection on the surface, it's far from a silver bullet," Yamin said.</p><p>He argues that watermarking should be considered alongside other evidence rather than replacing broader AI detection methods.</p><p>These days, modern documents often mix human writing with AI assistance. From tools like <a href="https://www.tomsguide.com/ai/grammarly-just-became-superhuman-meet-the-companys-new-ai-writing-powers">Grammarly</a> to help edit or <a href="https://www.tomsguide.com/ai/apple-intelligence/i-tested-chatgpt-canvas-vs-apples-writing-tools-to-improve-my-screenplay-heres-the-winner">Apple Intelligence Writing Tools</a>, these common AI features have become integrated into daily use by many. For example, someone might draft an article themselves and ask Claude to improve grammar, reorganize paragraphs or rewrite a headline.</p><h2 id="does-chatgpt-do-the-same-thing">Does ChatGPT do the same thing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pajU7eXF66SeEf3o5EDCL3" name="ChatGPT hero.jpg" alt="ChatGPT" src="https://cdn.mos.cms.futurecdn.net/pajU7eXF66SeEf3o5EDCL3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>OpenAI has spent years researching watermarking and other provenance technologies, but it has not broadly deployed statistical text watermarking across ChatGPT responses.</p><p>Google has also explored watermarking techniques for AI-generated content, while several companies have experimented with metadata-based approaches instead of statistical signals embedded in text.</p><p>As a result, Claude is currently taking one of the most visible steps toward model-level watermarking for everyday AI writing.</p><p>You'll likely never notice a watermark while using Claude, and it won't suddenly make AI-generated writing easy to identify. But where it could matter is in education, publishing, enterprise software and workplaces that need to disclose when AI was used to create content.</p><h2 id="bottom-line-8">Bottom line </h2><p>The big picture here is that watermarking is a tool companies are experimenting with as governments push for greater transparency around AI-generated content. It can be useful under the right conditions, disappear after enough editing or rewriting and works best when combined with other evidence rather than on its own.<br><br>But as of August 2, 2026, every word Claude writes now contains a hidden statistical watermark that most people will never see. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I asked ChatGPT to plan my fan convention trip — and it saved me hours ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I've been going to Anime NYC for years, and every time I leave with the same regret: I missed something I really wanted to see. There's just so much to do! </p><p>Between celebrity panels, manga announcements, autograph sessions, artist alley, exclusive merch and cosplay events, trying to map out a weekend at the Jacob K. Javits Convention Center can take hours. Even after all that planning, it's easy to overlook a must-see event.</p><p>This year, I decided to let ChatGPT come up with a plan so my trip included everything I wanted to see with zero regrets of missing out. </p><p>My approach was simple. I gave AI a list of my favorite anime and manga, told it which days I'd be attending Anime NYC 2026, and asked it to build me a personalized convention itinerary. In just a few minutes, it organized everything into a schedule that would have taken me far longer to piece together myself—and even suggested events I probably would have missed.</p><h2 id="three-days-of-anime-manga-goodness">Three days of anime/manga goodness</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3227px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3TwKQmpGwSLDHg32vA6Suj" name="shutterstock_2668649647-2" alt="anime nyc" src="https://cdn.mos.cms.futurecdn.net/3TwKQmpGwSLDHg32vA6Suj.jpg" mos="" align="middle" fullscreen="" width="3227" height="1815" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><h3 class="article-body__section" id="section-setting-up-the-plan"><span>Setting up the plan </span></h3><p><strong>This is the prompt I used: </strong><em>As a massive fan of the following manga and anime, map out the panels, screenings, and special events I need to check out when I go to this year's Anime NYC:</em></p><p><em>Dragon Ball, Dragon Ball Z, Dragon Ball GT, Dragon Ball Super, and Dragon Ball Daima</em></p><p><em>My Hero Academia and My Hero Academia: Vigilantes</em></p><p><em>The Ghost in the Shell (2026 series)</em></p><p><em>Gachiakuta</em></p><p><em>Kagurabachi</em></p><p><em>Kaiju No. 8</em></p><p><em>Dan Da Dan</em></p><p><em>Chainsaw Man</em></p><p><em>Demon Slayer</em></p><p><em>Sailor Moon</em></p><p>The chatbot analyzed my anime/manga fandom and prioritized what I should do & see over the course of this year’s Anime NYC. Here’s the list of events it wanted to make sure I didn’t miss:</p><ul><li><strong>Kagurabachi: </strong><em>Anime World Tour premiere + first 20 minutes of Episode 1</em></li><li><strong>Kaiju No. 8: </strong><em>Special Panel with TOHO animation</em></li><li><strong>The Ghost in the Shell: </strong><em>First-look event + Mokochan (Director) appearance</em></li><li><strong>My Hero Academia: </strong><em>Yuki Kaji (Japanese voice actor for Shoto Todoroki) appearance</em></li><li><strong>Dragon Ball: </strong><em>Daman Mills (English voice actor for Frieza) appearance</em></li><li><strong>Chainsaw Man: </strong><em>Tomori Kusunoki (Japanese voice actress for Makima) + Casey Mongillo (English voice actor for Angel Devil) appearances</em></li><li><strong>Demon Slayer: </strong><em>Bryce Papenbrook (English voice actor for Inosuke Hashibira) appearance</em></li><li><strong>Dan Da Dan: </strong><em>Bryce Papenbrook (English voice actor for Kinta Sakata) appearance</em></li><li><strong>Sailor Moon: </strong><em>Stephanie Sheh (English voice actor for Sailor Moon) appearance</em></li></ul><h2 id="identifying-the-best-use-of-my-time">Identifying the best use of my time</h2><p>Even though some of the anime/manga I listed don’t have a dedicated Anime NYC panel or screening, ChatGPT still mentioned enough convention activities that should keep me busy. And to go even further, it laid out the days and activities for each one that I’m excited to be a part of:</p><ul><li><strong>Thursday, August 20: </strong><em>meet and get autographs from Daman Mills, Bryce Papenbrook and Stephanie Sheh.</em></li><li><strong>Friday, August 21: </strong><em>attend the Kaiju No. 8 panel.</em></li><li><strong>Saturday, August 22: </strong><em>meet and get an autograph from Mokochan. And stay around to check out the “special surprise.”</em></li></ul><h2 id="bottom-line-9">Bottom line</h2><p>ChatGPT might not help you get you into sold-out panels or shorten the autograph lines, but I'd be suprised if it didn't have tips. For me, though, it solved one of the most time-consuming parts of attending a convention — planning the schedule. Not only did it do it in minutes, but it was tailored to my interests. Now, instead of jumping between event pages, maps and schedules, I had one personalized itinerary built around the anime and manga I actually care about.</p><p>And it's not just useful for Anime NYC. Whether you're heading to Comic-Con, New York Comic Con, Dragon Con, PAX, Star Wars Celebration, Gen Con or another fan event, you can give ChatGPT your interests, the convention schedule and a few preferences, then let it build a game plan. It won't replace the official event app, but it can make sure you spend less time planning and more time enjoying the convention.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/grok/elon-musks-grok-dominates-alarming-deepfake-report-1-in-6-attacks-involved-sexual-images-including-children" target="_blank">Elon Musk's Grok dominates alarming deepfake report — 1 in 6 attacks involved sexual images including children</a></li><li><a href="https://www.tomsguide.com/ai/openai-is-testing-a-pay-to-reset-limits-feature-heres-what-it-could-mean-for-your-chatgpt-usage-quota" target="_blank">OpenAI is testing a pay-to-reset limits feature — here’s what it could mean for your ChatGPT usage quota</a></li><li><a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-plan-the-ultimate-coffee-shop-crawl-for-national-coffee-month-here-are-the-places-im-checking-out-and-the-drinks-im-trying" target="_blank">I used ChatGPT to plan the ultimate coffee shop crawl for National Coffee Month — here's the tasty itinerary it gave me</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-gave-chatgpt-my-favorite-anime-and-manga-and-now-i-have-a-personalized-schedule-for-anime-nyc-so-i-wont-miss-a-thing</link>
                                                                            <description>
                            <![CDATA[ With Anime NYC right around the corner, I gave ChatGPT my favorite anime/manga and told it to build my Anime NYC 2026 timetable—and it laid it out perfectly. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">SgLNGgnmpfrvQexqPzcmF5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cyyCYqd25xC5ej5keET5ub-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 04:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cyyCYqd25xC5ej5keET5ub-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[anime nyc]]></media:description>                                                            <media:text><![CDATA[anime nyc]]></media:text>
                                <media:title type="plain"><![CDATA[anime nyc]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cyyCYqd25xC5ej5keET5ub-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I've been going to Anime NYC for years, and every time I leave with the same regret: I missed something I really wanted to see. There's just so much to do! </p><p>Between celebrity panels, manga announcements, autograph sessions, artist alley, exclusive merch and cosplay events, trying to map out a weekend at the Jacob K. Javits Convention Center can take hours. Even after all that planning, it's easy to overlook a must-see event.</p><p>This year, I decided to let ChatGPT come up with a plan so my trip included everything I wanted to see with zero regrets of missing out. </p><p>My approach was simple. I gave AI a list of my favorite anime and manga, told it which days I'd be attending Anime NYC 2026, and asked it to build me a personalized convention itinerary. In just a few minutes, it organized everything into a schedule that would have taken me far longer to piece together myself—and even suggested events I probably would have missed.</p><h2 id="three-days-of-anime-manga-goodness">Three days of anime/manga goodness</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3227px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3TwKQmpGwSLDHg32vA6Suj" name="shutterstock_2668649647-2" alt="anime nyc" src="https://cdn.mos.cms.futurecdn.net/3TwKQmpGwSLDHg32vA6Suj.jpg" mos="" align="middle" fullscreen="" width="3227" height="1815" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><h3 class="article-body__section" id="section-setting-up-the-plan"><span>Setting up the plan </span></h3><p><strong>This is the prompt I used: </strong><em>As a massive fan of the following manga and anime, map out the panels, screenings, and special events I need to check out when I go to this year's Anime NYC:</em></p><p><em>Dragon Ball, Dragon Ball Z, Dragon Ball GT, Dragon Ball Super, and Dragon Ball Daima</em></p><p><em>My Hero Academia and My Hero Academia: Vigilantes</em></p><p><em>The Ghost in the Shell (2026 series)</em></p><p><em>Gachiakuta</em></p><p><em>Kagurabachi</em></p><p><em>Kaiju No. 8</em></p><p><em>Dan Da Dan</em></p><p><em>Chainsaw Man</em></p><p><em>Demon Slayer</em></p><p><em>Sailor Moon</em></p><p>The chatbot analyzed my anime/manga fandom and prioritized what I should do & see over the course of this year’s Anime NYC. Here’s the list of events it wanted to make sure I didn’t miss:</p><ul><li><strong>Kagurabachi: </strong><em>Anime World Tour premiere + first 20 minutes of Episode 1</em></li><li><strong>Kaiju No. 8: </strong><em>Special Panel with TOHO animation</em></li><li><strong>The Ghost in the Shell: </strong><em>First-look event + Mokochan (Director) appearance</em></li><li><strong>My Hero Academia: </strong><em>Yuki Kaji (Japanese voice actor for Shoto Todoroki) appearance</em></li><li><strong>Dragon Ball: </strong><em>Daman Mills (English voice actor for Frieza) appearance</em></li><li><strong>Chainsaw Man: </strong><em>Tomori Kusunoki (Japanese voice actress for Makima) + Casey Mongillo (English voice actor for Angel Devil) appearances</em></li><li><strong>Demon Slayer: </strong><em>Bryce Papenbrook (English voice actor for Inosuke Hashibira) appearance</em></li><li><strong>Dan Da Dan: </strong><em>Bryce Papenbrook (English voice actor for Kinta Sakata) appearance</em></li><li><strong>Sailor Moon: </strong><em>Stephanie Sheh (English voice actor for Sailor Moon) appearance</em></li></ul><h2 id="identifying-the-best-use-of-my-time">Identifying the best use of my time</h2><p>Even though some of the anime/manga I listed don’t have a dedicated Anime NYC panel or screening, ChatGPT still mentioned enough convention activities that should keep me busy. And to go even further, it laid out the days and activities for each one that I’m excited to be a part of:</p><ul><li><strong>Thursday, August 20: </strong><em>meet and get autographs from Daman Mills, Bryce Papenbrook and Stephanie Sheh.</em></li><li><strong>Friday, August 21: </strong><em>attend the Kaiju No. 8 panel.</em></li><li><strong>Saturday, August 22: </strong><em>meet and get an autograph from Mokochan. And stay around to check out the “special surprise.”</em></li></ul><h2 id="bottom-line-9">Bottom line</h2><p>ChatGPT might not help you get you into sold-out panels or shorten the autograph lines, but I'd be suprised if it didn't have tips. For me, though, it solved one of the most time-consuming parts of attending a convention — planning the schedule. Not only did it do it in minutes, but it was tailored to my interests. Now, instead of jumping between event pages, maps and schedules, I had one personalized itinerary built around the anime and manga I actually care about.</p><p>And it's not just useful for Anime NYC. Whether you're heading to Comic-Con, New York Comic Con, Dragon Con, PAX, Star Wars Celebration, Gen Con or another fan event, you can give ChatGPT your interests, the convention schedule and a few preferences, then let it build a game plan. It won't replace the official event app, but it can make sure you spend less time planning and more time enjoying the convention.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/grok/elon-musks-grok-dominates-alarming-deepfake-report-1-in-6-attacks-involved-sexual-images-including-children" target="_blank">Elon Musk's Grok dominates alarming deepfake report — 1 in 6 attacks involved sexual images including children</a></li><li><a href="https://www.tomsguide.com/ai/openai-is-testing-a-pay-to-reset-limits-feature-heres-what-it-could-mean-for-your-chatgpt-usage-quota" target="_blank">OpenAI is testing a pay-to-reset limits feature — here’s what it could mean for your ChatGPT usage quota</a></li><li><a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-plan-the-ultimate-coffee-shop-crawl-for-national-coffee-month-here-are-the-places-im-checking-out-and-the-drinks-im-trying" target="_blank">I used ChatGPT to plan the ultimate coffee shop crawl for National Coffee Month — here's the tasty itinerary it gave me</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Researchers tracked 821 deepfake attacks — Elon Musk's Grok was linked to most of them ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Elon Musk's Grok AI accounted for 87% of AI-generated files connected to deepfake attacks during the first half of 2026, according to a <a href="https://www.resemble.ai/resources/h1-2026-deepfake-threat-report" target="_blank">new report from Resemble AI</a>.</p><p>Researchers examined 1,760 news reports and identified 821 separate attacks involving at least 15,736 documented victims. Together, those incidents included approximately 3.46 million synthetic images, videos and audio files. <a href="https://www.resemble.ai/resources/h1-2026-deepfake-threat-report" target="_blank">Resemble AI’s dataset</a> is based on publicly reported incidents, and its percentage applies only to files that researchers could count and attribute to a particular tool.</p><p>Even with that caveat, the figure shows how quickly a widely available AI image generator can be turned into a tool for misuse and abuse.</p><p>The findings arrive as Elon Musk places a large financial bet on Grok. Following SpaceX’s acquisition of xAI, Musk said during a company-wide meeting that SpaceX’s AI revenue would surpass revenue from all its other products as soon as September, <a href="https://www.businessinsider.com/elon-musk-spacex-ai-revenue-outpace-all-other-products-2026-8" target="_blank">according to Business Insider</a>.</p><p>SpaceX reported $2.56 billion in AI revenue during its most recent quarter, putting Grok and the infrastructure behind it at the center of the company’s future. That makes questions about how the tool is being used difficult to separate from its rapid commercial growth.</p><h2 id="one-in-six-attacks-involved-explicit-content">One in six attacks involved explicit content</h2><p>Resemble AI found that 137 of the 821 attacks — roughly one in six — involved non-consensual sexual imagery of adults or children.</p><p>Grok faced widespread criticism earlier this year after users began asking the chatbot to digitally undress people or place them in sexualized situations. Some of the images reportedly depicted minors, prompting investigations from regulators around the world.</p><p>The <a href="https://digital-strategy.ec.europa.eu/en/news/commission-investigates-grok-and-xs-recommender-systems-under-digital-services-act" target="_blank">European Commission </a>opened a formal investigation into X over sexualized images generated with Grok, while California Attorney General Rob Bonta launched an investigation into the creation and spread of non-consensual explicit material through the platform. Authorities in the UK, Australia and other countries have scrutinized the tool as well.</p><p>Resemble AI estimates that companies permitting or distributing the documented images could face as much as $2.24 billion in potential civil liability under US law. That number is an estimate, rather than a record of penalties or lawsuits already filed.</p><p>The verified direct financial losses identified by the researchers were much smaller, totaling $6.95 million. However, many of the incidents involved reputational damage, harassment or sexual exploitation rather than a straightforward financial scam.</p><h2 id="deepfake-attacks-are-becoming-harder-to-count">Deepfake attacks are becoming harder to count</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tRoYQRQufVG2HnrvQj2aAa" name="deepfake AI nudes being used for sextortion scams.jpg" alt="A picture demonstrating how AI tools can create deepfakes using any picture" src="https://cdn.mos.cms.futurecdn.net/tRoYQRQufVG2HnrvQj2aAa.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The company calculated that coverage of the attacks had a potential reach of 292.8 billion during the first half of the year, almost matching the 296.4 billion recorded across all of 2025.</p><p>Political deepfakes were among the most widely covered. Resemble AI identified 22 political disinformation incidents that each generated a potential media reach of more than 1 billion people.</p><p>Corporate deepfake fraud, on the other hand, has almost vanished from public view. Researchers found just 15 publicly reported corporate incidents, and 14 of those appeared in only one publication.</p><p>Resemble AI suggests companies may be reluctant to disclose successful attacks because doing so could attract regulatory attention, hurt their reputation or concern investors. That doesn’t mean corporate deepfake fraud has gone away. It may simply be happening outside the public eye.</p><h2 id="a-detector-that-checks-whether-a-scene-obeys-the-laws-of-physics">A detector that checks whether a scene obeys the laws of physics</h2><p>Resemble AI released the report alongside <a href="https://www.resemble.ai/resources/introducing-detect-world-the-first-world-model-for-deepfake-detection" target="_blank">DETECT-World</a>, a new system designed to recognize content created by AI generators it has never encountered before.</p><p>The system combines familiar AI signatures with an analysis of whether a scene makes physical sense. It can examine whether the lighting on someone’s face matches the visible light sources, whether shadows fall in the correct direction and whether objects in the foreground and background move consistently.</p><p>For video, the system processes four-second windows at 40 frames per second. It produces an overall probability that the file has been manipulated, scores showing when suspicious moments appear and a heat map identifying the affected part of the frame.</p><p>Resemble AI says DETECT-World achieved 95.8% accuracy on images and 98.2% on video, but both results come from internal benchmarks and are still awaiting external validation. </p><h2 id="bottom-line-10">Bottom line </h2><p>This report provides a good reminder that the technology to detect deepfakes is improving, but it is still chasing tools that can create and distribute them almost instantly. </p><p>Until that gap closes, we need to find the original source, look for confirmation from reputable outlets and avoid sharing suspicious content simply because it looks real.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/grok/elon-musks-grok-dominates-alarming-deepfake-report-1-in-6-attacks-involved-sexual-images-including-children</link>
                                                                            <description>
                            <![CDATA[ A new Resemble AI report claims Grok produced 87% of traceable synthetic files connected to documented deepfake attacks in early 2026. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">c5SsUAQLBve7yxkn6t36jW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2HwCZjJobEoAduV2vWfvyZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Aug 2026 17:55:52 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Aug 2026 22:03:09 +0000</updated>
                                                                                                                                            <category><![CDATA[Grok]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/2HwCZjJobEoAduV2vWfvyZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Elon Musk]]></media:description>                                                            <media:text><![CDATA[Elon Musk]]></media:text>
                                <media:title type="plain"><![CDATA[Elon Musk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2HwCZjJobEoAduV2vWfvyZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Elon Musk's Grok AI accounted for 87% of AI-generated files connected to deepfake attacks during the first half of 2026, according to a <a href="https://www.resemble.ai/resources/h1-2026-deepfake-threat-report" target="_blank">new report from Resemble AI</a>.</p><p>Researchers examined 1,760 news reports and identified 821 separate attacks involving at least 15,736 documented victims. Together, those incidents included approximately 3.46 million synthetic images, videos and audio files. <a href="https://www.resemble.ai/resources/h1-2026-deepfake-threat-report" target="_blank">Resemble AI’s dataset</a> is based on publicly reported incidents, and its percentage applies only to files that researchers could count and attribute to a particular tool.</p><p>Even with that caveat, the figure shows how quickly a widely available AI image generator can be turned into a tool for misuse and abuse.</p><p>The findings arrive as Elon Musk places a large financial bet on Grok. Following SpaceX’s acquisition of xAI, Musk said during a company-wide meeting that SpaceX’s AI revenue would surpass revenue from all its other products as soon as September, <a href="https://www.businessinsider.com/elon-musk-spacex-ai-revenue-outpace-all-other-products-2026-8" target="_blank">according to Business Insider</a>.</p><p>SpaceX reported $2.56 billion in AI revenue during its most recent quarter, putting Grok and the infrastructure behind it at the center of the company’s future. That makes questions about how the tool is being used difficult to separate from its rapid commercial growth.</p><h2 id="one-in-six-attacks-involved-explicit-content">One in six attacks involved explicit content</h2><p>Resemble AI found that 137 of the 821 attacks — roughly one in six — involved non-consensual sexual imagery of adults or children.</p><p>Grok faced widespread criticism earlier this year after users began asking the chatbot to digitally undress people or place them in sexualized situations. Some of the images reportedly depicted minors, prompting investigations from regulators around the world.</p><p>The <a href="https://digital-strategy.ec.europa.eu/en/news/commission-investigates-grok-and-xs-recommender-systems-under-digital-services-act" target="_blank">European Commission </a>opened a formal investigation into X over sexualized images generated with Grok, while California Attorney General Rob Bonta launched an investigation into the creation and spread of non-consensual explicit material through the platform. Authorities in the UK, Australia and other countries have scrutinized the tool as well.</p><p>Resemble AI estimates that companies permitting or distributing the documented images could face as much as $2.24 billion in potential civil liability under US law. That number is an estimate, rather than a record of penalties or lawsuits already filed.</p><p>The verified direct financial losses identified by the researchers were much smaller, totaling $6.95 million. However, many of the incidents involved reputational damage, harassment or sexual exploitation rather than a straightforward financial scam.</p><h2 id="deepfake-attacks-are-becoming-harder-to-count">Deepfake attacks are becoming harder to count</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tRoYQRQufVG2HnrvQj2aAa" name="deepfake AI nudes being used for sextortion scams.jpg" alt="A picture demonstrating how AI tools can create deepfakes using any picture" src="https://cdn.mos.cms.futurecdn.net/tRoYQRQufVG2HnrvQj2aAa.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The company calculated that coverage of the attacks had a potential reach of 292.8 billion during the first half of the year, almost matching the 296.4 billion recorded across all of 2025.</p><p>Political deepfakes were among the most widely covered. Resemble AI identified 22 political disinformation incidents that each generated a potential media reach of more than 1 billion people.</p><p>Corporate deepfake fraud, on the other hand, has almost vanished from public view. Researchers found just 15 publicly reported corporate incidents, and 14 of those appeared in only one publication.</p><p>Resemble AI suggests companies may be reluctant to disclose successful attacks because doing so could attract regulatory attention, hurt their reputation or concern investors. That doesn’t mean corporate deepfake fraud has gone away. It may simply be happening outside the public eye.</p><h2 id="a-detector-that-checks-whether-a-scene-obeys-the-laws-of-physics">A detector that checks whether a scene obeys the laws of physics</h2><p>Resemble AI released the report alongside <a href="https://www.resemble.ai/resources/introducing-detect-world-the-first-world-model-for-deepfake-detection" target="_blank">DETECT-World</a>, a new system designed to recognize content created by AI generators it has never encountered before.</p><p>The system combines familiar AI signatures with an analysis of whether a scene makes physical sense. It can examine whether the lighting on someone’s face matches the visible light sources, whether shadows fall in the correct direction and whether objects in the foreground and background move consistently.</p><p>For video, the system processes four-second windows at 40 frames per second. It produces an overall probability that the file has been manipulated, scores showing when suspicious moments appear and a heat map identifying the affected part of the frame.</p><p>Resemble AI says DETECT-World achieved 95.8% accuracy on images and 98.2% on video, but both results come from internal benchmarks and are still awaiting external validation. </p><h2 id="bottom-line-10">Bottom line </h2><p>This report provides a good reminder that the technology to detect deepfakes is improving, but it is still chasing tools that can create and distribute them almost instantly. </p><p>Until that gap closes, we need to find the original source, look for confirmation from reputable outlets and avoid sharing suspicious content simply because it looks real.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week"><strong>5 custom Gemini Gems that I swear save me hours each week</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ OpenAI is testing a pay-to-reset limits feature — here’s what it could mean for your ChatGPT usage quota ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s always a bummer when you run into that digital wall that pops up once you’ve exhausted your usage limit with a particular chatbot.</p><p>That unfortunate occurrence becomes even worse when you’re forced to wait out a mandatory time limit before your AI usage window opens again. Existing AI models such as Claude, Command Code and Figma AI give users the option to purchase additional credits that bypass the required reset wait time and continue using their services. These “pay to keep going” and “pay to get past the usage limit” structures may not be ideal for AI users who do extensive work with their models, but it’s simply the way it is.</p><p>Based on what a ChatGPT user posted in the chatbot’s <a href="https://www.reddit.com/r/ChatGPT/comments/1vks54h/its_here/" target="_blank">official Reddit forum</a>, it looks like OpenAI is taking a wholly different approach to its rivals’ aforementioned “pay for more AI consumption” plans.</p><p>Here’s what the AI giant is quietly working on and what it could mean for your continued ChatGPT usage.</p><h2 id="pay-to-get-rid-of-the-waiting-process-and-get-back-to-prompting">Pay to get rid of the waiting process and get back to prompting</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4608px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n7JSdiTbfJ5hjTQYD9Z7YP" name="shutterstock_2744076651-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/n7JSdiTbfJ5hjTQYD9Z7YP.jpg" mos="" align="middle" fullscreen="" width="4608" height="2592" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>A user named “ThenLayer5977” took to ChatGPT’s official Reddit forum to highlight a screenshot of what may be OpenAI’s “pay to reset” model. The user’s visual evidence highlights a “Pay $8 to reset” option, which popped up after they realized their weekly usage quota had been maxed out.</p><p>From the looks of it, OpenAI is experimenting with this feature for paying users and may make it widely available at some point. The cycle of hitting your ChatGPT usage quota, paying a fixed fee to restore it and instantly getting back to working under whatever plan you’re subscribed to may just become the norm. Instead of simply upgrading to a more costly subscription model with expanded usage limits, this “pay to reset” feature may prove to be a more approachable option for those who just want to stick with their current (and likely cheaper) ChatGPT model plan.</p><p>Other AI tools employ a different approach to extending their users' model usage. Cursor gives its users “pay-to-continue” once they’ve hit their monthly usage limit. GitHub Copilot, Replit and an assortment of API platforms (such as OpenAI API) rely on comparable plans. As for Gemini, Google has introduced the option to purchase additional credits to continue working on a Google AI Pro or Ultra subscription once they’ve hit either plan’s usage limits.</p><p>ChatGPT’s plan looks to be a more aggressive option, on par with the way mobile games require users to pay a few bucks to reset the timer on an energy/stamina system once they’ve exhausted either meter. It may not be the ideal way to go, but for those who want to stay with the cheaper ChatGPT subscription plan, that $8 fee may become their go-to option when it’s time to reset their usage quota.</p><h2 id="final-thoughts-5">Final thoughts</h2><p>I’ve had my fair share of moments where a free-to-play game on consoles or a mobile game has stuck its digital hand out and asked me to pay them to reset my playtime quota to get back to what I was doing beforehand. After seeing OpenAI’s “pay-to-reset” option, I can’t help but see the striking similarities between both of those money-hungry initiatives. Every time I hit my ChatGPT usage limit, I sit back, do something else entirely and wait it out until I can hop back on to start prompting again.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week" target="_blank">5 custom Gemini Gems that I swear save me hours each week</a></li><li><a href="https://www.tomsguide.com/ai/after-25-years-googles-iconic-search-button-is-disappearing-at-least-for-some-users" target="_blank">After 25 years, Google's iconic Search button is disappearing for some users — and this is the replacement</a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/openai-is-testing-a-pay-to-reset-limits-feature-heres-what-it-could-mean-for-your-chatgpt-usage-quota</link>
                                                                            <description>
                            <![CDATA[ Based on the info a ChatGPT user found after hitting his usage limit, it looks like OpenAI is testing a feature that lets users pay a fee to get past the time required to reset their quota. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8NDMANpaNZUHq8hdfs3QyN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Aug 2026 16:30:03 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[OpenAI logo with robotic human head]]></media:description>                                                            <media:text><![CDATA[OpenAI logo with robotic human head]]></media:text>
                                <media:title type="plain"><![CDATA[OpenAI logo with robotic human head]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s always a bummer when you run into that digital wall that pops up once you’ve exhausted your usage limit with a particular chatbot.</p><p>That unfortunate occurrence becomes even worse when you’re forced to wait out a mandatory time limit before your AI usage window opens again. Existing AI models such as Claude, Command Code and Figma AI give users the option to purchase additional credits that bypass the required reset wait time and continue using their services. These “pay to keep going” and “pay to get past the usage limit” structures may not be ideal for AI users who do extensive work with their models, but it’s simply the way it is.</p><p>Based on what a ChatGPT user posted in the chatbot’s <a href="https://www.reddit.com/r/ChatGPT/comments/1vks54h/its_here/" target="_blank">official Reddit forum</a>, it looks like OpenAI is taking a wholly different approach to its rivals’ aforementioned “pay for more AI consumption” plans.</p><p>Here’s what the AI giant is quietly working on and what it could mean for your continued ChatGPT usage.</p><h2 id="pay-to-get-rid-of-the-waiting-process-and-get-back-to-prompting">Pay to get rid of the waiting process and get back to prompting</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4608px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n7JSdiTbfJ5hjTQYD9Z7YP" name="shutterstock_2744076651-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/n7JSdiTbfJ5hjTQYD9Z7YP.jpg" mos="" align="middle" fullscreen="" width="4608" height="2592" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>A user named “ThenLayer5977” took to ChatGPT’s official Reddit forum to highlight a screenshot of what may be OpenAI’s “pay to reset” model. The user’s visual evidence highlights a “Pay $8 to reset” option, which popped up after they realized their weekly usage quota had been maxed out.</p><p>From the looks of it, OpenAI is experimenting with this feature for paying users and may make it widely available at some point. The cycle of hitting your ChatGPT usage quota, paying a fixed fee to restore it and instantly getting back to working under whatever plan you’re subscribed to may just become the norm. Instead of simply upgrading to a more costly subscription model with expanded usage limits, this “pay to reset” feature may prove to be a more approachable option for those who just want to stick with their current (and likely cheaper) ChatGPT model plan.</p><p>Other AI tools employ a different approach to extending their users' model usage. Cursor gives its users “pay-to-continue” once they’ve hit their monthly usage limit. GitHub Copilot, Replit and an assortment of API platforms (such as OpenAI API) rely on comparable plans. As for Gemini, Google has introduced the option to purchase additional credits to continue working on a Google AI Pro or Ultra subscription once they’ve hit either plan’s usage limits.</p><p>ChatGPT’s plan looks to be a more aggressive option, on par with the way mobile games require users to pay a few bucks to reset the timer on an energy/stamina system once they’ve exhausted either meter. It may not be the ideal way to go, but for those who want to stay with the cheaper ChatGPT subscription plan, that $8 fee may become their go-to option when it’s time to reset their usage quota.</p><h2 id="final-thoughts-5">Final thoughts</h2><p>I’ve had my fair share of moments where a free-to-play game on consoles or a mobile game has stuck its digital hand out and asked me to pay them to reset my playtime quota to get back to what I was doing beforehand. After seeing OpenAI’s “pay-to-reset” option, I can’t help but see the striking similarities between both of those money-hungry initiatives. Every time I hit my ChatGPT usage limit, I sit back, do something else entirely and wait it out until I can hop back on to start prompting again.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week" target="_blank">5 custom Gemini Gems that I swear save me hours each week</a></li><li><a href="https://www.tomsguide.com/ai/after-25-years-googles-iconic-search-button-is-disappearing-at-least-for-some-users" target="_blank">After 25 years, Google's iconic Search button is disappearing for some users — and this is the replacement</a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tried the Pixel 11 Pro Fold and it's more 'Ultra' than Samsung's foldable (for $200 less) ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s easy to write off the Pixel 11 Pro Fold when Samsung has the shiny new wide Fold 8. But Google’s new foldable phone is more of a direct competitor to the Fold 8 Ultra. It’s for people who actually want bigger and taller displays.</p><p>And you could argue that the Pixel 11 Pro Fold ($1,899 / AU$2,799) is an even better value. It’s not just $200 cheaper than the Ultra. It has a brighter display, better durability and even smarter AI features. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/qEzgvPtMPmA" allowfullscreen></iframe></div></div><p>I went hands on with the new Pixel 11 Pro Fold and came away pretty impressed with its upgrades — with the exception of the gimmicky HiLight. Here’s how it stacks up.</p><h3 class="article-body__section" id="section-pixel-11-pro-fold-specs"><span>Pixel 11 Pro Fold specs</span></h3><div ><table><tbody><tr><td class="firstcol " ><p><strong>Cover display</strong></p></td><td  ><p>6.5 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Main display</strong></p></td><td  ><p>8.0 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Chip</strong></p></td><td  ><p>Google Tensor G6</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256GB, 512GB, 1TB</p></td></tr><tr><td class="firstcol " ><p><strong>Rear cameras</strong></p></td><td  ><p>48MP wide, 10.5MP ultrawide with Macro Focus, 10.8MP 5x telephoto (up to 30x Super Zoom)</p></td></tr><tr><td class="firstcol " ><p><strong>Selfie cameras</strong></p></td><td  ><p>10MP (inner), 10MP (cover)</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>4,806 mAh typical (4,658 mAh minimum)</p></td></tr><tr><td class="firstcol " ><p><strong>Wired/Wireless Charging</strong></p></td><td  ><p>30W, 25W</p></td></tr><tr><td class="firstcol " ><p><strong>Size open</strong></p></td><td  ><p>155.2 × 150.4 × 5.0 mm (6.1 × 5.9 × 0.2 inches)</p></td></tr><tr><td class="firstcol " ><p><strong>Size closed</strong></p></td><td  ><p>155.2 × 76.0 × 10.1 mm (6.1 × 3.0 × 0.4 inches)</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>239 grams (8.4 ounces)</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Obsidian, Olive</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-price-and-release-date-100-hike"><span>Price and release date: $100 Hike</span></h3><p>At $1,899 / AU$2,799, the Pixel 11 Pro Fold is $100 more than its predecessor and the same exact price as the Galaxy Z Fold 8. Pre-orders are available now and the Pixel 11 Pro Fold release date is August 20.</p><h3 class="article-body__section" id="section-design-tough-and-comfy-but-still-kinda-bulky"><span>Design: Tough and comfy, but still kinda bulky</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4415px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="vo9DBLosyFvZmvBS4QAY6b" name="Google Pixel 11 Pro Fold-16" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/vo9DBLosyFvZmvBS4QAY6b.jpg" mos="" align="middle" fullscreen="" width="4415" height="2483" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Right off the bat, I prefer the Pixel 11 Pro Fold to the Galaxy Z Fold 8 Ultra because its front 6.5-inch screen is less squished. There’s more room for typing and your apps, thanks in part to Google slimming down the bezels. </p><p>I also appreciate the rounded corners on this design. They dig into your hands less than the Fold 8 Ultra's pointy corners.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3030px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="g6xyThLUCUzvgR46syPA4b" name="Google Pixel 11 Pro Fold-2" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/g6xyThLUCUzvgR46syPA4b.jpg" mos="" align="middle" fullscreen="" width="3030" height="1704" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Google Pixel 11 Pro Fold and Samsung Galaxy Z Fold 8 </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Pick these phones up though and you’ll immediately notice Samsung’s portability and thinness advantage. The Pixel 11 Pro Fold is a hefty 8.4 ounces and measures 5mm thick when open and 10.1mm when closed. That’s a definitive improvement over the Pixel 10 Pro Fold (9.1 ounces, 5.2mm/10.8mm), but the Fold 8 Ultra is still the featherweight champ of big screen foldables.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4733px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="zuwjc6dCyBhA5VjLjLWxQb" name="Google Pixel 11 Pro Fold-7" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/zuwjc6dCyBhA5VjLjLWxQb.jpg" mos="" align="middle" fullscreen="" width="4733" height="2662" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What Google gives you is more durability. Not only is this phone IP68 rated against water and dust — it’s just water for Samsung — Google gave the back a glass composite back that’s shatterproof. </p><p>The color options are Obsidian and Olive and the latter is the one I’d get because it’s a lot more fun.</p><h3 class="article-body__section" id="section-hilight-or-lowlight"><span>HiLight (or LowLight?)</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5G3WLD8KmHkN7UmTPVCKb" name="Google Pixel 11 Pro Fold-21" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/o5G3WLD8KmHkN7UmTPVCKb.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I can’t quite make up my mind if this feature is cool or just gimmicky but right now I’m thinking more of the latter. </p><p>HiLight is colorful LED on the back of the Pixel 11 Pro Fold that can glow different colors you set based on who’s calling. So if your phone is face down you can tell right away who’s on the other end.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3017px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yDMEqjq8skfgrJDuFyMxaa" name="Google Pixel 11 Pro Fold-20" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/yDMEqjq8skfgrJDuFyMxaa.jpg" mos="" align="middle" fullscreen="" width="3017" height="1697" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The HiLight can also animate when you’re chatting with Gemini Live, which I guess is cool but not really necessary.</p><h3 class="article-body__section" id="section-displays-brightest-ever"><span>Displays: Brightest ever </span></h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/RuS339tv62jjRaVhiNzxHP.jpg" alt="Pixel 11 Pro Fold hands on" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/g6xyThLUCUzvgR46syPA4b.jpg" alt="Google Pixel 11 Pro Fold" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure></figure><p>Google’s foldable has a more noticeable crease than Samsung, but both the main and cover display are super bright. We’re talking 3,600 nits for the Pixel 11 Pro Fold, compared to 3,000 for the Fold 8 Ultra. </p><p>And, I noticed the difference when I put both phones side by side, both set to max brightness. The black bars are very much there when watching YouTube, but I like how you can pop comments in on the right side while watching YouTube Shorts. </p><p>The Pixel Pro Fold also has a laptop mode that puts the content up and controls on the bottom, similar to the Flex Mode on the Fold 8 Ultra.</p><h3 class="article-body__section" id="section-multitasking-bubbles-everywhere"><span>Multitasking: Bubbles everywhere!</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6480px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XjCPwwPFGrqJY7AzWBNQvb" name="Google Pixel 11 Pro Fold-12" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/XjCPwwPFGrqJY7AzWBNQvb.jpg" mos="" align="middle" fullscreen="" width="6480" height="3645" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While the Pixel 11 Pro Fold limits you to two open apps side by side, compared to three for Samsung, Google has a new trick up its sleeve.</p><p>You can turn apps into a floating window called bubbles and place them anywhere around the screen. And it’s simple to add more apps to your bubble and toggle between them.</p><h3 class="article-body__section" id="section-cameras-more-light-more-magic"><span>Cameras: More light, more 'magic'</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5520px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pFWzirrCBocpH8HZaRUzcb" name="Google Pixel 11 Pro Fold-11" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/pFWzirrCBocpH8HZaRUzcb.jpg" mos="" align="middle" fullscreen="" width="5520" height="3105" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro Fold packs a triple rear camera system that starts with a 48MP wide sensor that lets in 58% more light. </p><p>In my very brief testing the Pixel 11 Pro Fold captured sharp and bright images, but this was under pretty ideal conditions.</p><p>You also get a 10.5MP ultra wide camera and a 10.8MP telephoto camera with 5x optical zoom, compared to just 3x for the Fold 8 Ultra.</p><p>The selfie cameras are limited to 10MP, but you can always take rear camera selfies by flipped the front display around for maximum resolution.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3257px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uwQ3uwNLhs4AdabrDy5yFP" name="Google Pixel 11 Pro Fold" alt="Pixel 11 Pro Fold hands on" src="https://cdn.mos.cms.futurecdn.net/uwQ3uwNLhs4AdabrDy5yFP.jpg" mos="" align="middle" fullscreen="" width="3257" height="1832" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The coolest camera feature on the Pixel 11 Pro Fold is Magic Capture. Enter this special mode and press the shutter button, and the Pixel 11 Pro will automatically start shooting both photos and videos, picking out what it thinks are the best moments. Google had a couple of dancers for our demo and Magic Capture seemed to work pretty well.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3061px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="gHHVn2Hv7hqwZcsEKi9UZh" name="Google Pixel 11 Pro Fold-8" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/gHHVn2Hv7hqwZcsEKi9UZh.jpg" mos="" align="middle" fullscreen="" width="3061" height="1722" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Another nifty feature is Creative Studio, which you can use to record videos complete with a built-in teleprompter, sound level controls and more.</p><h3 class="article-body__section" id="section-ai-getting-pro-active"><span>AI: Getting Pro-active</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2300px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Pv9At59u68QQSriwKhhrha" name="Google Pixel 11 Pro Fold-18" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/Pv9At59u68QQSriwKhhrha.jpg" mos="" align="middle" fullscreen="" width="2300" height="1294" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is a Pixel phone so you know the 11 Pro Fold is going to have a boatload of AI features. But there’s a handful of useful ones that you won’t find on the Fold 8 Ultra. </p><p>Gemini Spark can perform tasks on your behalf in the background while you do other stuff. For example, you can ask Gemini to summarize emails related to your party RSVPs and have it create a spreadsheet of everyone’s dietary preferences.</p><p>Speech recognition also gets a boost with the Pixel 11 Pro Fold thanks to Rambler. You can say all the “uhs” and “ums” you want and this Foldable will edit them out on the fly.</p><p>Gemini’s Proactive Intelligent Suggestions builds on the hit-or-miss Magic Cue from previous Pixel phones, surfacing the right info just when you need it. For example, if someone asks if you’re available on a certain day and time, you’ll see a prompt for previewing your calendar — without having to leave the app.</p><p>This works for everything from being able to preview flight info to peeking at a restaurant. You can even book a table from within your messages with the tap of a button.</p><h3 class="article-body__section" id="section-performance-and-battery-breaking-the-2nm-barrier"><span>Performance and Battery: Breaking the 2nm barrier</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4803px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="G85rY5T6RpMtNN8XHTYVSb" name="Google Pixel 11 Pro Fold-LIST2" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/G85rY5T6RpMtNN8XHTYVSb.jpg" mos="" align="middle" fullscreen="" width="4803" height="2702" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro packs a new Tensor G6 chip that is among the first in the world built on a 2nm process. And that means you should expect a speed boost along with longer battery life — even with a smaller battery than the Pixel 10 Pro Fold.</p><p>For example, Google promises an Instant Night Sight feature for taking low-light photos with virtually no processing time. But we’ll have to test this out to see how it works.</p><p>And with a much faster TPU on board, the Pixel 11 Pro Fold should be able to perform on-device AI tasks much faster than before.</p><p>The 4,806 mAh battery inside the Pixel 11 Pro Fold is smaller than the 5,000 mAh battery for the Pixel 10 Pro Fold, but Google is still promising up to 24 hours of battery life. That’s because the G6 chip is designed to be 20% more efficient.</p><p>However, the Galaxy Z Fold 8 has a 5,015 mAh battery with newer silicon carbon tech, while the Pixel Fold is still stuck on Lithium Ion, so we’ll have to see which foldable lasts longer.</p><p>When it comes to wireless charging, Google has an advantage because it has Qi2 magnets built into the phone. With Samsung you have to buy a case.</p><h3 class="article-body__section" id="section-outlook"><span>Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5893px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ypss5gjgWtC9BhKtQQBieb" name="Google Pixel 11 Pro Fold-17" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/Ypss5gjgWtC9BhKtQQBieb.jpg" mos="" align="middle" fullscreen="" width="5893" height="3315" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro Fold is a much improved foldable phone. It’s lighter, thinner, tougher and faster. Plus, it has a longer zoom than the Z Fold 8 Ultra, a wider front display and — eureka! — you can actually take it to the beach.</p><p>Add in the brighter screens and shatterproof back and you have some pretty solid reasons for picking the Pixel 11 Pro Fold over Samsung.</p><p>On the other hand, the Galaxy Z Fold 8 Ultra is noticeably thinner and lighter; it has a less visible crease; and it packs sharper main and ultrawide cameras. Plus, you have the ability to run three apps at once.</p><p>I don’t see the HiLight feature being all that useful on the Pixel 11 Pro Fold. More practical to me are Gemini proactive suggestions, as well as camera features like Magic Capture.</p><p>Overall, I’d be pretty torn between the Pixel 11 Pro Fold and Galaxy Z Fold 8 Ultra. But I’ll have to do some in-depth testing to see which one I’d buy with my own money. Stay tuned for my full review.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/google-pixel-phones/i-tried-the-pixel-11-pro-fold-and-its-more-ultra-than-samsungs-foldable-for-usd200-less</link>
                                                                            <description>
                            <![CDATA[ The Pixel 11 Pro Fold isn’t as thin or light as the Galaxy Z Fold 8 Ultra, but based on my hands-on impressions it has brighter displays, better durability and smarter AI features for $200 less. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">B8SZdYfWGW59P8f8RAHKWh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/N92pGWg5dEhTHEgNuCx7NZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Aug 2026 14:00:00 +0000</pubDate>                                                                                                                                <updated>Thu, 13 Aug 2026 01:34:11 +0000</updated>
                                                                                                                                            <category><![CDATA[Google Phones]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                    <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[Android Phones]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mark Spoonauer ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/wtAspSzVfcKLB4JEd39AMo.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Mark Spoonauer is the global editor in chief of Tom&#039;s Guide and has covered technology for over 20 years. He oversees the direction of Tom&#039;s Guide and leads a team of over 25 journalists to bring you our expert buying guides, reviews, news, how-to articles, deals and other coverage.&lt;/p&gt;&lt;p&gt;Mark has a passion for covering all things mobile, having reviewed dozens of smartphones and other gadgets. He enjoys testing the top mobile devices and putting them up against each other in our in-depth face-offs. He also works hand in hand with our editors and testing team to continually improve how we evaluate products. &lt;/p&gt;&lt;p&gt;Having led Tom&#039;s Guide since 2013, Mark has focused on growing the core tech coverage of the site while also expanding into new areas, such as entertainment, fitness and home, recruiting talented writers and editors to help our readers figure out what to buy and how to get the most out of the products and services they use every day. &lt;/p&gt;&lt;p&gt;Mark has spoken at key industry events and appears regularly on TV to discuss the latest trends, including &lt;a href=&quot;https://cheddar.com/media/pixel-watch-gets-a-release-date-at-google-i-o-2022&quot;&gt;Cheddar&lt;/a&gt;, Fox 5, &lt;a href=&quot;https://www.foxbusiness.com/technology/apple-march-event-5g-iphone&quot;&gt;Fox Business&lt;/a&gt; and other outlets. Mark was previously editor in chief of Laptop Mag, and his work has appeared in Wired, Popular Science and Inc. Follow him on Twitter at @mspoonauer.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/N92pGWg5dEhTHEgNuCx7NZ-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google Pixel 11 Pro Fold shown open and closed]]></media:description>                                                            <media:text><![CDATA[Google Pixel 11 Pro Fold shown open and closed]]></media:text>
                                <media:title type="plain"><![CDATA[Google Pixel 11 Pro Fold shown open and closed]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/N92pGWg5dEhTHEgNuCx7NZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s easy to write off the Pixel 11 Pro Fold when Samsung has the shiny new wide Fold 8. But Google’s new foldable phone is more of a direct competitor to the Fold 8 Ultra. It’s for people who actually want bigger and taller displays.</p><p>And you could argue that the Pixel 11 Pro Fold ($1,899 / AU$2,799) is an even better value. It’s not just $200 cheaper than the Ultra. It has a brighter display, better durability and even smarter AI features. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/qEzgvPtMPmA" allowfullscreen></iframe></div></div><p>I went hands on with the new Pixel 11 Pro Fold and came away pretty impressed with its upgrades — with the exception of the gimmicky HiLight. Here’s how it stacks up.</p><h3 class="article-body__section" id="section-pixel-11-pro-fold-specs"><span>Pixel 11 Pro Fold specs</span></h3><div ><table><tbody><tr><td class="firstcol " ><p><strong>Cover display</strong></p></td><td  ><p>6.5 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Main display</strong></p></td><td  ><p>8.0 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Chip</strong></p></td><td  ><p>Google Tensor G6</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256GB, 512GB, 1TB</p></td></tr><tr><td class="firstcol " ><p><strong>Rear cameras</strong></p></td><td  ><p>48MP wide, 10.5MP ultrawide with Macro Focus, 10.8MP 5x telephoto (up to 30x Super Zoom)</p></td></tr><tr><td class="firstcol " ><p><strong>Selfie cameras</strong></p></td><td  ><p>10MP (inner), 10MP (cover)</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>4,806 mAh typical (4,658 mAh minimum)</p></td></tr><tr><td class="firstcol " ><p><strong>Wired/Wireless Charging</strong></p></td><td  ><p>30W, 25W</p></td></tr><tr><td class="firstcol " ><p><strong>Size open</strong></p></td><td  ><p>155.2 × 150.4 × 5.0 mm (6.1 × 5.9 × 0.2 inches)</p></td></tr><tr><td class="firstcol " ><p><strong>Size closed</strong></p></td><td  ><p>155.2 × 76.0 × 10.1 mm (6.1 × 3.0 × 0.4 inches)</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>239 grams (8.4 ounces)</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Obsidian, Olive</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-price-and-release-date-100-hike"><span>Price and release date: $100 Hike</span></h3><p>At $1,899 / AU$2,799, the Pixel 11 Pro Fold is $100 more than its predecessor and the same exact price as the Galaxy Z Fold 8. Pre-orders are available now and the Pixel 11 Pro Fold release date is August 20.</p><h3 class="article-body__section" id="section-design-tough-and-comfy-but-still-kinda-bulky"><span>Design: Tough and comfy, but still kinda bulky</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4415px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="vo9DBLosyFvZmvBS4QAY6b" name="Google Pixel 11 Pro Fold-16" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/vo9DBLosyFvZmvBS4QAY6b.jpg" mos="" align="middle" fullscreen="" width="4415" height="2483" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Right off the bat, I prefer the Pixel 11 Pro Fold to the Galaxy Z Fold 8 Ultra because its front 6.5-inch screen is less squished. There’s more room for typing and your apps, thanks in part to Google slimming down the bezels. </p><p>I also appreciate the rounded corners on this design. They dig into your hands less than the Fold 8 Ultra's pointy corners.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3030px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="g6xyThLUCUzvgR46syPA4b" name="Google Pixel 11 Pro Fold-2" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/g6xyThLUCUzvgR46syPA4b.jpg" mos="" align="middle" fullscreen="" width="3030" height="1704" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Google Pixel 11 Pro Fold and Samsung Galaxy Z Fold 8 </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Pick these phones up though and you’ll immediately notice Samsung’s portability and thinness advantage. The Pixel 11 Pro Fold is a hefty 8.4 ounces and measures 5mm thick when open and 10.1mm when closed. That’s a definitive improvement over the Pixel 10 Pro Fold (9.1 ounces, 5.2mm/10.8mm), but the Fold 8 Ultra is still the featherweight champ of big screen foldables.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4733px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="zuwjc6dCyBhA5VjLjLWxQb" name="Google Pixel 11 Pro Fold-7" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/zuwjc6dCyBhA5VjLjLWxQb.jpg" mos="" align="middle" fullscreen="" width="4733" height="2662" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What Google gives you is more durability. Not only is this phone IP68 rated against water and dust — it’s just water for Samsung — Google gave the back a glass composite back that’s shatterproof. </p><p>The color options are Obsidian and Olive and the latter is the one I’d get because it’s a lot more fun.</p><h3 class="article-body__section" id="section-hilight-or-lowlight"><span>HiLight (or LowLight?)</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5G3WLD8KmHkN7UmTPVCKb" name="Google Pixel 11 Pro Fold-21" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/o5G3WLD8KmHkN7UmTPVCKb.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I can’t quite make up my mind if this feature is cool or just gimmicky but right now I’m thinking more of the latter. </p><p>HiLight is colorful LED on the back of the Pixel 11 Pro Fold that can glow different colors you set based on who’s calling. So if your phone is face down you can tell right away who’s on the other end.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3017px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yDMEqjq8skfgrJDuFyMxaa" name="Google Pixel 11 Pro Fold-20" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/yDMEqjq8skfgrJDuFyMxaa.jpg" mos="" align="middle" fullscreen="" width="3017" height="1697" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The HiLight can also animate when you’re chatting with Gemini Live, which I guess is cool but not really necessary.</p><h3 class="article-body__section" id="section-displays-brightest-ever"><span>Displays: Brightest ever </span></h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/RuS339tv62jjRaVhiNzxHP.jpg" alt="Pixel 11 Pro Fold hands on" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/g6xyThLUCUzvgR46syPA4b.jpg" alt="Google Pixel 11 Pro Fold" /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure></figure><p>Google’s foldable has a more noticeable crease than Samsung, but both the main and cover display are super bright. We’re talking 3,600 nits for the Pixel 11 Pro Fold, compared to 3,000 for the Fold 8 Ultra. </p><p>And, I noticed the difference when I put both phones side by side, both set to max brightness. The black bars are very much there when watching YouTube, but I like how you can pop comments in on the right side while watching YouTube Shorts. </p><p>The Pixel Pro Fold also has a laptop mode that puts the content up and controls on the bottom, similar to the Flex Mode on the Fold 8 Ultra.</p><h3 class="article-body__section" id="section-multitasking-bubbles-everywhere"><span>Multitasking: Bubbles everywhere!</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6480px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XjCPwwPFGrqJY7AzWBNQvb" name="Google Pixel 11 Pro Fold-12" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/XjCPwwPFGrqJY7AzWBNQvb.jpg" mos="" align="middle" fullscreen="" width="6480" height="3645" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While the Pixel 11 Pro Fold limits you to two open apps side by side, compared to three for Samsung, Google has a new trick up its sleeve.</p><p>You can turn apps into a floating window called bubbles and place them anywhere around the screen. And it’s simple to add more apps to your bubble and toggle between them.</p><h3 class="article-body__section" id="section-cameras-more-light-more-magic"><span>Cameras: More light, more 'magic'</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5520px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pFWzirrCBocpH8HZaRUzcb" name="Google Pixel 11 Pro Fold-11" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/pFWzirrCBocpH8HZaRUzcb.jpg" mos="" align="middle" fullscreen="" width="5520" height="3105" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro Fold packs a triple rear camera system that starts with a 48MP wide sensor that lets in 58% more light. </p><p>In my very brief testing the Pixel 11 Pro Fold captured sharp and bright images, but this was under pretty ideal conditions.</p><p>You also get a 10.5MP ultra wide camera and a 10.8MP telephoto camera with 5x optical zoom, compared to just 3x for the Fold 8 Ultra.</p><p>The selfie cameras are limited to 10MP, but you can always take rear camera selfies by flipped the front display around for maximum resolution.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3257px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uwQ3uwNLhs4AdabrDy5yFP" name="Google Pixel 11 Pro Fold" alt="Pixel 11 Pro Fold hands on" src="https://cdn.mos.cms.futurecdn.net/uwQ3uwNLhs4AdabrDy5yFP.jpg" mos="" align="middle" fullscreen="" width="3257" height="1832" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The coolest camera feature on the Pixel 11 Pro Fold is Magic Capture. Enter this special mode and press the shutter button, and the Pixel 11 Pro will automatically start shooting both photos and videos, picking out what it thinks are the best moments. Google had a couple of dancers for our demo and Magic Capture seemed to work pretty well.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3061px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="gHHVn2Hv7hqwZcsEKi9UZh" name="Google Pixel 11 Pro Fold-8" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/gHHVn2Hv7hqwZcsEKi9UZh.jpg" mos="" align="middle" fullscreen="" width="3061" height="1722" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Another nifty feature is Creative Studio, which you can use to record videos complete with a built-in teleprompter, sound level controls and more.</p><h3 class="article-body__section" id="section-ai-getting-pro-active"><span>AI: Getting Pro-active</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2300px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Pv9At59u68QQSriwKhhrha" name="Google Pixel 11 Pro Fold-18" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/Pv9At59u68QQSriwKhhrha.jpg" mos="" align="middle" fullscreen="" width="2300" height="1294" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is a Pixel phone so you know the 11 Pro Fold is going to have a boatload of AI features. But there’s a handful of useful ones that you won’t find on the Fold 8 Ultra. </p><p>Gemini Spark can perform tasks on your behalf in the background while you do other stuff. For example, you can ask Gemini to summarize emails related to your party RSVPs and have it create a spreadsheet of everyone’s dietary preferences.</p><p>Speech recognition also gets a boost with the Pixel 11 Pro Fold thanks to Rambler. You can say all the “uhs” and “ums” you want and this Foldable will edit them out on the fly.</p><p>Gemini’s Proactive Intelligent Suggestions builds on the hit-or-miss Magic Cue from previous Pixel phones, surfacing the right info just when you need it. For example, if someone asks if you’re available on a certain day and time, you’ll see a prompt for previewing your calendar — without having to leave the app.</p><p>This works for everything from being able to preview flight info to peeking at a restaurant. You can even book a table from within your messages with the tap of a button.</p><h3 class="article-body__section" id="section-performance-and-battery-breaking-the-2nm-barrier"><span>Performance and Battery: Breaking the 2nm barrier</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4803px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="G85rY5T6RpMtNN8XHTYVSb" name="Google Pixel 11 Pro Fold-LIST2" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/G85rY5T6RpMtNN8XHTYVSb.jpg" mos="" align="middle" fullscreen="" width="4803" height="2702" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro packs a new Tensor G6 chip that is among the first in the world built on a 2nm process. And that means you should expect a speed boost along with longer battery life — even with a smaller battery than the Pixel 10 Pro Fold.</p><p>For example, Google promises an Instant Night Sight feature for taking low-light photos with virtually no processing time. But we’ll have to test this out to see how it works.</p><p>And with a much faster TPU on board, the Pixel 11 Pro Fold should be able to perform on-device AI tasks much faster than before.</p><p>The 4,806 mAh battery inside the Pixel 11 Pro Fold is smaller than the 5,000 mAh battery for the Pixel 10 Pro Fold, but Google is still promising up to 24 hours of battery life. That’s because the G6 chip is designed to be 20% more efficient.</p><p>However, the Galaxy Z Fold 8 has a 5,015 mAh battery with newer silicon carbon tech, while the Pixel Fold is still stuck on Lithium Ion, so we’ll have to see which foldable lasts longer.</p><p>When it comes to wireless charging, Google has an advantage because it has Qi2 magnets built into the phone. With Samsung you have to buy a case.</p><h3 class="article-body__section" id="section-outlook"><span>Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5893px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ypss5gjgWtC9BhKtQQBieb" name="Google Pixel 11 Pro Fold-17" alt="Google Pixel 11 Pro Fold" src="https://cdn.mos.cms.futurecdn.net/Ypss5gjgWtC9BhKtQQBieb.jpg" mos="" align="middle" fullscreen="" width="5893" height="3315" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pixel 11 Pro Fold is a much improved foldable phone. It’s lighter, thinner, tougher and faster. Plus, it has a longer zoom than the Z Fold 8 Ultra, a wider front display and — eureka! — you can actually take it to the beach.</p><p>Add in the brighter screens and shatterproof back and you have some pretty solid reasons for picking the Pixel 11 Pro Fold over Samsung.</p><p>On the other hand, the Galaxy Z Fold 8 Ultra is noticeably thinner and lighter; it has a less visible crease; and it packs sharper main and ultrawide cameras. Plus, you have the ability to run three apps at once.</p><p>I don’t see the HiLight feature being all that useful on the Pixel 11 Pro Fold. More practical to me are Gemini proactive suggestions, as well as camera features like Magic Capture.</p><p>Overall, I’d be pretty torn between the Pixel 11 Pro Fold and Galaxy Z Fold 8 Ultra. But I’ll have to do some in-depth testing to see which one I’d buy with my own money. Stay tuned for my full review.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I used ChatGPT to plan the ultimate coffee shop crawl for National Coffee Month — here's the tasty itinerary it gave me ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Once I hop out of bed in the morning, my brain immediately tells me to down a cup of orange juice before I step out my front door.</p><p>Everyone else in my household puts a bit more work into their morning fluid intake by brewing up a good old cup of Blue Mountain Coffee. I’ve always admired the scent of a fresh cup of joe and other coffee-inspired concoctions, but I rarely bring them to my lips for a quick sip. Since National Coffee Month is currently in full swing, I made a promise to myself to finally step out of my drinking comfort zone and indulge in some cultured coffee consumption.</p><p>For a New Yorker such as myself who loves exploring each borough during my weekend free time, I’m aiming to hit up the most notable coffee shops in the city that offer the most unique hot & cold beverages for me to enjoy.</p><p>Once again, I approached ChatGPT with a clear goal in mind and requested its assistance in helping me properly celebrate National Coffee Month. After looking at its coffee shop and drink suggestions, I now have a delicious game plan to stick to for the rest of August.</p><h2 id="where-to-go-and-what-to-sip-on-all-month-long">Where to go and what to sip on all month long</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fMTb42d6eJZFdtascJwdtf" name="shutterstock_2473375537" alt="making latte" src="https://cdn.mos.cms.futurecdn.net/fMTb42d6eJZFdtascJwdtf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>To make sure ChatGPT knew my level of coffee drinker and where I live, I presented it with this prompt to set me up with the ultimate coffee shop crawl: </p><p>“For National Coffee Month, what are the best ways someone like me who doesn't usually drink coffee should celebrate it? Keep in mind that I live in New York, so find the best coffee shops for me to go to and try out the most unique coffee blends.” </p><p>Right from the jump, ChatGPT told me what and what not to do: </p><p><em>If you don’t usually drink coffee, I’d avoid celebrating National Coffee Month by simply ordering a giant black coffee. New York is actually perfect for turning it into a coffee-tasting adventure—trying unusual preparations, flavors and origins rather than forcing yourself to like traditional coffee. New York’s specialty scene is unusually diverse: you can go from Japanese siphon coffee to Korean-influenced drinks to ultra-light Ethiopian beans and creative espresso drinks in the same weekend.</em></p><p>Then the chatbot laid out the ideal National Coffee Month challenge, which seems doable and easy enough for an uncultured coffee drinker like me to partake in. It suggested starting with a coffee that doesn’t taste like typical coffee, trying a coffee-based dessert drink, seeking out some coffee that’s prepared in a completely different way, getting a taste of a single-origin coffee to see what flavors you notice and finishing off my tasty-testing journey with NYC’s most experimental specialty coffee.</p><p>And finally, ChatGPT gave me a hitlist of six coffee shops to go to that have one-of-a-kind flavors worth sampling:</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1879px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="nHAvjzz3LRTqK6q4oZEuRB" name="coffee maker.jpeg" alt="coffee maker" src="https://cdn.mos.cms.futurecdn.net/nHAvjzz3LRTqK6q4oZEuRB.jpeg" mos="" align="middle" fullscreen="" width="1879" height="1058" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pexels)</span></figcaption></figure><ul><li><strong>Coffee Project New York | East Village: </strong><em>This might be the best first stop for you specifically. Order the Deconstructed Latte. Instead of simply handing you a latte, Coffee Project serves the espresso, milk, and finished latte separately so you can taste how each component changes the drink. The shop also rotates creative drinks such as black-sesame and hojicha-maple lattes.</em></li><li><strong>PARK at KIMS: </strong><em>This is one of my favorite recommendations for your situation because the experience isn't just about traditional American coffee. PARK at KIMS has a rotating pour-over program, beans from Korean roasters, and unusual drinks including an Orange Cold Brew. It also serves a house-style Nepali chiya and excellent matcha if you decide coffee isn't your thing that day.</em></li><li><strong>Suited NYC: </strong><em>This is the “I don't really like coffee, but this sounds good” stop. Suited's banana latte is one of its signature drinks. Think espresso combined with a creamy banana-milk profile, giving you sweetness and familiar fruit flavor alongside the coffee.</em></li><li><strong>SEY Coffee: </strong><em>This is where I'd challenge you to see whether you can actually start appreciating coffee itself. SEY is a Brooklyn micro-roastery focused on extremely carefully sourced, lightly roasted coffees. Its current lineup includes coffees from Kenya, Ethiopia, Colombia, and Peru, with tasting profiles ranging from violet and candied orange to lemon.</em></li><li><strong>Dayglow: </strong><em>This might be the most fun stop if your goal is “show me what coffee can actually be.” Dayglow has a rotating selection of coffees from different roasters, inventive espresso drinks, and a serious filter-coffee program. One of its standout drinks is the Vienna Latte, while its coffee selection can change considerably depending on what's being featured.</em></li><li><strong>Hi-Collar: </strong><em>If you want the most different coffee experience, I'd add Hi-Collar. It's a Japanese kissaten-style café that specializes in siphon coffee and rotating beans. Watching the coffee being prepared in a glass siphon is almost as much of the experience as drinking it. Current/rotating coffees have included beans from places such as Bali, Colombia, and Kenya.</em></li></ul><h2 id="the-takeaway-4">The takeaway</h2><p>I’m super adventurous whenever it’s time to take a flight to another country. And my taste buds are equally courageous—I’m always willing to step out of my comfort zone and introduce my stomach to national and global dishes that I’ve never had. For National Coffee Month, ChatGPT provided me with the perfect opportunity to see what all the coffee hype is all about. </p><p>Having a chatbot gift me with a delicious roadmap to enjoy worked just as well as I thought it would. And now I have a new culinary trek to embark on in a city with a coffee shop on every corner.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate" target="_blank">ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</a></li><li><a href="https://www.tomsguide.com/ai/i-read-mark-zuckerbergs-ai-manifesto-so-you-dont-have-to-here-are-the-5-biggest-takeaways" target="_blank">I read Mark Zuckerberg’s AI manifesto, so you don’t have to — here are the 5 biggest takeaways</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-used-chatgpt-to-plan-the-ultimate-coffee-shop-crawl-for-national-coffee-month-here-are-the-places-im-checking-out-and-the-drinks-im-trying</link>
                                                                            <description>
                            <![CDATA[ To properly celebrate National Coffee Month, I used ChatGPT to come up with a list of places to go and indulge in delicious coffee—these pics and drinks made the list. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">o3Jj63urpUFRfayztnP7og</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/w245WkZtZdks2VkbPr3EbU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Aug 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Aug 2026 16:10:12 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/w245WkZtZdks2VkbPr3EbU-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[drinking coffee]]></media:description>                                                            <media:text><![CDATA[drinking coffee]]></media:text>
                                <media:title type="plain"><![CDATA[drinking coffee]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/w245WkZtZdks2VkbPr3EbU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Once I hop out of bed in the morning, my brain immediately tells me to down a cup of orange juice before I step out my front door.</p><p>Everyone else in my household puts a bit more work into their morning fluid intake by brewing up a good old cup of Blue Mountain Coffee. I’ve always admired the scent of a fresh cup of joe and other coffee-inspired concoctions, but I rarely bring them to my lips for a quick sip. Since National Coffee Month is currently in full swing, I made a promise to myself to finally step out of my drinking comfort zone and indulge in some cultured coffee consumption.</p><p>For a New Yorker such as myself who loves exploring each borough during my weekend free time, I’m aiming to hit up the most notable coffee shops in the city that offer the most unique hot & cold beverages for me to enjoy.</p><p>Once again, I approached ChatGPT with a clear goal in mind and requested its assistance in helping me properly celebrate National Coffee Month. After looking at its coffee shop and drink suggestions, I now have a delicious game plan to stick to for the rest of August.</p><h2 id="where-to-go-and-what-to-sip-on-all-month-long">Where to go and what to sip on all month long</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fMTb42d6eJZFdtascJwdtf" name="shutterstock_2473375537" alt="making latte" src="https://cdn.mos.cms.futurecdn.net/fMTb42d6eJZFdtascJwdtf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>To make sure ChatGPT knew my level of coffee drinker and where I live, I presented it with this prompt to set me up with the ultimate coffee shop crawl: </p><p>“For National Coffee Month, what are the best ways someone like me who doesn't usually drink coffee should celebrate it? Keep in mind that I live in New York, so find the best coffee shops for me to go to and try out the most unique coffee blends.” </p><p>Right from the jump, ChatGPT told me what and what not to do: </p><p><em>If you don’t usually drink coffee, I’d avoid celebrating National Coffee Month by simply ordering a giant black coffee. New York is actually perfect for turning it into a coffee-tasting adventure—trying unusual preparations, flavors and origins rather than forcing yourself to like traditional coffee. New York’s specialty scene is unusually diverse: you can go from Japanese siphon coffee to Korean-influenced drinks to ultra-light Ethiopian beans and creative espresso drinks in the same weekend.</em></p><p>Then the chatbot laid out the ideal National Coffee Month challenge, which seems doable and easy enough for an uncultured coffee drinker like me to partake in. It suggested starting with a coffee that doesn’t taste like typical coffee, trying a coffee-based dessert drink, seeking out some coffee that’s prepared in a completely different way, getting a taste of a single-origin coffee to see what flavors you notice and finishing off my tasty-testing journey with NYC’s most experimental specialty coffee.</p><p>And finally, ChatGPT gave me a hitlist of six coffee shops to go to that have one-of-a-kind flavors worth sampling:</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1879px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="nHAvjzz3LRTqK6q4oZEuRB" name="coffee maker.jpeg" alt="coffee maker" src="https://cdn.mos.cms.futurecdn.net/nHAvjzz3LRTqK6q4oZEuRB.jpeg" mos="" align="middle" fullscreen="" width="1879" height="1058" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pexels)</span></figcaption></figure><ul><li><strong>Coffee Project New York | East Village: </strong><em>This might be the best first stop for you specifically. Order the Deconstructed Latte. Instead of simply handing you a latte, Coffee Project serves the espresso, milk, and finished latte separately so you can taste how each component changes the drink. The shop also rotates creative drinks such as black-sesame and hojicha-maple lattes.</em></li><li><strong>PARK at KIMS: </strong><em>This is one of my favorite recommendations for your situation because the experience isn't just about traditional American coffee. PARK at KIMS has a rotating pour-over program, beans from Korean roasters, and unusual drinks including an Orange Cold Brew. It also serves a house-style Nepali chiya and excellent matcha if you decide coffee isn't your thing that day.</em></li><li><strong>Suited NYC: </strong><em>This is the “I don't really like coffee, but this sounds good” stop. Suited's banana latte is one of its signature drinks. Think espresso combined with a creamy banana-milk profile, giving you sweetness and familiar fruit flavor alongside the coffee.</em></li><li><strong>SEY Coffee: </strong><em>This is where I'd challenge you to see whether you can actually start appreciating coffee itself. SEY is a Brooklyn micro-roastery focused on extremely carefully sourced, lightly roasted coffees. Its current lineup includes coffees from Kenya, Ethiopia, Colombia, and Peru, with tasting profiles ranging from violet and candied orange to lemon.</em></li><li><strong>Dayglow: </strong><em>This might be the most fun stop if your goal is “show me what coffee can actually be.” Dayglow has a rotating selection of coffees from different roasters, inventive espresso drinks, and a serious filter-coffee program. One of its standout drinks is the Vienna Latte, while its coffee selection can change considerably depending on what's being featured.</em></li><li><strong>Hi-Collar: </strong><em>If you want the most different coffee experience, I'd add Hi-Collar. It's a Japanese kissaten-style café that specializes in siphon coffee and rotating beans. Watching the coffee being prepared in a glass siphon is almost as much of the experience as drinking it. Current/rotating coffees have included beans from places such as Bali, Colombia, and Kenya.</em></li></ul><h2 id="the-takeaway-4">The takeaway</h2><p>I’m super adventurous whenever it’s time to take a flight to another country. And my taste buds are equally courageous—I’m always willing to step out of my comfort zone and introduce my stomach to national and global dishes that I’ve never had. For National Coffee Month, ChatGPT provided me with the perfect opportunity to see what all the coffee hype is all about. </p><p>Having a chatbot gift me with a delicious roadmap to enjoy worked just as well as I thought it would. And now I have a new culinary trek to embark on in a city with a coffee shop on every corner.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate" target="_blank">ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</a></li><li><a href="https://www.tomsguide.com/ai/i-read-mark-zuckerbergs-ai-manifesto-so-you-dont-have-to-here-are-the-5-biggest-takeaways" target="_blank">I read Mark Zuckerberg’s AI manifesto, so you don’t have to — here are the 5 biggest takeaways</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 custom Gemini Gems that I swear save me hours each week ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google Gemini can answer almost any question, but getting a consistently useful response often means typing the same detailed instructions again and again. Gems are designed to solve that problem.</p><p>A <a href="https://www.tomsguide.com/ai/i-tried-geminis-new-gems-feature-to-create-my-own-custom-ai-fitness-coach-heres-what-happened">Gem </a>is a customized version of Gemini built around a particular job. You give it a role and a set of instructions once, then return to it whenever you need the same kind of help. It is essentially a saved super-prompt that behaves like a dedicated AI assistant. It's a lot like a <a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude Skill. </a></p><p>Many Gems you'll find on the internet are aimed at SEO article writers and marketers, in other words, fairly niche. But the most useful Gems I've found are those that actually make my work day a bit easier. Here are my favorites that save hours each week. </p><h2 id="1-brainstormer">1. Brainstormer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YmUf2ENHahSfz5woQvTrfD" name="AI-Brain-Paint-shutterstock_2238204845" alt="Colorful exploding brain" src="https://cdn.mos.cms.futurecdn.net/YmUf2ENHahSfz5woQvTrfD.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>We have all asked an AI chatbot for ideas and received a list so generic that it somehow leaves us less inspired than when we started. </p><p>Google’s premade Brainstormer Gem is meant to be a more focused creative partner. You can use it to generate birthday ideas, names for a project, gift suggestions, weekend plans or potential solutions to a problem.</p><p>The trick is to give it constraints. Asking for “birthday party ideas” is likely to produce predictable suggestions. Tell it the child’s age, interests, guest count, budget and whether the party will be indoors or outside, and it has a much better chance of helping.</p><p><strong>Try this Gem and save it for later: </strong><em> Help me plan a birthday party for a 10-year-old who loves music, crafts and gymnastics. It will be held at home for eight children, and I want to spend less than $200. Suggest five themes, then compare the cost and preparation required for each one.</em></p><p>Since the Gem retains its broader brainstorming instructions, you can concentrate on describing the problem instead of explaining how you want Gemini to approach it every time.</p><h2 id="2-learning-coach">2. Learning Coach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I believe you're never too old to learn. That's why the Learning Coach Gem is one of the strongest examples of why a specialized chatbot can be more useful than an ordinary AI conversation.</p><p>Instead of immediately supplying an answer, it is designed to explain a subject step by step and help the user work through it. That makes it useful for learning a new skill, revising for an exam or finally understanding a concept that never quite clicked.</p><p>You could ask it to teach you the basics of photography, explain a difficult chapter from a textbook or build a two-week study plan. It can adjust its explanations to your existing knowledge and quiz you as you go.</p><p><strong>Try this Gem and save it for later: </strong><em>Teach me the basics of personal finance over seven short lessons. Assume I understand budgeting but know very little about investing. Explain one concept at a time, use everyday examples and give me a three-question quiz after each lesson. Don’t move on until I answer.</em></p><p>AI can still make mistakes, so I would verify important facts and avoid treating it as a replacement for a teacher. Used as a patient practice partner, however, this Gem could be genuinely helpful.</p><h2 id="3-career-guide">3. Career Guide</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1756px;"><p class="vanilla-image-block" style="padding-top:55.98%;"><img id="xMF3qE9ZttEZy9s4Dcsbx8" name="Screenshot 2026-05-21 134645" alt="Resume with Canva" src="https://cdn.mos.cms.futurecdn.net/xMF3qE9ZttEZy9s4Dcsbx8.png" mos="" align="middle" fullscreen="" width="1756" height="983" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Career advice is one of those tasks that benefits from context. The right next move depends on your experience, current role, goals, available time and tolerance for risk.</p><p>The Career Guide Gem is built to turn that information into a more structured plan. It can identify transferable skills, suggest possible career paths, help prepare for an interview or break a large professional goal into manageable steps.</p><p>When using this Gem, be sure to be as specific as possible to ensure it surfaces options you may not have considered. </p><p><strong>Try this Gem and save it for later: </strong><em>I have eight years of experience in customer service and three years of experience managing a small team. I want to move into a job with more predictable hours and a salary of at least $70,000. Suggest five realistic career paths, explain which of my skills transfer to each and create a six-month plan for the strongest option.</em></p><p>You should not assume that its salary figures or hiring advice are current without checking them. The value is in giving you a starting point and a set of questions to investigate.</p><h2 id="4-writing-editor">4. Writing Editor</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nSqhYfn3JiMsYDX8W6JVVA" name="pexels-eren-li-7241619 copy" alt="An individual typing on a laptop, focusing on the hands and keyboard in an indoor setting." src="https://cdn.mos.cms.futurecdn.net/nSqhYfn3JiMsYDX8W6JVVA.jpg" mos="" align="middle" fullscreen="" width="6000" height="3375" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pexels / Eren Li)</span></figcaption></figure><p>Some people use Gemini to write, but using it as an Editor is a total game changer. This gem can save you from repeatedly explaining what you want it to preserve.</p><p>You can customize it around your preferred tone, the phrases you tend to overuse and the amount of editing you are comfortable with. That makes it useful for polishing emails, resumes, school assignments, reports or social posts without turning everything into the same overly formal AI voice.</p><p>I would instruct it to explain its biggest changes instead of automatically replacing the entire draft. That keeps the writer in control.</p><p><strong>Try this Gem and save it for later: </strong><em>Edit my writing for clarity, flow and grammar while keeping my original voice. Avoid corporate language, clichés and unnecessary adjectives. Make the smallest changes needed. First show me the edited version, then briefly explain the three most important changes.</em></p><p>If you regularly write for work, you could upload a style guide or examples of your writing when creating the Gem. Google says custom Gems can use uploaded files as reference material, giving the editor more context about how you want to sound.</p><h2 id="5-storybook">5. Storybook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RWwgJuwLg2iqvkeER3x2S" name="Young child asleep in bed." alt="A young child lies asleep on his side in bed while cuddling a white fluffy teddy bear." src="https://cdn.mos.cms.futurecdn.net/RWwgJuwLg2iqvkeER3x2S.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>I like this Gem because it's fun and playful. It can take a simple idea and turn it iSnto an illustrated story based on a chosen theme, age group and art style.</p><p>Parents could use it to create a bedtime story starring a child’s favorite toy. Teachers could turn a classroom topic into a short narrative, while adults could use it to make a personalized story as a gift.</p><p><strong>Try this Gem and save it for later: </strong><em>Create a funny eight-page bedtime story for a 6-year-old about an orange cat who secretly runs a bakery at night. Keep each page under 50 words, include a gentle lesson about asking for help and use a colorful watercolor illustration style.</em></p><p>As with any AI-generated story, it is worth reading the result before sharing it with a child. The plot can wander, and image generators do not always keep characters perfectly consistent from one page to the next. Even so, it is an easy way to turn a child’s idea into something they can see and read.</p><h2 id="how-to-create-your-own-gemini-gem">How to create your own Gemini Gem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oks4o3EWmghwJPnwoWHwMg" name="z (90)" alt="Gemini Gems" src="https://cdn.mos.cms.futurecdn.net/oks4o3EWmghwJPnwoWHwMg.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Custom Gems are available in Gemini at no cost. On the Gemini app, open the sidebar, choose <strong>Explore Gems</strong> and select <strong>New Gem</strong>. Give it a name, add the instructions you want it to follow and test it in the preview window before saving it.</p><p>Be specific about the Gem’s role, how it should respond and what a good answer looks like. You can include examples or upload reference files when it needs more background.</p><p>Gems can now be shared much like files in Google Drive, with controls over who can view or edit them. Be careful when attaching personal or sensitive documents, particularly if you plan to share the Gem with somebody else.</p><h2 id="the-bottom-line">The bottom line</h2><p>Getting started with these five pre-made Gems might spark some new ideas for Gems you create yourself. Have fun and discover the benefit of instructions that can be reused and saved. Once you give these a try, I think you'll discover that Gemini can feel like a group of assistants rather than just one chatbot. </p><p>And, if you have a favorite Gem, let me know in the comments. I'd love to give it a try. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention"><strong>OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-gemini/5-custom-gemini-gems-that-i-swear-save-me-hours-each-week</link>
                                                                            <description>
                            <![CDATA[ Gemini Gems turn Google’s chatbot into a collection of reusable AI assistants. Here are five that could genuinely save you time. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oNGhByzPhdUiQ6Z7fLYazA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jKeAjgfKfdWKDKKvKojg2V-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/jKeAjgfKfdWKDKKvKojg2V-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gemini]]></media:description>                                                            <media:text><![CDATA[Gemini]]></media:text>
                                <media:title type="plain"><![CDATA[Gemini]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jKeAjgfKfdWKDKKvKojg2V-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google Gemini can answer almost any question, but getting a consistently useful response often means typing the same detailed instructions again and again. Gems are designed to solve that problem.</p><p>A <a href="https://www.tomsguide.com/ai/i-tried-geminis-new-gems-feature-to-create-my-own-custom-ai-fitness-coach-heres-what-happened">Gem </a>is a customized version of Gemini built around a particular job. You give it a role and a set of instructions once, then return to it whenever you need the same kind of help. It is essentially a saved super-prompt that behaves like a dedicated AI assistant. It's a lot like a <a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude Skill. </a></p><p>Many Gems you'll find on the internet are aimed at SEO article writers and marketers, in other words, fairly niche. But the most useful Gems I've found are those that actually make my work day a bit easier. Here are my favorites that save hours each week. </p><h2 id="1-brainstormer">1. Brainstormer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YmUf2ENHahSfz5woQvTrfD" name="AI-Brain-Paint-shutterstock_2238204845" alt="Colorful exploding brain" src="https://cdn.mos.cms.futurecdn.net/YmUf2ENHahSfz5woQvTrfD.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>We have all asked an AI chatbot for ideas and received a list so generic that it somehow leaves us less inspired than when we started. </p><p>Google’s premade Brainstormer Gem is meant to be a more focused creative partner. You can use it to generate birthday ideas, names for a project, gift suggestions, weekend plans or potential solutions to a problem.</p><p>The trick is to give it constraints. Asking for “birthday party ideas” is likely to produce predictable suggestions. Tell it the child’s age, interests, guest count, budget and whether the party will be indoors or outside, and it has a much better chance of helping.</p><p><strong>Try this Gem and save it for later: </strong><em> Help me plan a birthday party for a 10-year-old who loves music, crafts and gymnastics. It will be held at home for eight children, and I want to spend less than $200. Suggest five themes, then compare the cost and preparation required for each one.</em></p><p>Since the Gem retains its broader brainstorming instructions, you can concentrate on describing the problem instead of explaining how you want Gemini to approach it every time.</p><h2 id="2-learning-coach">2. Learning Coach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I believe you're never too old to learn. That's why the Learning Coach Gem is one of the strongest examples of why a specialized chatbot can be more useful than an ordinary AI conversation.</p><p>Instead of immediately supplying an answer, it is designed to explain a subject step by step and help the user work through it. That makes it useful for learning a new skill, revising for an exam or finally understanding a concept that never quite clicked.</p><p>You could ask it to teach you the basics of photography, explain a difficult chapter from a textbook or build a two-week study plan. It can adjust its explanations to your existing knowledge and quiz you as you go.</p><p><strong>Try this Gem and save it for later: </strong><em>Teach me the basics of personal finance over seven short lessons. Assume I understand budgeting but know very little about investing. Explain one concept at a time, use everyday examples and give me a three-question quiz after each lesson. Don’t move on until I answer.</em></p><p>AI can still make mistakes, so I would verify important facts and avoid treating it as a replacement for a teacher. Used as a patient practice partner, however, this Gem could be genuinely helpful.</p><h2 id="3-career-guide">3. Career Guide</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1756px;"><p class="vanilla-image-block" style="padding-top:55.98%;"><img id="xMF3qE9ZttEZy9s4Dcsbx8" name="Screenshot 2026-05-21 134645" alt="Resume with Canva" src="https://cdn.mos.cms.futurecdn.net/xMF3qE9ZttEZy9s4Dcsbx8.png" mos="" align="middle" fullscreen="" width="1756" height="983" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Career advice is one of those tasks that benefits from context. The right next move depends on your experience, current role, goals, available time and tolerance for risk.</p><p>The Career Guide Gem is built to turn that information into a more structured plan. It can identify transferable skills, suggest possible career paths, help prepare for an interview or break a large professional goal into manageable steps.</p><p>When using this Gem, be sure to be as specific as possible to ensure it surfaces options you may not have considered. </p><p><strong>Try this Gem and save it for later: </strong><em>I have eight years of experience in customer service and three years of experience managing a small team. I want to move into a job with more predictable hours and a salary of at least $70,000. Suggest five realistic career paths, explain which of my skills transfer to each and create a six-month plan for the strongest option.</em></p><p>You should not assume that its salary figures or hiring advice are current without checking them. The value is in giving you a starting point and a set of questions to investigate.</p><h2 id="4-writing-editor">4. Writing Editor</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nSqhYfn3JiMsYDX8W6JVVA" name="pexels-eren-li-7241619 copy" alt="An individual typing on a laptop, focusing on the hands and keyboard in an indoor setting." src="https://cdn.mos.cms.futurecdn.net/nSqhYfn3JiMsYDX8W6JVVA.jpg" mos="" align="middle" fullscreen="" width="6000" height="3375" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Pexels / Eren Li)</span></figcaption></figure><p>Some people use Gemini to write, but using it as an Editor is a total game changer. This gem can save you from repeatedly explaining what you want it to preserve.</p><p>You can customize it around your preferred tone, the phrases you tend to overuse and the amount of editing you are comfortable with. That makes it useful for polishing emails, resumes, school assignments, reports or social posts without turning everything into the same overly formal AI voice.</p><p>I would instruct it to explain its biggest changes instead of automatically replacing the entire draft. That keeps the writer in control.</p><p><strong>Try this Gem and save it for later: </strong><em>Edit my writing for clarity, flow and grammar while keeping my original voice. Avoid corporate language, clichés and unnecessary adjectives. Make the smallest changes needed. First show me the edited version, then briefly explain the three most important changes.</em></p><p>If you regularly write for work, you could upload a style guide or examples of your writing when creating the Gem. Google says custom Gems can use uploaded files as reference material, giving the editor more context about how you want to sound.</p><h2 id="5-storybook">5. Storybook</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RWwgJuwLg2iqvkeER3x2S" name="Young child asleep in bed." alt="A young child lies asleep on his side in bed while cuddling a white fluffy teddy bear." src="https://cdn.mos.cms.futurecdn.net/RWwgJuwLg2iqvkeER3x2S.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>I like this Gem because it's fun and playful. It can take a simple idea and turn it iSnto an illustrated story based on a chosen theme, age group and art style.</p><p>Parents could use it to create a bedtime story starring a child’s favorite toy. Teachers could turn a classroom topic into a short narrative, while adults could use it to make a personalized story as a gift.</p><p><strong>Try this Gem and save it for later: </strong><em>Create a funny eight-page bedtime story for a 6-year-old about an orange cat who secretly runs a bakery at night. Keep each page under 50 words, include a gentle lesson about asking for help and use a colorful watercolor illustration style.</em></p><p>As with any AI-generated story, it is worth reading the result before sharing it with a child. The plot can wander, and image generators do not always keep characters perfectly consistent from one page to the next. Even so, it is an easy way to turn a child’s idea into something they can see and read.</p><h2 id="how-to-create-your-own-gemini-gem">How to create your own Gemini Gem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oks4o3EWmghwJPnwoWHwMg" name="z (90)" alt="Gemini Gems" src="https://cdn.mos.cms.futurecdn.net/oks4o3EWmghwJPnwoWHwMg.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Custom Gems are available in Gemini at no cost. On the Gemini app, open the sidebar, choose <strong>Explore Gems</strong> and select <strong>New Gem</strong>. Give it a name, add the instructions you want it to follow and test it in the preview window before saving it.</p><p>Be specific about the Gem’s role, how it should respond and what a good answer looks like. You can include examples or upload reference files when it needs more background.</p><p>Gems can now be shared much like files in Google Drive, with controls over who can view or edit them. Be careful when attaching personal or sensitive documents, particularly if you plan to share the Gem with somebody else.</p><h2 id="the-bottom-line">The bottom line</h2><p>Getting started with these five pre-made Gems might spark some new ideas for Gems you create yourself. Have fun and discover the benefit of instructions that can be reused and saved. Once you give these a try, I think you'll discover that Gemini can feel like a group of assistants rather than just one chatbot. </p><p>And, if you have a favorite Gem, let me know in the comments. I'd love to give it a try. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention"><strong>OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ After 25 years, Google's iconic Search button is disappearing for some users — and this is the replacement ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you tried to Google something recently and felt as if things looked a little different, it's not just your imagination. </p><p>Some users are seeing a redesigned Google homepage that removes the familiar Google Search button and replaces it with shortcuts for AI Mode, Create images, Ask about files and Brainstorm.</p><p>It’s only a test for now, but it’s hard to ignore what Google is putting in the Search button’s place. I've been writing about <a href="https://www.tomsguide.com/ai/ai-is-making-the-internet-invisible-and-no-one-is-talking-about-it">AI replacing the internet</a> as we know it for the past several months.</p><p>For more than 25 years, Google’s homepage has barely changed. You type something into the search box, hit Google Search, and get a page of results. Now, Google appears to be experimenting with turning that same box into a chatbot window. </p><h2 id="google-search-is-starting-to-look-a-lot-more-like-chatgpt-or-gemini">Google Search is starting to look a lot more like ChatGPT or Gemini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K3MiPch6StxcH4kaKBaUcT" name="Google" alt="AI Mode of google search" src="https://cdn.mos.cms.futurecdn.net/K3MiPch6StxcH4kaKBaUcT.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>In the experimental layout, Google’s traditional search field is surrounded by tools that encourage you to do something<a href="https://www.tomsguide.com/ai/ai-image-video/googles-nano-banana-2-fixes-blurry-text-and-boosts-speed-heres-everything-included-in-this-massive-upgrade"> </a>other than type a keyword and look through links.</p><p>There’s <a href="https://www.tomsguide.com/ai/google-search-just-got-a-big-gemini-3-upgrade-heres-how-to-try-it-right-now">AI Mode</a>, which lets you ask longer questions and continue the conversation with follow-ups, you can ask about files or even create an image with <a href="https://www.tomsguide.com/ai/ai-image-video/googles-nano-banana-2-fixes-blurry-text-and-boosts-speed-heres-everything-included-in-this-massive-upgrade">Nano Banana</a>. Interestingly, I’m Feeling Lucky is still there, but the old Google Search button is not. </p><p>Sure, you can still type a query, but the experience will be much different as Google is replacing classic search with<a href="https://www.tomsguide.com/ai/can-you-trust-ai-overviews-recent-studies-suggest-they-may-not-be-as-accurate-as-you-think"> AI Overviews</a> and <a href="https://www.tomsguide.com/news/google-search-is-getting-3-big-ai-upgrades-heres-whats-coming">Summaries</a>. </p><p><a href="https://www.linkedin.com/posts/robbystein_googleio-activity-7462653370508689408-RzqU">Google Search VP Robby Stein responded</a> to people spotting the change and said the company isn't getting rid of traditional search.</p><p>"This is a small test on desktop to help people find new things they can do with Search. No impact to how the core search box works – just add your question and hit enter as usual," Stein said.</p><p>So, no, the Google Search button has not officially been killed off, but all signs seem to point that direction. If anything, the test still tells us quite a bit about where Google wants Search to go.</p><h2 id="the-end-of-google-search-as-we-know-it">The end of Google Search as we know it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tryrdaJxvL8sgVF3dQXonn" name="Google AI.shutterstock_2322278753" alt="Google AI on phone with laptop in background" src="https://cdn.mos.cms.futurecdn.net/tryrdaJxvL8sgVF3dQXonn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>AI Mode has already<a href="https://www.tomsguide.com/ai/what-is-google-zero-and-why-your-favorite-websites-are-panicking-about-ai"> pushed Google beyond the traditional search-results page</a> by letting users ask complicated questions, follow up on answers and get information synthesized across multiple sources. Google has also been building more image, file and multimodal capabilities directly into Search.</p><p>Putting shortcuts to those tools on Google.com takes that strategy one step further. Google isn't just adding AI to Search anymore. <a href="https://www.tomsguide.com/ai/i-use-ai-but-i-dont-want-ai-making-my-choices-toms-guide-readers-sound-off-on-google-ai-search">It's experimenting with making AI the starting point.</a></p><p>We're being taught a new way to Google, which is ironic considering Google trained us how to search in the first place. But generative AI has changed everything, which is why Google's experimental homepage appears to be designed around the same behavior. </p><p>Keywords don't matter anymore, especially when you can search with an image or an uploaded file. The direction we are headed is a fundamentally different relationship with a search engine than we've ever seen. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQw8YX"></div>                            </div>                            <script src="https://kwizly.com/embed/WQw8YX.js" async></script><h2 id="big-consequences-for-the-web">Big consequences for the web </h2><p>There is an obvious downside to all of this, particularly for websites that depend on Google traffic. The more Google answers a question inside its own interface, the less reason there is for someone to click through to another website.</p><p>That tension already exists with AI Overviews and AI Mode. A homepage that actively steers people toward AI responses rather than traditional search results could accelerate it.</p><p>It also puts Google into even more direct competition with ChatGPT and other AI assistants.</p><p>The Google homepage remains some of the most valuable real estate on the internet. If Google starts using it to promote image generation, document analysis, brainstorming and conversational AI, it is effectively turning google.com into a general-purpose AI interface.</p><p>And Google has one enormous advantage: billions of people already know exactly where to find it.</p><h2 id="the-takeaway-5">The takeaway </h2><p>Google is very clear that removing the Search button is currently just a test, so I wouldn't declare the death of the Search button yet. But even if the Search button disappears tomorrow, the damage to the internet has already been done. The button was just a symbol at best. </p><p>The takeaway is what Google has decided is important enough to replace the Search button with: AI Mode. Image generation. File analysis. Brainstorming. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention"><strong>OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/after-25-years-googles-iconic-search-button-is-disappearing-at-least-for-some-users</link>
                                                                            <description>
                            <![CDATA[ Google is testing a redesigned homepage that replaces its iconic Search button with AI tools like AI Mode, Brainstorm and Create Images. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ww9Hwj9Sj4NdaFT3ii3PZT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PJtDQppL8GQ3ok63MAJnmm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 19:13:26 +0000</pubDate>                                                                                                                                <updated>Tue, 11 Aug 2026 19:16:21 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PJtDQppL8GQ3ok63MAJnmm-1280-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A phone in hand in front of a Google logo]]></media:description>                                                            <media:text><![CDATA[A phone in hand in front of a Google logo]]></media:text>
                                <media:title type="plain"><![CDATA[A phone in hand in front of a Google logo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PJtDQppL8GQ3ok63MAJnmm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you tried to Google something recently and felt as if things looked a little different, it's not just your imagination. </p><p>Some users are seeing a redesigned Google homepage that removes the familiar Google Search button and replaces it with shortcuts for AI Mode, Create images, Ask about files and Brainstorm.</p><p>It’s only a test for now, but it’s hard to ignore what Google is putting in the Search button’s place. I've been writing about <a href="https://www.tomsguide.com/ai/ai-is-making-the-internet-invisible-and-no-one-is-talking-about-it">AI replacing the internet</a> as we know it for the past several months.</p><p>For more than 25 years, Google’s homepage has barely changed. You type something into the search box, hit Google Search, and get a page of results. Now, Google appears to be experimenting with turning that same box into a chatbot window. </p><h2 id="google-search-is-starting-to-look-a-lot-more-like-chatgpt-or-gemini">Google Search is starting to look a lot more like ChatGPT or Gemini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K3MiPch6StxcH4kaKBaUcT" name="Google" alt="AI Mode of google search" src="https://cdn.mos.cms.futurecdn.net/K3MiPch6StxcH4kaKBaUcT.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>In the experimental layout, Google’s traditional search field is surrounded by tools that encourage you to do something<a href="https://www.tomsguide.com/ai/ai-image-video/googles-nano-banana-2-fixes-blurry-text-and-boosts-speed-heres-everything-included-in-this-massive-upgrade"> </a>other than type a keyword and look through links.</p><p>There’s <a href="https://www.tomsguide.com/ai/google-search-just-got-a-big-gemini-3-upgrade-heres-how-to-try-it-right-now">AI Mode</a>, which lets you ask longer questions and continue the conversation with follow-ups, you can ask about files or even create an image with <a href="https://www.tomsguide.com/ai/ai-image-video/googles-nano-banana-2-fixes-blurry-text-and-boosts-speed-heres-everything-included-in-this-massive-upgrade">Nano Banana</a>. Interestingly, I’m Feeling Lucky is still there, but the old Google Search button is not. </p><p>Sure, you can still type a query, but the experience will be much different as Google is replacing classic search with<a href="https://www.tomsguide.com/ai/can-you-trust-ai-overviews-recent-studies-suggest-they-may-not-be-as-accurate-as-you-think"> AI Overviews</a> and <a href="https://www.tomsguide.com/news/google-search-is-getting-3-big-ai-upgrades-heres-whats-coming">Summaries</a>. </p><p><a href="https://www.linkedin.com/posts/robbystein_googleio-activity-7462653370508689408-RzqU">Google Search VP Robby Stein responded</a> to people spotting the change and said the company isn't getting rid of traditional search.</p><p>"This is a small test on desktop to help people find new things they can do with Search. No impact to how the core search box works – just add your question and hit enter as usual," Stein said.</p><p>So, no, the Google Search button has not officially been killed off, but all signs seem to point that direction. If anything, the test still tells us quite a bit about where Google wants Search to go.</p><h2 id="the-end-of-google-search-as-we-know-it">The end of Google Search as we know it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tryrdaJxvL8sgVF3dQXonn" name="Google AI.shutterstock_2322278753" alt="Google AI on phone with laptop in background" src="https://cdn.mos.cms.futurecdn.net/tryrdaJxvL8sgVF3dQXonn.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>AI Mode has already<a href="https://www.tomsguide.com/ai/what-is-google-zero-and-why-your-favorite-websites-are-panicking-about-ai"> pushed Google beyond the traditional search-results page</a> by letting users ask complicated questions, follow up on answers and get information synthesized across multiple sources. Google has also been building more image, file and multimodal capabilities directly into Search.</p><p>Putting shortcuts to those tools on Google.com takes that strategy one step further. Google isn't just adding AI to Search anymore. <a href="https://www.tomsguide.com/ai/i-use-ai-but-i-dont-want-ai-making-my-choices-toms-guide-readers-sound-off-on-google-ai-search">It's experimenting with making AI the starting point.</a></p><p>We're being taught a new way to Google, which is ironic considering Google trained us how to search in the first place. But generative AI has changed everything, which is why Google's experimental homepage appears to be designed around the same behavior. </p><p>Keywords don't matter anymore, especially when you can search with an image or an uploaded file. The direction we are headed is a fundamentally different relationship with a search engine than we've ever seen. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQw8YX"></div>                            </div>                            <script src="https://kwizly.com/embed/WQw8YX.js" async></script><h2 id="big-consequences-for-the-web">Big consequences for the web </h2><p>There is an obvious downside to all of this, particularly for websites that depend on Google traffic. The more Google answers a question inside its own interface, the less reason there is for someone to click through to another website.</p><p>That tension already exists with AI Overviews and AI Mode. A homepage that actively steers people toward AI responses rather than traditional search results could accelerate it.</p><p>It also puts Google into even more direct competition with ChatGPT and other AI assistants.</p><p>The Google homepage remains some of the most valuable real estate on the internet. If Google starts using it to promote image generation, document analysis, brainstorming and conversational AI, it is effectively turning google.com into a general-purpose AI interface.</p><p>And Google has one enormous advantage: billions of people already know exactly where to find it.</p><h2 id="the-takeaway-5">The takeaway </h2><p>Google is very clear that removing the Search button is currently just a test, so I wouldn't declare the death of the Search button yet. But even if the Search button disappears tomorrow, the damage to the internet has already been done. The button was just a symbol at best. </p><p>The takeaway is what Google has decided is important enough to replace the Search button with: AI Mode. Image generation. File analysis. Brainstorming. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention"><strong>OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I read Mark Zuckerberg’s AI manifesto, so you don’t have to — here are the 5 biggest takeaways ]]></title>
                                                                                                <dc:content><![CDATA[ <p>At this point, it feels like a monthly occurrence whenever a major tech CEO drops a 1000+ word essay about their thoughts on the present and future outlook of AI.</p><p>The names Sam Altman (OpenAI), Satya Nadella (Microsoft) and Dario Amodei (Anthropic) are among those individuals who’ve shared their insights into the trajectories of continued AI development, their impact on society, the long-term health/scientific benefits of advanced AI, etc. While some have found their opinions on the growth of AI and predictions for how they’ll make us better fascinating, others have found them to be full of fantastical promises that will never come to fruition.</p><p>Another individual whose name joins the list of “tech bros who’ve written lengthy papers about AI” is Mark Zuckerberg, the CEO and founder of Meta Platforms (better known as the guy who made Facebook).</p><p>He just dropped a 6,500-word AI manifesto titled <a href="https://www.meta.com/thefutureisforeveryone/?im_ref=VucxpZUXBxyZWb%3A1tSTGMwLTUkr0xryvIzMfS40&sharedid=techcrunch.com&irpid=10078&adid=3865253&ircid=51596&utm_source=impact&prodsku=&irgwc=1&afsrc=1" target="_blank">“The Future is for Everyone: The Path to a Positive AI Future.”</a> I got real comfortable in my office chair, pushed my glasses up to my nose and locked in as I read it to completion to find the five biggest takeaways you need to know.</p><h2 id="personal-superintelligence-for-everyone">Personal superintelligence for everyone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’ll break it down for you guys and gals reading this right now via five easily comprehensible bullet points:</p><ul><li><strong>Everyone should have access to their own “personal superintelligence”: </strong>Zuckerberg doesn’t think AI should solely belong to governments, corporations or AI Labs— he feels it needs to belong to anyone and everyone. He wants to live in a world where the everyday person has a highly capable personal AI agent at the ready that comprehends their goals and works tirelessly to help them with tasks associated with their health, career, finances, relationships, and hobbies.</li><li><strong>Invention over automation: </strong>Zuckerberg pushes back against the notion that AI’s continued evolution will result in more human jobs being eliminated. He is more of a huge proponent of AI improving our lives by helping humanity discover new life-saving drugs, find new ways to improve businesses and produce new creative ideas.</li><li><strong>A single benevolent AI is not the right way forward: </strong>Zuckerberg isn’t in favor of the concept of a single small group perfecting and controlling one single aligned superintelligence. He believes the distribution of power, such as checks and balances between individuals, businesses and governments that rely on AI power, should be introduced to ensure more safety for AI usage. For example, if only one person had a superintelligent lawyer, they'd have an unfair advantage, but if everyone has one, justice becomes fairer and more achievable.</li><li><strong>Meta is in the process of building the best personal superintelligence: </strong>Zuckerberg outlines several ways in which his company Meta is developing the sort of AI that will benefit humanity in the long run. Meta is focused on developing a capable personal agent that understands you, your goals, and everything you care about to help you improve across those key areas. The tech giant is also focused on building AI that promotes creativity with its tools, inspires business owners to embrace entrepreneurial ideas, improves teaching through personalized tutors & coaches with a PhD in every subject imaginable and pushes for scientific advances.</li><li><strong>Pushing for America to compete with its AI rivals and Meta helping communities: </strong>Rather than slowing the development of AI data labs, Zuckerberg is a stern supporter of a world where America must build energy capacity and data centers faster in a bid to compete with China. He also points to Meta launching a “Future Is For Everyone Fund” that’s equipped to financially support the communities that house their data centers. “America's Workforce Academy” is also in place to train those communities’ skilled tradespeople to get access to free training and high-paying jobs in the areas where data centers have been built by Meta.</li></ul><h2 id="final-thoughts-6">Final thoughts</h2><p>Zuckerberg’s extensive essay supports the idea of everyone having easy access to their own personal superintelligent AI, with its presence being used to boost their personal empowerment through several avenues of their lives and a proper balance of power among the biggest entities using AI so that a foundation of safety is instituted. </p><p>His concept of AI companies working closely with governments on tighter security measures by sharing their progress before their AI agents are fully deployed sticks out as a movement I can get behind.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/openclaw-is-available-on-iphone-and-android-these-are-the-first-things-i-would-set-up" target="_blank">OpenClaw is available on iPhone and Android — these are the things I would set up first</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-read-mark-zuckerbergs-ai-manifesto-so-you-dont-have-to-here-are-the-5-biggest-takeaways</link>
                                                                            <description>
                            <![CDATA[ After reading Zuckerberg’s 6,500-word AI manifesto, here are the five key points everyone should take away. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">MmSTJWxjqbXNtMQNEHJDoE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/dedA7jZWifPttZj9UGYLKX-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 16:29:33 +0000</pubDate>                                                                                                                                <updated>Tue, 11 Aug 2026 16:43:18 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/dedA7jZWifPttZj9UGYLKX-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[mark zuckerberg]]></media:description>                                                            <media:text><![CDATA[mark zuckerberg]]></media:text>
                                <media:title type="plain"><![CDATA[mark zuckerberg]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/dedA7jZWifPttZj9UGYLKX-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>At this point, it feels like a monthly occurrence whenever a major tech CEO drops a 1000+ word essay about their thoughts on the present and future outlook of AI.</p><p>The names Sam Altman (OpenAI), Satya Nadella (Microsoft) and Dario Amodei (Anthropic) are among those individuals who’ve shared their insights into the trajectories of continued AI development, their impact on society, the long-term health/scientific benefits of advanced AI, etc. While some have found their opinions on the growth of AI and predictions for how they’ll make us better fascinating, others have found them to be full of fantastical promises that will never come to fruition.</p><p>Another individual whose name joins the list of “tech bros who’ve written lengthy papers about AI” is Mark Zuckerberg, the CEO and founder of Meta Platforms (better known as the guy who made Facebook).</p><p>He just dropped a 6,500-word AI manifesto titled <a href="https://www.meta.com/thefutureisforeveryone/?im_ref=VucxpZUXBxyZWb%3A1tSTGMwLTUkr0xryvIzMfS40&sharedid=techcrunch.com&irpid=10078&adid=3865253&ircid=51596&utm_source=impact&prodsku=&irgwc=1&afsrc=1" target="_blank">“The Future is for Everyone: The Path to a Positive AI Future.”</a> I got real comfortable in my office chair, pushed my glasses up to my nose and locked in as I read it to completion to find the five biggest takeaways you need to know.</p><h2 id="personal-superintelligence-for-everyone">Personal superintelligence for everyone</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’ll break it down for you guys and gals reading this right now via five easily comprehensible bullet points:</p><ul><li><strong>Everyone should have access to their own “personal superintelligence”: </strong>Zuckerberg doesn’t think AI should solely belong to governments, corporations or AI Labs— he feels it needs to belong to anyone and everyone. He wants to live in a world where the everyday person has a highly capable personal AI agent at the ready that comprehends their goals and works tirelessly to help them with tasks associated with their health, career, finances, relationships, and hobbies.</li><li><strong>Invention over automation: </strong>Zuckerberg pushes back against the notion that AI’s continued evolution will result in more human jobs being eliminated. He is more of a huge proponent of AI improving our lives by helping humanity discover new life-saving drugs, find new ways to improve businesses and produce new creative ideas.</li><li><strong>A single benevolent AI is not the right way forward: </strong>Zuckerberg isn’t in favor of the concept of a single small group perfecting and controlling one single aligned superintelligence. He believes the distribution of power, such as checks and balances between individuals, businesses and governments that rely on AI power, should be introduced to ensure more safety for AI usage. For example, if only one person had a superintelligent lawyer, they'd have an unfair advantage, but if everyone has one, justice becomes fairer and more achievable.</li><li><strong>Meta is in the process of building the best personal superintelligence: </strong>Zuckerberg outlines several ways in which his company Meta is developing the sort of AI that will benefit humanity in the long run. Meta is focused on developing a capable personal agent that understands you, your goals, and everything you care about to help you improve across those key areas. The tech giant is also focused on building AI that promotes creativity with its tools, inspires business owners to embrace entrepreneurial ideas, improves teaching through personalized tutors & coaches with a PhD in every subject imaginable and pushes for scientific advances.</li><li><strong>Pushing for America to compete with its AI rivals and Meta helping communities: </strong>Rather than slowing the development of AI data labs, Zuckerberg is a stern supporter of a world where America must build energy capacity and data centers faster in a bid to compete with China. He also points to Meta launching a “Future Is For Everyone Fund” that’s equipped to financially support the communities that house their data centers. “America's Workforce Academy” is also in place to train those communities’ skilled tradespeople to get access to free training and high-paying jobs in the areas where data centers have been built by Meta.</li></ul><h2 id="final-thoughts-6">Final thoughts</h2><p>Zuckerberg’s extensive essay supports the idea of everyone having easy access to their own personal superintelligent AI, with its presence being used to boost their personal empowerment through several avenues of their lives and a proper balance of power among the biggest entities using AI so that a foundation of safety is instituted. </p><p>His concept of AI companies working closely with governments on tighter security measures by sharing their progress before their AI agents are fully deployed sticks out as a movement I can get behind.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention" target="_blank">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/openclaw-is-available-on-iphone-and-android-these-are-the-first-things-i-would-set-up" target="_blank">OpenClaw is available on iPhone and Android — these are the things I would set up first</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention ]]></title>
                                                                                                <dc:content><![CDATA[ <p>OpenAI has lost another senior leader whose job involved thinking about the risks and consequences of increasingly powerful AI.</p><p>As reported by <a href="https://www.ft.com/content/e49dfb75-f841-4466-a577-f7aaff8779a0" target="_blank">Financial Times</a>, Chloé Bakalar, OpenAI’s head of ethics and reportedly its only dedicated ethicist, has left the company less than a year after joining. Her departure follows other significant changes among the people responsible for safety and alignment at the company behind ChatGPT.</p><p><a href="https://www.wired.com/story/openai-head-of-safety-leavin" target="_blank">Johannes Heidecke</a>, who led OpenAI’s Safety Systems team, announced his departure in July. <a href="https://www.wired.com/story/openai-chief-futurist-joshua-achiam-is-leaving-the-company" target="_blank">Josh Achiam</a>, who previously led OpenAI’s Mission Alignment team before becoming chief futurist, has also reportedly left the company. OpenAI had already disbanded the Mission Alignment team earlier this year.</p><p>Any one of those changes could easily be written off as the normal churn of a fast-moving technology company. But when three leaders leave all within the matter of weeks, it raises a bigger question at a moment when OpenAI is building AI that can do complex work on its own: <a href="https://www.tomsguide.com/ai/even-the-people-building-ai-dont-know-exactly-where-its-going">Who inside the company has the power to say a model has gone too far?</a></p><h2 id="openai-has-been-changing-how-it-handles-safety">OpenAI has been changing how it handles safety</h2><p>OpenAI has been reorganizing how safety works inside the company, moving some of that responsibility closer to the researchers and engineers actually developing its models rather than keeping safety work confined to separate teams.</p><p>There is an argument for doing it this way. A safety team brought in at the end of development can identify problems, but by then many of the decisions that shaped the model have already been made. Putting safety researchers alongside the people building the technology could allow <a href="https://www.tomsguide.com/ai/ai-gone-wild-what-recent-rogue-ai-really-means">potential problems</a> to be identified much earlier.</p><p>But there is another side to that argument. An independent safety team can act as a counterweight to the people whose job is to make a model smarter, faster and more capable. As those responsibilities become intertwined, it becomes reasonable to ask who ultimately gets to push back when the safest decision conflicts with the desire to release a new product.</p><p>That question is becoming harder to dismiss because OpenAI’s models aren't just chatbots anymore, and we're already seeing what can happen when AI becomes too capable. </p><p>OpenAI recently provided an unusually concrete example of this problem with <a href="https://thehackernews.com/2026/08/openais-next-ai-model-astra-shows-cyber.html" target="_blank">Astra,</a> an unreleased model whose cybersecurity abilities became powerful enough to trigger additional precautions inside the company.</p><p>OpenAI said it could not rule out the possibility that Astra could reach its highest level of concern for cybersecurity capabilities. Rather than immediately releasing the model broadly, the company moved parts of its testing into more isolated environments and began considering stricter controls around who could access its most powerful capabilities.</p><h2 id="setting-limits-for-ai">Setting limits for AI </h2><p>AI agents are continually designed to use software, <a href="https://www.tomsguide.com/ai/notebooklm-can-now-browse-the-web-with-deep-research-i-put-the-new-feature-to-the-test">browse websites</a>, write and <a href="https://www.tomsguide.com/ai/another-claude-update-introduces-problem-solving-tool-with-built-in-javascript-capabilities">execute code</a> and complete tasks with less human supervision. The more freedom we give these systems, the more important the decisions around their limits become.</p><p>That makes the people setting those limits even more important than ever. And, unfortunately, this isn't the first time OpenAI has lost prominent safety researchers.</p><div><blockquote><p>Now several senior people associated with ethics, alignment and safety have left. This is all happening at the same time OpenAI is building systems capable of doing significantly more than answering questions in a ChatGPT window.</p></blockquote></div><p>In 2024, co-founder and chief scientist Ilya Sutskever left the company after playing a central role in its Superalignment effort. Jan Leike, who co-led that team, resigned shortly afterward and publicly criticized OpenAI's approach to safety.</p><p>OpenAI subsequently dissolved the <a href="https://www.tomsguide.com/ai/openai-co-founder-starts-new-company-to-build-safe-superintelligence-heres-what-that-means">Superalignment team</a> and distributed its work elsewhere in the company.</p><p>Of course, people leave companies for all kinds of reasons, and without evidence connecting their decisions, it would be unfair to suggest that everyone working on safety at OpenAI is heading for the exits because of some shared disagreement.</p><p>But the organizational trend is certainly notable. Superalignment disappeared as a standalone team, Mission Alignment was later disbanded and Safety Systems has been reorganized. Now several senior people associated with ethics, alignment and safety have left. This is all happening at the same time OpenAI is building systems capable of doing significantly more than answering questions in a ChatGPT window.</p><h2 id="the-takeaway-for-chatgpt-users">The takeaway for ChatGPT users</h2><p>I don't think these departures are a reason to stop using ChatGPT or assume that OpenAI has suddenly stopped caring about safety.</p><p>Most of us will never see the internal debate that happens before a new ChatGPT model or AI agent reaches our phones and computers. We don't know which researchers argued for additional testing, which capabilities caused concern or how often a launch was changed because somebody inside the company raised a red flag.</p><p>We mostly see the result. So as AI becomes more capable, the question isn't simply whether companies such as OpenAI have a "safety team." It's whether the people responsible for identifying risks have enough independence and authority to slow things down when necessary.</p><p>OpenAI says bringing safety closer to model development can make that work more effective. That may prove true, but after losing several of the people who were specifically tasked with thinking about ethics, safety and alignment, it's reasonable to pay closer attention to who remains in the room when the next difficult decision has to be made.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong> found ChatGPT's secret menu — these 9 features change eve</strong></a><strong></strong><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them"><strong>Claude has 4 built-in skills I use constantly — here’s how to find them</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention</link>
                                                                            <description>
                            <![CDATA[ OpenAI’s head of ethics has left, following other major safety departures. Here’s what the shake-up could mean for ChatGPT and its users. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">dCC9V35aLV8oMuWa6NJSFj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2zbo6GtqQGVSNqLtbiqTF5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 15:18:32 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/2zbo6GtqQGVSNqLtbiqTF5-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[BOSNIA AND HRCEGOVINA, SARAJEVO, 12.2.2025: Open AI CEO of Sam Altman using chat gpt and on x Twitter app]]></media:description>                                                            <media:text><![CDATA[BOSNIA AND HRCEGOVINA, SARAJEVO, 12.2.2025: Open AI CEO of Sam Altman using chat gpt and on x Twitter app]]></media:text>
                                <media:title type="plain"><![CDATA[BOSNIA AND HRCEGOVINA, SARAJEVO, 12.2.2025: Open AI CEO of Sam Altman using chat gpt and on x Twitter app]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2zbo6GtqQGVSNqLtbiqTF5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>OpenAI has lost another senior leader whose job involved thinking about the risks and consequences of increasingly powerful AI.</p><p>As reported by <a href="https://www.ft.com/content/e49dfb75-f841-4466-a577-f7aaff8779a0" target="_blank">Financial Times</a>, Chloé Bakalar, OpenAI’s head of ethics and reportedly its only dedicated ethicist, has left the company less than a year after joining. Her departure follows other significant changes among the people responsible for safety and alignment at the company behind ChatGPT.</p><p><a href="https://www.wired.com/story/openai-head-of-safety-leavin" target="_blank">Johannes Heidecke</a>, who led OpenAI’s Safety Systems team, announced his departure in July. <a href="https://www.wired.com/story/openai-chief-futurist-joshua-achiam-is-leaving-the-company" target="_blank">Josh Achiam</a>, who previously led OpenAI’s Mission Alignment team before becoming chief futurist, has also reportedly left the company. OpenAI had already disbanded the Mission Alignment team earlier this year.</p><p>Any one of those changes could easily be written off as the normal churn of a fast-moving technology company. But when three leaders leave all within the matter of weeks, it raises a bigger question at a moment when OpenAI is building AI that can do complex work on its own: <a href="https://www.tomsguide.com/ai/even-the-people-building-ai-dont-know-exactly-where-its-going">Who inside the company has the power to say a model has gone too far?</a></p><h2 id="openai-has-been-changing-how-it-handles-safety">OpenAI has been changing how it handles safety</h2><p>OpenAI has been reorganizing how safety works inside the company, moving some of that responsibility closer to the researchers and engineers actually developing its models rather than keeping safety work confined to separate teams.</p><p>There is an argument for doing it this way. A safety team brought in at the end of development can identify problems, but by then many of the decisions that shaped the model have already been made. Putting safety researchers alongside the people building the technology could allow <a href="https://www.tomsguide.com/ai/ai-gone-wild-what-recent-rogue-ai-really-means">potential problems</a> to be identified much earlier.</p><p>But there is another side to that argument. An independent safety team can act as a counterweight to the people whose job is to make a model smarter, faster and more capable. As those responsibilities become intertwined, it becomes reasonable to ask who ultimately gets to push back when the safest decision conflicts with the desire to release a new product.</p><p>That question is becoming harder to dismiss because OpenAI’s models aren't just chatbots anymore, and we're already seeing what can happen when AI becomes too capable. </p><p>OpenAI recently provided an unusually concrete example of this problem with <a href="https://thehackernews.com/2026/08/openais-next-ai-model-astra-shows-cyber.html" target="_blank">Astra,</a> an unreleased model whose cybersecurity abilities became powerful enough to trigger additional precautions inside the company.</p><p>OpenAI said it could not rule out the possibility that Astra could reach its highest level of concern for cybersecurity capabilities. Rather than immediately releasing the model broadly, the company moved parts of its testing into more isolated environments and began considering stricter controls around who could access its most powerful capabilities.</p><h2 id="setting-limits-for-ai">Setting limits for AI </h2><p>AI agents are continually designed to use software, <a href="https://www.tomsguide.com/ai/notebooklm-can-now-browse-the-web-with-deep-research-i-put-the-new-feature-to-the-test">browse websites</a>, write and <a href="https://www.tomsguide.com/ai/another-claude-update-introduces-problem-solving-tool-with-built-in-javascript-capabilities">execute code</a> and complete tasks with less human supervision. The more freedom we give these systems, the more important the decisions around their limits become.</p><p>That makes the people setting those limits even more important than ever. And, unfortunately, this isn't the first time OpenAI has lost prominent safety researchers.</p><div><blockquote><p>Now several senior people associated with ethics, alignment and safety have left. This is all happening at the same time OpenAI is building systems capable of doing significantly more than answering questions in a ChatGPT window.</p></blockquote></div><p>In 2024, co-founder and chief scientist Ilya Sutskever left the company after playing a central role in its Superalignment effort. Jan Leike, who co-led that team, resigned shortly afterward and publicly criticized OpenAI's approach to safety.</p><p>OpenAI subsequently dissolved the <a href="https://www.tomsguide.com/ai/openai-co-founder-starts-new-company-to-build-safe-superintelligence-heres-what-that-means">Superalignment team</a> and distributed its work elsewhere in the company.</p><p>Of course, people leave companies for all kinds of reasons, and without evidence connecting their decisions, it would be unfair to suggest that everyone working on safety at OpenAI is heading for the exits because of some shared disagreement.</p><p>But the organizational trend is certainly notable. Superalignment disappeared as a standalone team, Mission Alignment was later disbanded and Safety Systems has been reorganized. Now several senior people associated with ethics, alignment and safety have left. This is all happening at the same time OpenAI is building systems capable of doing significantly more than answering questions in a ChatGPT window.</p><h2 id="the-takeaway-for-chatgpt-users">The takeaway for ChatGPT users</h2><p>I don't think these departures are a reason to stop using ChatGPT or assume that OpenAI has suddenly stopped caring about safety.</p><p>Most of us will never see the internal debate that happens before a new ChatGPT model or AI agent reaches our phones and computers. We don't know which researchers argued for additional testing, which capabilities caused concern or how often a launch was changed because somebody inside the company raised a red flag.</p><p>We mostly see the result. So as AI becomes more capable, the question isn't simply whether companies such as OpenAI have a "safety team." It's whether the people responsible for identifying risks have enough independence and authority to slow things down when necessary.</p><p>OpenAI says bringing safety closer to model development can make that work more effective. That may prove true, but after losing several of the people who were specifically tasked with thinking about ethics, safety and alignment, it's reasonable to pay closer attention to who remains in the room when the next difficult decision has to be made.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them"><strong>I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate"><strong>ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong> found ChatGPT's secret menu — these 9 features change eve</strong></a><strong></strong><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them"><strong>Claude has 4 built-in skills I use constantly — here’s how to find them</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ After 10 years of Pixels, why is Google still making phones? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s kind of hard to believe that the <a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend"><u>Google Pixel 11</u></a> series is launching. Yes, it’s been 10 years since the introduction of the first Pixel phone, which was the first truly “made by Google” device. (Yes, there were Nexus phones before that, but that was through partners like HTC.)</p><p>The original Google Pixel had a 5-inch OLED display, 4GB of RAM and an 8MP camera running Android 7.1 Nougat. But it wasn’t about the specs. It was about making a device that was a differentiated flagship that could go toe-to-toe with the <a href="https://www.tomsguide.com/us/iphone-7-iphone-7-plus,review-3908.html"><u>iPhone 7</u></a> and <a href="https://www.tomsguide.com/us/galaxy-s7-s7-edge,review-3403.html"><u>Galaxy S7</u></a>. A true Apple rival that had Google-made hardware and software.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/qEzgvPtMPmA" allowfullscreen></iframe></div></div><p>To do that, Google leaned heavily into computational photography before anyone else, elevating image quality via sophisticated processing as opposed to just hardware. And the first Pixel also paved the way for AI as a hallmark feature in phones, with Google Assistant being built directly into the OS.</p><p>But now that we’re a decade in, what does Google have to show for its efforts? A fairly low No. 10 in global market share, according to IDC. And with the Apple-Samsung duopoly still going strong in the U.S. and the likes of Xiaomi, Oppo and Vivo dominating in China, does it still make sense for the Pixel to exist?</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4139px;"><p class="vanilla-image-block" style="padding-top:107.71%;"><img id="aJ38HUM2EcFZek3QW3peL9" name="TG-Pixel-Timeline_V2" alt="Timeline of the first ten years of Google Pixel" src="https://cdn.mos.cms.futurecdn.net/aJ38HUM2EcFZek3QW3peL9.jpg" mos="" align="middle" fullscreen="" width="4139" height="4458" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With the Pixel 11, Pixel 11 Pro and <a href="https://www.tomsguide.com/phones/google-pixel-phones/this-is-the-pixel-11-pro-fold-and-this-is-when-pre-orders-officially-starthttps://www.tomsguide.com/phones/google-pixel-phones/i-tried-the-pixel-11-pro-fold-and-its-more-ultra-than-samsungs-foldable-for-usd200-less"><u>Pixel 11 Pro Fold</u></a> about to go on sale, I asked three of the smartest mobile analysts why Google is still making phones, and what the company can do to stand out.</p><h2 id="google-is-no-4-in-the-us-so-what-s-the-problem">Google is No. 4 in the US, so what’s the problem?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4204px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="teSCxPBhFLdBsY8ngSQcMG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/teSCxPBhFLdBsY8ngSQcMG.jpg" mos="" align="middle" fullscreen="" width="4204" height="2365" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Pixel 10 </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>On the plus side, Google’s phone sales have been growing. In fact, according to IDC’s Nabile Popal, Google’s worldwide share has grown tenfold from 2016 to 2025. And it entered the top 10 globally for the first time in 2023. And by the end of 2025, its global annual shipments had grown 8x since a decade ago.</p><p>It’s even rosier if you look at just the US. Google’s share in the US grew 4x to 4.1% in 2025, from just 1% share in 2020.</p><p>Meanwhile, Google is a fairly solid No. 3 in the UK with 7.5% share and an even higher 11% in Japan, where it’s also No. 3.</p><div ><table><caption>Google Smartphone Shipment Rate and Rank (First Half of 2026)</caption><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>USA</strong></p></td><td  ><p><strong>Japan</strong></p></td><td  ><p><strong>UK</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Brand Rank</strong></p></td><td  ><p>#4</p></td><td  ><p>#3</p></td><td  ><p>#3</p></td></tr><tr><td class="firstcol " ><p><strong>Shipment Share</strong></p></td><td  ><p>4.4%</p></td><td  ><p>11%</p></td><td  ><p>7.5%</p></td></tr></tbody></table></div><div><blockquote><p>"Pixels are meant to showcase Android software capabilities rather than completely dethrone partner hardware ecosystems."</p><p>— Nabile Popal, IDC</p></blockquote></div><p>The problem is that Google simply isn’t as aggressive as other phone makers when it comes to distribution.</p><p>"Google restricts its official hardware sales to roughly 22 countries,” said Popal. “In comparison, industry leaders like Apple and Samsung distribute across well over 120 global territories, mathematically capping Google's volume potential."</p><p>That restricted distribution likely isn’t about a lack of resources. We’re talking about a parent company with a market valuation of approximately $4.3 trillion. It’s much more likely a deliberate choice that’s more political in nature. After all, Google’s Android software powers Samsung, Xiaomi and all of the other biggest brands.</p><p>"Pixels are meant to showcase Android software capabilities rather than completely dethrone partner hardware ecosystems,” Popal said. “They want to showcase their abilities without alienating their top partners."</p><h2 id="why-pixels-phones-still-exist-winning-the-ai-war">Why Pixels phones still exist: Winning the AI war</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3864px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="auUpUy6U6cXc7AVxGRhSUG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/auUpUy6U6cXc7AVxGRhSUG.jpg" mos="" align="middle" fullscreen="" width="3864" height="2174" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>After <a href="https://blog.google/company-news/inside-google/company-announcements/weve-acquired-motorola-mobility/"><u>Google acquired Motorola Mobility</u></a> in 2011, speculation grew that Google might favor its own hardware division over its partners. And rumors started to swirl for a time that Samsung might pivot from Android to its own Tizen as the OS of choice. </p><p>But while Samsung did show off a prototype Galaxy S4 running Tizen in 2014, it ultimately shelved any plans for ditching Android on phones and pivoted towards using the software on TVs.</p><p>So if that threat has passed, why is there still a need for Pixel phones? The short answer: AI.</p><p>“Google needs its devices division to act as a Gemini-first counterweight to Apple,” said Avi Greengart, founder and lead analyst for Techsponential. “Building your own hardware ensures that your OS remains in sync with component and form factor trends, and allows Google to release features to market on its timetable, not that of its partners.”</p><p>Even before ChatGPT was a household name, Google started to pioneer key AI features that would find their way to other Android phones (and in some cases copied by the iPhone). For example, the Pixel 6 in 2021 introduced Magic Eraser for removing unwanted objects from your phones. This would not have been possible without Google’s own Tensor chip.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Gemini Live </span><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/reviews/google-pixel-7">Pixel 7</a> gave us <a href="https://www.tomsguide.com/news/google-pixel-7-photo-unblur">Photo Unblur</a> and <a href="https://www.tomsguide.com/news/google-pixel-6-how-tensor-puts-an-end-to-customer-service-call-hell">Direct My Call</a> for navigating byzantine phone menus, and the Pixel 9 gave us Gemini Live for the first time for real-time continuous voice interaction.</p><p>In short, Google needs to demonstrate that it continues to be at the forefront of AI on phones, especially when its partners have other options. For example, the latest Galaxy <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-review">S26</a> series and <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-review-wide-for-the-win">Fold 8</a> series supports both Gemini and Perplexity.</p><p>“I think Google has found the right formula from a hardware perspective and the value of Gemini is definitely strengthening the offering,” said Carolina Milanesi, president and principal analyst for Creative Strategies. “It is also about owning the core piece of the product portfolio that consumers will own going forward.”</p><h2 id="how-the-pixel-11-can-stand-out">How the Pixel 11 can stand out</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5328px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7sZnUxtk8wYDiSM87VdfrG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/7sZnUxtk8wYDiSM87VdfrG.jpg" mos="" align="middle" fullscreen="" width="5328" height="2997" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>With the <a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2026-preview-pixel-11-pixel-watch-5-pixel-tag-and-more">Made by Google event</a> coming up on August 12th, Google is launching four new Pixel phones: the Pixel 11, Pixel 11 Pro, Pixel 11 Pro XL and Pixel 11 Pro Fold.</p><p>That’s quite a robust lineup for a company that’s still seen as a fairly small player. But Google doesn’t need to beat Apple and Samsung to succeed.</p><p>“Pixel gives Google the opportunity to show its full vision for what an AI-native smartphone experience can be,” Greengart said.</p><p>The Pixel 11 could very well be an AI powerhouse. It’s powered by a 2nm <a href="https://www.tomsguide.com/phones/google-pixel-phones/tensor-g6-chipset-could-give-the-pixel-11-the-biggest-security-upgrade-since-pixel-6-heres-how"><u>Tensor G6 chip</u></a> that will speed up Night Sight processing for low-light photos and other on-device AI tasks. And Google is showing off Gemini Proactive Assistance for proactively surfacing useful information, building on the potential of the previous Magic Cue feature.</p><div><blockquote><p>"Pixel gives Google the opportunity to show its full vision for what an AI-native smartphone experience can be."</p><p>— Avi Greengart, Techsponential</p></blockquote></div><p>In addition, the Pixel 11 Pro features a new <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-11-just-leaked-via-amazon-heres-the-specs-colors-and-obligatory-price-hike"><u>HiLight LED</u></a> on the back of the phone that lights up in different color patterns when you’re interacting with Gemini when the phone is face down. It will also serve as an ambient call and notification indicator. But I fear this may come off as gimmicky, similar to the temperature sensor on previous Pixels.</p><h2 id="is-google-pushing-the-envelope-enough">Is Google pushing the envelope enough?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n2oiV5KuGBKxk9PobsRqHF" name="Pixel Fold-6.jpg" alt="Google Pixel Fold shown in hand" src="https://cdn.mos.cms.futurecdn.net/n2oiV5KuGBKxk9PobsRqHF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Pixel Fold </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While it’s clear that the Pixel 11 series will offer meaningful upgrades, the hardware hasn't evolved that much. And if the rumors prove true, Google is going to be missing the boat on a widescreen, passport-style foldable phone like the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-review-wide-for-the-win"><u>Galaxy Z Fold 8</u></a> and <a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-rumors-everything-you-need-to-know-about-the-foldable-iphone"><u>iPhone Ultra</u></a>. </p><p>Google’s first foldable did indeed have a wide display, but it abandoned that form factor.</p><p>“This is going to be the hardest sell this year because of the attention Samsung has gotten with the Z Fold 8 and Apple will have,” Milanesi said. “That market is still small though and even more so for Google, so as long as they go to that form factor next year they will be ok.”</p><p>Google’s biggest problem is that it seems stuck between trying to trumpet the idealized version of a pure AI-first Android phone and not trying to irk its partners. After 10 years, Pixel has not quite broken through with the masses, but that could very well be a calculated decision.</p><p>“Google has not marketed itself strongly enough to become a household name in phones like Apple or Samsung,” Popal said. “Its industry leading features are only known to niche tech savvy consumers, and if it is to succeed with the Pixel 11 it has to pump up its overall marketing and channel presence.”</p><p>The question is whether Google really wants to.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/google-pixel-phones/after-10-years-of-pixels-why-is-google-still-making-phones</link>
                                                                            <description>
                            <![CDATA[ With the Google Pixel 11 launch imminent, I asked three analysts why Google is still making phones. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2KDiRFoxAf3TQ9DEAPBa2B</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6qu9WUcSU6xjU7G8Sh2nW4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 15:12:36 +0000</pubDate>                                                                                                                                <updated>Wed, 19 Aug 2026 13:34:27 +0000</updated>
                                                                                                                                            <category><![CDATA[Google Phones]]></category>
                                                    <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[Android Phones]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mark Spoonauer ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/wtAspSzVfcKLB4JEd39AMo.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Mark Spoonauer is the global editor in chief of Tom&#039;s Guide and has covered technology for over 20 years. He oversees the direction of Tom&#039;s Guide and leads a team of over 25 journalists to bring you our expert buying guides, reviews, news, how-to articles, deals and other coverage.&lt;/p&gt;&lt;p&gt;Mark has a passion for covering all things mobile, having reviewed dozens of smartphones and other gadgets. He enjoys testing the top mobile devices and putting them up against each other in our in-depth face-offs. He also works hand in hand with our editors and testing team to continually improve how we evaluate products. &lt;/p&gt;&lt;p&gt;Having led Tom&#039;s Guide since 2013, Mark has focused on growing the core tech coverage of the site while also expanding into new areas, such as entertainment, fitness and home, recruiting talented writers and editors to help our readers figure out what to buy and how to get the most out of the products and services they use every day. &lt;/p&gt;&lt;p&gt;Mark has spoken at key industry events and appears regularly on TV to discuss the latest trends, including &lt;a href=&quot;https://cheddar.com/media/pixel-watch-gets-a-release-date-at-google-i-o-2022&quot;&gt;Cheddar&lt;/a&gt;, Fox 5, &lt;a href=&quot;https://www.foxbusiness.com/technology/apple-march-event-5g-iphone&quot;&gt;Fox Business&lt;/a&gt; and other outlets. Mark was previously editor in chief of Laptop Mag, and his work has appeared in Wired, Popular Science and Inc. Follow him on Twitter at @mspoonauer.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6qu9WUcSU6xjU7G8Sh2nW4-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide/Bloomberg/Getty]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google Pixel 4, Pixel 10 and Pixel 3]]></media:description>                                                            <media:text><![CDATA[Google Pixel 4, Pixel 10 and Pixel 3]]></media:text>
                                <media:title type="plain"><![CDATA[Google Pixel 4, Pixel 10 and Pixel 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6qu9WUcSU6xjU7G8Sh2nW4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s kind of hard to believe that the <a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend"><u>Google Pixel 11</u></a> series is launching. Yes, it’s been 10 years since the introduction of the first Pixel phone, which was the first truly “made by Google” device. (Yes, there were Nexus phones before that, but that was through partners like HTC.)</p><p>The original Google Pixel had a 5-inch OLED display, 4GB of RAM and an 8MP camera running Android 7.1 Nougat. But it wasn’t about the specs. It was about making a device that was a differentiated flagship that could go toe-to-toe with the <a href="https://www.tomsguide.com/us/iphone-7-iphone-7-plus,review-3908.html"><u>iPhone 7</u></a> and <a href="https://www.tomsguide.com/us/galaxy-s7-s7-edge,review-3403.html"><u>Galaxy S7</u></a>. A true Apple rival that had Google-made hardware and software.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/qEzgvPtMPmA" allowfullscreen></iframe></div></div><p>To do that, Google leaned heavily into computational photography before anyone else, elevating image quality via sophisticated processing as opposed to just hardware. And the first Pixel also paved the way for AI as a hallmark feature in phones, with Google Assistant being built directly into the OS.</p><p>But now that we’re a decade in, what does Google have to show for its efforts? A fairly low No. 10 in global market share, according to IDC. And with the Apple-Samsung duopoly still going strong in the U.S. and the likes of Xiaomi, Oppo and Vivo dominating in China, does it still make sense for the Pixel to exist?</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4139px;"><p class="vanilla-image-block" style="padding-top:107.71%;"><img id="aJ38HUM2EcFZek3QW3peL9" name="TG-Pixel-Timeline_V2" alt="Timeline of the first ten years of Google Pixel" src="https://cdn.mos.cms.futurecdn.net/aJ38HUM2EcFZek3QW3peL9.jpg" mos="" align="middle" fullscreen="" width="4139" height="4458" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With the Pixel 11, Pixel 11 Pro and <a href="https://www.tomsguide.com/phones/google-pixel-phones/this-is-the-pixel-11-pro-fold-and-this-is-when-pre-orders-officially-starthttps://www.tomsguide.com/phones/google-pixel-phones/i-tried-the-pixel-11-pro-fold-and-its-more-ultra-than-samsungs-foldable-for-usd200-less"><u>Pixel 11 Pro Fold</u></a> about to go on sale, I asked three of the smartest mobile analysts why Google is still making phones, and what the company can do to stand out.</p><h2 id="google-is-no-4-in-the-us-so-what-s-the-problem">Google is No. 4 in the US, so what’s the problem?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4204px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="teSCxPBhFLdBsY8ngSQcMG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/teSCxPBhFLdBsY8ngSQcMG.jpg" mos="" align="middle" fullscreen="" width="4204" height="2365" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Pixel 10 </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>On the plus side, Google’s phone sales have been growing. In fact, according to IDC’s Nabile Popal, Google’s worldwide share has grown tenfold from 2016 to 2025. And it entered the top 10 globally for the first time in 2023. And by the end of 2025, its global annual shipments had grown 8x since a decade ago.</p><p>It’s even rosier if you look at just the US. Google’s share in the US grew 4x to 4.1% in 2025, from just 1% share in 2020.</p><p>Meanwhile, Google is a fairly solid No. 3 in the UK with 7.5% share and an even higher 11% in Japan, where it’s also No. 3.</p><div ><table><caption>Google Smartphone Shipment Rate and Rank (First Half of 2026)</caption><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>USA</strong></p></td><td  ><p><strong>Japan</strong></p></td><td  ><p><strong>UK</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Brand Rank</strong></p></td><td  ><p>#4</p></td><td  ><p>#3</p></td><td  ><p>#3</p></td></tr><tr><td class="firstcol " ><p><strong>Shipment Share</strong></p></td><td  ><p>4.4%</p></td><td  ><p>11%</p></td><td  ><p>7.5%</p></td></tr></tbody></table></div><div><blockquote><p>"Pixels are meant to showcase Android software capabilities rather than completely dethrone partner hardware ecosystems."</p><p>— Nabile Popal, IDC</p></blockquote></div><p>The problem is that Google simply isn’t as aggressive as other phone makers when it comes to distribution.</p><p>"Google restricts its official hardware sales to roughly 22 countries,” said Popal. “In comparison, industry leaders like Apple and Samsung distribute across well over 120 global territories, mathematically capping Google's volume potential."</p><p>That restricted distribution likely isn’t about a lack of resources. We’re talking about a parent company with a market valuation of approximately $4.3 trillion. It’s much more likely a deliberate choice that’s more political in nature. After all, Google’s Android software powers Samsung, Xiaomi and all of the other biggest brands.</p><p>"Pixels are meant to showcase Android software capabilities rather than completely dethrone partner hardware ecosystems,” Popal said. “They want to showcase their abilities without alienating their top partners."</p><h2 id="why-pixels-phones-still-exist-winning-the-ai-war">Why Pixels phones still exist: Winning the AI war</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3864px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="auUpUy6U6cXc7AVxGRhSUG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/auUpUy6U6cXc7AVxGRhSUG.jpg" mos="" align="middle" fullscreen="" width="3864" height="2174" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>After <a href="https://blog.google/company-news/inside-google/company-announcements/weve-acquired-motorola-mobility/"><u>Google acquired Motorola Mobility</u></a> in 2011, speculation grew that Google might favor its own hardware division over its partners. And rumors started to swirl for a time that Samsung might pivot from Android to its own Tizen as the OS of choice. </p><p>But while Samsung did show off a prototype Galaxy S4 running Tizen in 2014, it ultimately shelved any plans for ditching Android on phones and pivoted towards using the software on TVs.</p><p>So if that threat has passed, why is there still a need for Pixel phones? The short answer: AI.</p><p>“Google needs its devices division to act as a Gemini-first counterweight to Apple,” said Avi Greengart, founder and lead analyst for Techsponential. “Building your own hardware ensures that your OS remains in sync with component and form factor trends, and allows Google to release features to market on its timetable, not that of its partners.”</p><p>Even before ChatGPT was a household name, Google started to pioneer key AI features that would find their way to other Android phones (and in some cases copied by the iPhone). For example, the Pixel 6 in 2021 introduced Magic Eraser for removing unwanted objects from your phones. This would not have been possible without Google’s own Tensor chip.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5967px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="5gUyumkGRvTWmPAntEeVGF" name="shutterstock_2536325833-2" alt="Gemini Live" src="https://cdn.mos.cms.futurecdn.net/5gUyumkGRvTWmPAntEeVGF.jpg" mos="" align="middle" fullscreen="" width="5967" height="3356" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Gemini Live </span><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/reviews/google-pixel-7">Pixel 7</a> gave us <a href="https://www.tomsguide.com/news/google-pixel-7-photo-unblur">Photo Unblur</a> and <a href="https://www.tomsguide.com/news/google-pixel-6-how-tensor-puts-an-end-to-customer-service-call-hell">Direct My Call</a> for navigating byzantine phone menus, and the Pixel 9 gave us Gemini Live for the first time for real-time continuous voice interaction.</p><p>In short, Google needs to demonstrate that it continues to be at the forefront of AI on phones, especially when its partners have other options. For example, the latest Galaxy <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-review">S26</a> series and <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-review-wide-for-the-win">Fold 8</a> series supports both Gemini and Perplexity.</p><p>“I think Google has found the right formula from a hardware perspective and the value of Gemini is definitely strengthening the offering,” said Carolina Milanesi, president and principal analyst for Creative Strategies. “It is also about owning the core piece of the product portfolio that consumers will own going forward.”</p><h2 id="how-the-pixel-11-can-stand-out">How the Pixel 11 can stand out</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5328px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7sZnUxtk8wYDiSM87VdfrG" name="Google Pixel 10 review" alt="Google Pixel 10 in the hand." src="https://cdn.mos.cms.futurecdn.net/7sZnUxtk8wYDiSM87VdfrG.jpg" mos="" align="middle" fullscreen="" width="5328" height="2997" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / John Velasco)</span></figcaption></figure><p>With the <a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2026-preview-pixel-11-pixel-watch-5-pixel-tag-and-more">Made by Google event</a> coming up on August 12th, Google is launching four new Pixel phones: the Pixel 11, Pixel 11 Pro, Pixel 11 Pro XL and Pixel 11 Pro Fold.</p><p>That’s quite a robust lineup for a company that’s still seen as a fairly small player. But Google doesn’t need to beat Apple and Samsung to succeed.</p><p>“Pixel gives Google the opportunity to show its full vision for what an AI-native smartphone experience can be,” Greengart said.</p><p>The Pixel 11 could very well be an AI powerhouse. It’s powered by a 2nm <a href="https://www.tomsguide.com/phones/google-pixel-phones/tensor-g6-chipset-could-give-the-pixel-11-the-biggest-security-upgrade-since-pixel-6-heres-how"><u>Tensor G6 chip</u></a> that will speed up Night Sight processing for low-light photos and other on-device AI tasks. And Google is showing off Gemini Proactive Assistance for proactively surfacing useful information, building on the potential of the previous Magic Cue feature.</p><div><blockquote><p>"Pixel gives Google the opportunity to show its full vision for what an AI-native smartphone experience can be."</p><p>— Avi Greengart, Techsponential</p></blockquote></div><p>In addition, the Pixel 11 Pro features a new <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-11-just-leaked-via-amazon-heres-the-specs-colors-and-obligatory-price-hike"><u>HiLight LED</u></a> on the back of the phone that lights up in different color patterns when you’re interacting with Gemini when the phone is face down. It will also serve as an ambient call and notification indicator. But I fear this may come off as gimmicky, similar to the temperature sensor on previous Pixels.</p><h2 id="is-google-pushing-the-envelope-enough">Is Google pushing the envelope enough?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n2oiV5KuGBKxk9PobsRqHF" name="Pixel Fold-6.jpg" alt="Google Pixel Fold shown in hand" src="https://cdn.mos.cms.futurecdn.net/n2oiV5KuGBKxk9PobsRqHF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Pixel Fold </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While it’s clear that the Pixel 11 series will offer meaningful upgrades, the hardware hasn't evolved that much. And if the rumors prove true, Google is going to be missing the boat on a widescreen, passport-style foldable phone like the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-z-fold-8-review-wide-for-the-win"><u>Galaxy Z Fold 8</u></a> and <a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-rumors-everything-you-need-to-know-about-the-foldable-iphone"><u>iPhone Ultra</u></a>. </p><p>Google’s first foldable did indeed have a wide display, but it abandoned that form factor.</p><p>“This is going to be the hardest sell this year because of the attention Samsung has gotten with the Z Fold 8 and Apple will have,” Milanesi said. “That market is still small though and even more so for Google, so as long as they go to that form factor next year they will be ok.”</p><p>Google’s biggest problem is that it seems stuck between trying to trumpet the idealized version of a pure AI-first Android phone and not trying to irk its partners. After 10 years, Pixel has not quite broken through with the masses, but that could very well be a calculated decision.</p><p>“Google has not marketed itself strongly enough to become a household name in phones like Apple or Samsung,” Popal said. “Its industry leading features are only known to niche tech savvy consumers, and if it is to succeed with the Pixel 11 it has to pump up its overall marketing and channel presence.”</p><p>The question is whether Google really wants to.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ChatGPT can do more for you than ever — and I use these 5 prompts to take everyday tasks off my plate ]]></title>
                                                                                                <dc:content><![CDATA[ <p>ChatGPT definitely gets top billing for me whenever I need a chatbot that handles my research, productivity and planning needs.</p><p>And over time, I’ve been treated to new and improved versions of the chatbot’s models that boost its intelligence and sense of reasoning. The initial preview and rollout of the improved ChatGPT models (GPT-5.6 Sol and GPT-5.6 Luna) has pushed OpenAI’s chatbot to an even more impressive level when it comes to generating stronger responses. Alongside those model enhancements, ChatGPT has become so much better at remembering context from previous conversations, handling more complex topics, <a href="https://www.tomsguide.com/ai/i-let-chatgpt-gemini-and-alexa-shop-my-kids-back-to-school-supplies-only-one-got-it-right">carrying outs multi-step tasks</a>, fulfilling everyday tasks via <a href="https://www.tomsguide.com/news/chatgpt-is-taking-over-the-internet-with-plugins-what-it-means-for-you">Plugins</a> and conducting more objectives with its Voice feature.</p><p>It’s gotten to the point where ChatGPT has evolved to the point where it’s not just good for answering your most basic questions — it can complete all sorts of objectives from users who give it the proper delegation and steps.</p><p>With ChatGPT’s most recent updates in mind, I’ve grown accustomed to putting it through its paces by tapping into these five prompts to make it work more efficiently. And I’m always satisfied with the results that come from my daily interactions with it.</p><h2 id="taking-advantage-of-chatgpt-s-latest-evolved-state">Taking advantage of ChatGPT’s latest evolved state</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Dqc8NS6HUjodtNzUr65ShK" name="shutterstock_2740839527-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/Dqc8NS6HUjodtNzUr65ShK.jpg" mos="" align="middle" fullscreen="" width="7008" height="3942" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The following five prompts I’ve gotten used to sharing with ChatGPT to make my everyday tasks easier to deal with are as follows:</p><ul><li><strong>Plan my day: </strong><em>Here’s everything I need to get done today: [list]. Organize it into the most efficient schedule possible. Prioritize what matters most, group similar tasks together, estimate how long each will take, and build in realistic breaks. If anything can be delegated, automated, batched, or eliminated, flag it.</em></li><li><strong>Research something for me: </strong><em>I need to make a decision about [topic]. Research the most important information I need to know, compare the available options, identify the key trade-offs, and give me a clear recommendation. Don’t just summarize—do the legwork and tell me what you would choose and why.</em></li><li><strong>Turn a messy task into a checklist: </strong><em>I need to accomplish [goal], but I don’t want to figure out all the steps myself. Break this into a complete, step-by-step checklist in the correct order. Include anything I might overlook, tell me what I can prepare in advance, and mark which steps you can help me complete.</em></li><li><strong>Compare my options: </strong><em>I’m deciding between [option A], [option B], and [option C]. Do the comparison for me. Evaluate them based on [budget/time/quality/convenience/etc.], identify the biggest pros and cons of each, point out anything I’m overlooking, and recommend the best option for my situation.</em></li><li><strong>Make a plan for me: </strong><em>I want to [goal] by [date]. Build the entire plan for me. Work backward from the deadline, divide it into manageable milestones, tell me exactly what I should do each week/day, and identify anything I should do now to make the rest easier.</em></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4710px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="uDZCYEiu3J6MWysdamLJNG" name="shutterstock_2342006523-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/uDZCYEiu3J6MWysdamLJNG.jpg" mos="" align="middle" fullscreen="" width="4710" height="2649" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The final prompt has done a lot of great work for me on an everyday basis — from basic goals like trying to increase my weekly record of walking steps to bigger ones such as finding my first apartment in New York, ChatGPT has excelled at laying out the proper steps I need to take to see them to successful completion.</p><p>When I needed it to map out my plan for achieving my goal of building a gaming PC by January 2027, it put me on the right path with an easy-to-follow roadmap. It also listed the best target configuration for my future gaming PC, a master plan for me to stick to for the next six months, detailed phases for the proceeding days/weeks/months, the biggest strategic decision I should make and my ideal timeline. </p><p>This final statement from ChatGPT put me in the right mindset to accomplish my latest gaming-related goal: <em>The smartest version of this project is therefore not "find the best PC today." It's "position yourself to buy the best PC for your money in November. </em>The custom (albeit expensive) gaming PC configuration the chatbot put in front of me is as follows:</p><ul><li><strong>CPU: High-end AMD X3D chip (an AMD Ryzen 7 9800X3D)</strong></li><li><strong>GPU: RTX 5090-class or best-value successor/alternative</strong></li><li><strong>Motherboard: Quality AM5 board with Wi-Fi (an AMD X870E)</strong></li><li><strong>RAM: 32GB minimum; 64GB preferred (a DDR5 6000 CL30)</strong></li><li><strong>Storage: 2TB NVMe minimum; 4TB ideal (a Gen 5 NVMe)</strong></li><li><strong>PSU: 1000W–1200W quality Gold/Platinum (a 1200W 80+ Platinum PSU)</strong></li><li><strong>Cooling: High-end air cooler or 360mm AIO</strong></li><li><strong>Case: High-airflow ATX case</strong></li><li><strong>OS: Windows 11</strong></li><li><strong>Monitor: 4K 240Hz OLED if budget allows (an ASUS ROG Swift OLED PG32UCDM Gen3)</strong></li></ul><h2 id="the-takeaway-6">The takeaway</h2><p>ChatGPT has come in a bunch of evolved forms that respond with more thoughtful answers and the capacity to tackle intricate requests with multiple steps. The five prompts I’ve made a permanent part of my reusable prompt library are tailor-made for the chatbot’s most improved models to date. Transforming the chatbot into an assistant and a critical agent that can help me do deep research, create step-by-step plans, plan my day and more has become an integral part of my life.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/im-a-former-personal-trainer-and-this-ai-fitness-app-is-surprisingly-legit" target="_blank">I’m a former personal trainer — and this AI fitness app is surprisingly legit</a></li><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-to-recommend-the-best-books-based-on-my-favorites-for-national-book-lovers-day-these-10-picks-made-the-final-cut" target="_blank">I asked ChatGPT to recommend the best books based on my favorites for National Book Lovers Day — these 10 picks made the final cut</a></li><li><a href="https://www.tomsguide.com/ai/adobe-just-supercharged-chatgpts-creative-powers-these-10-prompts-show-what-the-new-plugin-can-do" target="_blank">Adobe just supercharged ChatGPT’s creative powers — these 10 prompts show what the new plugin can do</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/chatgpt-can-do-more-for-you-than-ever-and-i-use-these-5-prompts-to-take-everyday-tasks-off-my-plate</link>
                                                                            <description>
                            <![CDATA[ Thanks to the latest ChatGPT updates via 5.6 Sol and 5.6 Luna, OpenAI’s signature chatbot has become even more serviceable with these five prompts. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XymLGj7qtMrvmJnBhyDk9Z</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ewXTQb95DUJSNvv8CHVXyi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 09:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ewXTQb95DUJSNvv8CHVXyi-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[chatgpt 5.6 sol]]></media:description>                                                            <media:text><![CDATA[chatgpt 5.6 sol]]></media:text>
                                <media:title type="plain"><![CDATA[chatgpt 5.6 sol]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ewXTQb95DUJSNvv8CHVXyi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>ChatGPT definitely gets top billing for me whenever I need a chatbot that handles my research, productivity and planning needs.</p><p>And over time, I’ve been treated to new and improved versions of the chatbot’s models that boost its intelligence and sense of reasoning. The initial preview and rollout of the improved ChatGPT models (GPT-5.6 Sol and GPT-5.6 Luna) has pushed OpenAI’s chatbot to an even more impressive level when it comes to generating stronger responses. Alongside those model enhancements, ChatGPT has become so much better at remembering context from previous conversations, handling more complex topics, <a href="https://www.tomsguide.com/ai/i-let-chatgpt-gemini-and-alexa-shop-my-kids-back-to-school-supplies-only-one-got-it-right">carrying outs multi-step tasks</a>, fulfilling everyday tasks via <a href="https://www.tomsguide.com/news/chatgpt-is-taking-over-the-internet-with-plugins-what-it-means-for-you">Plugins</a> and conducting more objectives with its Voice feature.</p><p>It’s gotten to the point where ChatGPT has evolved to the point where it’s not just good for answering your most basic questions — it can complete all sorts of objectives from users who give it the proper delegation and steps.</p><p>With ChatGPT’s most recent updates in mind, I’ve grown accustomed to putting it through its paces by tapping into these five prompts to make it work more efficiently. And I’m always satisfied with the results that come from my daily interactions with it.</p><h2 id="taking-advantage-of-chatgpt-s-latest-evolved-state">Taking advantage of ChatGPT’s latest evolved state</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7008px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Dqc8NS6HUjodtNzUr65ShK" name="shutterstock_2740839527-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/Dqc8NS6HUjodtNzUr65ShK.jpg" mos="" align="middle" fullscreen="" width="7008" height="3942" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The following five prompts I’ve gotten used to sharing with ChatGPT to make my everyday tasks easier to deal with are as follows:</p><ul><li><strong>Plan my day: </strong><em>Here’s everything I need to get done today: [list]. Organize it into the most efficient schedule possible. Prioritize what matters most, group similar tasks together, estimate how long each will take, and build in realistic breaks. If anything can be delegated, automated, batched, or eliminated, flag it.</em></li><li><strong>Research something for me: </strong><em>I need to make a decision about [topic]. Research the most important information I need to know, compare the available options, identify the key trade-offs, and give me a clear recommendation. Don’t just summarize—do the legwork and tell me what you would choose and why.</em></li><li><strong>Turn a messy task into a checklist: </strong><em>I need to accomplish [goal], but I don’t want to figure out all the steps myself. Break this into a complete, step-by-step checklist in the correct order. Include anything I might overlook, tell me what I can prepare in advance, and mark which steps you can help me complete.</em></li><li><strong>Compare my options: </strong><em>I’m deciding between [option A], [option B], and [option C]. Do the comparison for me. Evaluate them based on [budget/time/quality/convenience/etc.], identify the biggest pros and cons of each, point out anything I’m overlooking, and recommend the best option for my situation.</em></li><li><strong>Make a plan for me: </strong><em>I want to [goal] by [date]. Build the entire plan for me. Work backward from the deadline, divide it into manageable milestones, tell me exactly what I should do each week/day, and identify anything I should do now to make the rest easier.</em></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4710px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="uDZCYEiu3J6MWysdamLJNG" name="shutterstock_2342006523-2" alt="chatgpt" src="https://cdn.mos.cms.futurecdn.net/uDZCYEiu3J6MWysdamLJNG.jpg" mos="" align="middle" fullscreen="" width="4710" height="2649" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The final prompt has done a lot of great work for me on an everyday basis — from basic goals like trying to increase my weekly record of walking steps to bigger ones such as finding my first apartment in New York, ChatGPT has excelled at laying out the proper steps I need to take to see them to successful completion.</p><p>When I needed it to map out my plan for achieving my goal of building a gaming PC by January 2027, it put me on the right path with an easy-to-follow roadmap. It also listed the best target configuration for my future gaming PC, a master plan for me to stick to for the next six months, detailed phases for the proceeding days/weeks/months, the biggest strategic decision I should make and my ideal timeline. </p><p>This final statement from ChatGPT put me in the right mindset to accomplish my latest gaming-related goal: <em>The smartest version of this project is therefore not "find the best PC today." It's "position yourself to buy the best PC for your money in November. </em>The custom (albeit expensive) gaming PC configuration the chatbot put in front of me is as follows:</p><ul><li><strong>CPU: High-end AMD X3D chip (an AMD Ryzen 7 9800X3D)</strong></li><li><strong>GPU: RTX 5090-class or best-value successor/alternative</strong></li><li><strong>Motherboard: Quality AM5 board with Wi-Fi (an AMD X870E)</strong></li><li><strong>RAM: 32GB minimum; 64GB preferred (a DDR5 6000 CL30)</strong></li><li><strong>Storage: 2TB NVMe minimum; 4TB ideal (a Gen 5 NVMe)</strong></li><li><strong>PSU: 1000W–1200W quality Gold/Platinum (a 1200W 80+ Platinum PSU)</strong></li><li><strong>Cooling: High-end air cooler or 360mm AIO</strong></li><li><strong>Case: High-airflow ATX case</strong></li><li><strong>OS: Windows 11</strong></li><li><strong>Monitor: 4K 240Hz OLED if budget allows (an ASUS ROG Swift OLED PG32UCDM Gen3)</strong></li></ul><h2 id="the-takeaway-6">The takeaway</h2><p>ChatGPT has come in a bunch of evolved forms that respond with more thoughtful answers and the capacity to tackle intricate requests with multiple steps. The five prompts I’ve made a permanent part of my reusable prompt library are tailor-made for the chatbot’s most improved models to date. Transforming the chatbot into an assistant and a critical agent that can help me do deep research, create step-by-step plans, plan my day and more has become an integral part of my life.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/im-a-former-personal-trainer-and-this-ai-fitness-app-is-surprisingly-legit" target="_blank">I’m a former personal trainer — and this AI fitness app is surprisingly legit</a></li><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-to-recommend-the-best-books-based-on-my-favorites-for-national-book-lovers-day-these-10-picks-made-the-final-cut" target="_blank">I asked ChatGPT to recommend the best books based on my favorites for National Book Lovers Day — these 10 picks made the final cut</a></li><li><a href="https://www.tomsguide.com/ai/adobe-just-supercharged-chatgpts-creative-powers-these-10-prompts-show-what-the-new-plugin-can-do" target="_blank">Adobe just supercharged ChatGPT’s creative powers — these 10 prompts show what the new plugin can do</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I put ChatGPT on my Ray-Ban Meta glasses — and it completely changed how I used them ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I've used my Ray-Ban Meta display glasses for a lot of things like <a href="https://www.tomsguide.com/ai/i-went-shopping-wearing-the-ai-powered-meta-ray-bans-heres-what-i-love-and-what-annoyed-me">shopping</a> and watching the <a href="https://www.tomsguide.com/ai/i-wore-ray-ban-meta-display-smart-glasses-to-watch-the-super-bowl-halftime-show-and-understood-bad-bunny-in-real-time">Bad Bunny halftime show </a>earlier this year. I think they are great, except for one problem: I'm locked into Meta AI. </p><p>And while that's not necessarily a bad thing — after all, Meta AI was built specifically for the glasses and can use their camera to answer questions about whatever I'm looking at. But ChatGPT is the AI assistant I use far more often, so I started wondering what would happen if I could give ChatGPT the same view.</p><p>And this experiment may offer a glimpse at where ChatGPT is headed anyway. OpenAI is already working with former <a href="https://www.tomsguide.com/ai/openai-and-jony-ive-are-building-the-iphone-of-ai-heres-what-that-means-for-you">Apple design chief Jony Ive</a> on a new generation of AI hardware. Its first device is reportedly a portable, screenless assistant equipped with cameras and sensors that can understand what's happening around it, with several more devices said to be in development.</p><p>We don't know whether smart glasses will be one of them yet, but the direction highlights that OpenAI is thinking about a future where using ChatGPT doesn't necessarily mean pulling out your phone and opening an app.</p><p>I didn't want to wait for that, and with a rumored $300 price tag, I figured I might as well use what I already have: my Ray-Ban Meta glasses. </p><h2 id="how-i-got-chatgpt-vision-on-my-ray-bans">How I got ChatGPT Vision on my Ray-Bans</h2><p>To be clear, I didn't jailbreak my Ray-Bans or somehow replace Meta AI. Instead, I used my iPhone as a bridge between the camera on my glasses and ChatGPT.</p><p>The result was essentially ChatGPT with a pair of eyes. There are really two parts to making this work: voice and vision. For obvious reasons, voice is the easier half, and my main reason for wanting to do this experiment. I prefer the new <a href="https://www.tomsguide.com/ai/i-compared-chatgpts-voice-vs-text-modes-side-by-side-and-the-results-will-change-how-you-use-ai">ChatGPT Voice</a>. </p><p>Ray-Ban Meta glasses connect to an iPhone over Bluetooth and can already handle audio from calls, music and other apps. That means I can run ChatGPT on my iPhone while using the glasses to hear its responses.</p><p>Vision takes a little more work. <a href="https://developers.meta.com/blog/introducing-meta-wearables-device-access-toolkit/" target="_blank">Meta's Wearables Device Access Toolkit</a> gives developers access to features on compatible Meta glasses, including their first-person camera. That creates a way for an iPhone app to receive images from the glasses rather than relying on the iPhone's own camera.</p><h2 id="my-iphone-effectively-became-the-middleman">My iPhone effectively became the middleman.</h2><p>The setup looked something like this: </p><p><strong>Ray-Ban camera > iPhone > ChatGPT > Ray-Ban speakers</strong></p><p>When I wanted ChatGPT to see something, the app could capture an image from the glasses' point of view and send it along with my question to ChatGPT. ChatGPT could then analyze what I was looking at and respond through the glasses. It's slower, no doubt, and the iPhone is doing a lot of work behind the scenes, but it gets the job done. </p><p>Let me be extra clear here: I didn't install ChatGPT directly on the Ray-Bans, and saying "Hey Meta" doesn't suddenly summon ChatGPT. But once the phone was back in my pocket, it started to feel surprisingly close to having ChatGPT glasses. </p><h2 id="i-asked-the-same-questions-to-both-ais">I asked the same questions to both AIs</h2><p>Using ChatGPT on a phone requires a deliberate action. I have to take out my phone, open the app and point the camera at something before I can ask about it.</p><p>With glasses, the camera is already looking wherever I'm looking. Instead of taking a picture of something I didn't recognize, I could simply look at it and ask about it. I could look at a product and ask ChatGPT what it thought. I could have it read something in front of me and then ask a follow-up question.</p><h3 class="article-body__section" id="section-1-the-grocery-store-test"><span>1. The grocery store test</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tPvTv5cBzyLbPW9wMvhD23" name="8 - 2026-08-10T135727.068" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/tPvTv5cBzyLbPW9wMvhD23.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>My first test was something I've done before with Ray-Ban Meta glasses and ChatGPT seperately, but putting them together was interesting. I started by taking two similar products (Pringles and Cape Cod Potato Chips) and asking both AIs to help me choose between them.</p><p>I've used the <a href="https://www.tomsguide.com/ai/i-stopped-weighing-my-food-and-used-ray-ban-meta-glasses-to-track-calories-instead">Meta Ray-Bans with food</a> before, but I wanted to see what ChatGPT could do. They both gave me the same answer but with slightly different presentation. Meta added "if you want..." while ChatGPT was more definitive. If I'm asking for advice, I want a response with clear direction. </p><h3 class="article-body__section" id="section-2-the-what-am-i-looking-at-test"><span>2. The 'what am I looking at?' test</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zGprWtxyXWxKnS5dYHevQV" name="8 - 2026-08-10T140840.199" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/zGprWtxyXWxKnS5dYHevQV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This test really showed the difference between Meta AI and ChatGPT in an unexpected way. I showed both AIs my chonky orange tabby cat, but ChatGPT already knew his name, Jolly. Because of ChatGPT Memory already locked in from hundreds of queries, ChatGPT knows more about me than Meta AI. </p><h2 id="3-the-reading-test">3. The reading test</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nhM6kfFq6XvwBEfrWkfBmk" name="8 - 2026-08-10T142528.400" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/nhM6kfFq6XvwBEfrWkfBmk.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>ChatGPT's voice and responses are much more friendlier and feel like I'm talking to someone who actually knows me. Meta typically gets straight to the point and offers zero fluff within the conversation. <br><br>That's a personal preference, for sure. But for me, I much prefer ChatGPT for even the most boring tasks. </p><h2 id="meta-ai-has-one-enormous-advantage">Meta AI has one enormous advantage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9WURzTBi2fqG6U23Dy9FRM" name="Meta Ray-Ban Gen 2--04" alt="A front view of Meta Ray-Ban (gen 2) smart glasses" src="https://cdn.mos.cms.futurecdn.net/9WURzTBi2fqG6U23Dy9FRM.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There's no getting around this: Meta AI belongs on these glasses. The integration is cleaner because Meta controls everything.</p><p>The camera, microphones, speakers, wake word and AI were designed to work together. I can say "Hey Meta," ask something about what I'm seeing and get an answer without thinking about what is happening behind the scenes.</p><p>My ChatGPT setup has an iPhone sitting invisibly in the middle of the process.</p><p>That introduces more steps and more opportunities for something to go wrong. There can be latency issues and the connection can be finicky. There are things Meta can do with its own hardware that my experiment simply can't reproduce.</p><p>If all I cared about was getting the fastest possible answer to "What am I looking at?", Meta AI would be very difficult to beat.</p><p>But that's not really why I wanted ChatGPT on my glasses. ChatGPT gave me something different with an overall friendlier vibe. Have ChatGPT as a wearable and not on my phone was a game changer to the point I wish I had tried this much sooner. </p><h2 id="the-real-takeaway">The real takeaway </h2><p>The bottom line for me with this experiment is that I finally got to experience what glasses with a different AI felt like. We're moving toward a world filled with AI hardware: glasses, earbuds, watches, pins and entirely new categories of devices.</p><p>OpenAI's work with Jony Ive suggests it is thinking seriously about what ChatGPT looks like when it escapes the screen. Meta is already there with Ray-Ban Meta.</p><p>But there's another question I think is going to become important: Why should buying a piece of hardware determine which AI assistant I have to use? I'd love to open the settings for my glasses someday and be able to default to any given AI assistant. I'd even like to see Alexa+ on glasses! </p><p>And while that's not how Ray-Ban Meta works today, and my setup isn't nearly as seamless as choosing ChatGPT from a menu, having a choice at all feels like the next step.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-put-chatgpt-on-my-ray-ban-meta-glasses-and-it-completely-changed-how-i-used-them</link>
                                                                            <description>
                            <![CDATA[ I connected ChatGPT  to my Ray-Ban Meta glasses to see if it could replace Meta AI. Here's how it worked and what surprised me. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nirZEat69YbkVdrdjMEZJE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/tf9FazKwMRWvterzUYDFh3-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Tue, 11 Aug 2026 05:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 11 Aug 2026 15:25:53 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/tf9FazKwMRWvterzUYDFh3-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Amanda Caswell wearing Ray Ban Meta Display glasses]]></media:description>                                                            <media:text><![CDATA[Amanda Caswell wearing Ray Ban Meta Display glasses]]></media:text>
                                <media:title type="plain"><![CDATA[Amanda Caswell wearing Ray Ban Meta Display glasses]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/tf9FazKwMRWvterzUYDFh3-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I've used my Ray-Ban Meta display glasses for a lot of things like <a href="https://www.tomsguide.com/ai/i-went-shopping-wearing-the-ai-powered-meta-ray-bans-heres-what-i-love-and-what-annoyed-me">shopping</a> and watching the <a href="https://www.tomsguide.com/ai/i-wore-ray-ban-meta-display-smart-glasses-to-watch-the-super-bowl-halftime-show-and-understood-bad-bunny-in-real-time">Bad Bunny halftime show </a>earlier this year. I think they are great, except for one problem: I'm locked into Meta AI. </p><p>And while that's not necessarily a bad thing — after all, Meta AI was built specifically for the glasses and can use their camera to answer questions about whatever I'm looking at. But ChatGPT is the AI assistant I use far more often, so I started wondering what would happen if I could give ChatGPT the same view.</p><p>And this experiment may offer a glimpse at where ChatGPT is headed anyway. OpenAI is already working with former <a href="https://www.tomsguide.com/ai/openai-and-jony-ive-are-building-the-iphone-of-ai-heres-what-that-means-for-you">Apple design chief Jony Ive</a> on a new generation of AI hardware. Its first device is reportedly a portable, screenless assistant equipped with cameras and sensors that can understand what's happening around it, with several more devices said to be in development.</p><p>We don't know whether smart glasses will be one of them yet, but the direction highlights that OpenAI is thinking about a future where using ChatGPT doesn't necessarily mean pulling out your phone and opening an app.</p><p>I didn't want to wait for that, and with a rumored $300 price tag, I figured I might as well use what I already have: my Ray-Ban Meta glasses. </p><h2 id="how-i-got-chatgpt-vision-on-my-ray-bans">How I got ChatGPT Vision on my Ray-Bans</h2><p>To be clear, I didn't jailbreak my Ray-Bans or somehow replace Meta AI. Instead, I used my iPhone as a bridge between the camera on my glasses and ChatGPT.</p><p>The result was essentially ChatGPT with a pair of eyes. There are really two parts to making this work: voice and vision. For obvious reasons, voice is the easier half, and my main reason for wanting to do this experiment. I prefer the new <a href="https://www.tomsguide.com/ai/i-compared-chatgpts-voice-vs-text-modes-side-by-side-and-the-results-will-change-how-you-use-ai">ChatGPT Voice</a>. </p><p>Ray-Ban Meta glasses connect to an iPhone over Bluetooth and can already handle audio from calls, music and other apps. That means I can run ChatGPT on my iPhone while using the glasses to hear its responses.</p><p>Vision takes a little more work. <a href="https://developers.meta.com/blog/introducing-meta-wearables-device-access-toolkit/" target="_blank">Meta's Wearables Device Access Toolkit</a> gives developers access to features on compatible Meta glasses, including their first-person camera. That creates a way for an iPhone app to receive images from the glasses rather than relying on the iPhone's own camera.</p><h2 id="my-iphone-effectively-became-the-middleman">My iPhone effectively became the middleman.</h2><p>The setup looked something like this: </p><p><strong>Ray-Ban camera > iPhone > ChatGPT > Ray-Ban speakers</strong></p><p>When I wanted ChatGPT to see something, the app could capture an image from the glasses' point of view and send it along with my question to ChatGPT. ChatGPT could then analyze what I was looking at and respond through the glasses. It's slower, no doubt, and the iPhone is doing a lot of work behind the scenes, but it gets the job done. </p><p>Let me be extra clear here: I didn't install ChatGPT directly on the Ray-Bans, and saying "Hey Meta" doesn't suddenly summon ChatGPT. But once the phone was back in my pocket, it started to feel surprisingly close to having ChatGPT glasses. </p><h2 id="i-asked-the-same-questions-to-both-ais">I asked the same questions to both AIs</h2><p>Using ChatGPT on a phone requires a deliberate action. I have to take out my phone, open the app and point the camera at something before I can ask about it.</p><p>With glasses, the camera is already looking wherever I'm looking. Instead of taking a picture of something I didn't recognize, I could simply look at it and ask about it. I could look at a product and ask ChatGPT what it thought. I could have it read something in front of me and then ask a follow-up question.</p><h3 class="article-body__section" id="section-1-the-grocery-store-test"><span>1. The grocery store test</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tPvTv5cBzyLbPW9wMvhD23" name="8 - 2026-08-10T135727.068" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/tPvTv5cBzyLbPW9wMvhD23.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>My first test was something I've done before with Ray-Ban Meta glasses and ChatGPT seperately, but putting them together was interesting. I started by taking two similar products (Pringles and Cape Cod Potato Chips) and asking both AIs to help me choose between them.</p><p>I've used the <a href="https://www.tomsguide.com/ai/i-stopped-weighing-my-food-and-used-ray-ban-meta-glasses-to-track-calories-instead">Meta Ray-Bans with food</a> before, but I wanted to see what ChatGPT could do. They both gave me the same answer but with slightly different presentation. Meta added "if you want..." while ChatGPT was more definitive. If I'm asking for advice, I want a response with clear direction. </p><h3 class="article-body__section" id="section-2-the-what-am-i-looking-at-test"><span>2. The 'what am I looking at?' test</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zGprWtxyXWxKnS5dYHevQV" name="8 - 2026-08-10T140840.199" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/zGprWtxyXWxKnS5dYHevQV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This test really showed the difference between Meta AI and ChatGPT in an unexpected way. I showed both AIs my chonky orange tabby cat, but ChatGPT already knew his name, Jolly. Because of ChatGPT Memory already locked in from hundreds of queries, ChatGPT knows more about me than Meta AI. </p><h2 id="3-the-reading-test">3. The reading test</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nhM6kfFq6XvwBEfrWkfBmk" name="8 - 2026-08-10T142528.400" alt="screenshot" src="https://cdn.mos.cms.futurecdn.net/nhM6kfFq6XvwBEfrWkfBmk.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>ChatGPT's voice and responses are much more friendlier and feel like I'm talking to someone who actually knows me. Meta typically gets straight to the point and offers zero fluff within the conversation. <br><br>That's a personal preference, for sure. But for me, I much prefer ChatGPT for even the most boring tasks. </p><h2 id="meta-ai-has-one-enormous-advantage">Meta AI has one enormous advantage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9WURzTBi2fqG6U23Dy9FRM" name="Meta Ray-Ban Gen 2--04" alt="A front view of Meta Ray-Ban (gen 2) smart glasses" src="https://cdn.mos.cms.futurecdn.net/9WURzTBi2fqG6U23Dy9FRM.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There's no getting around this: Meta AI belongs on these glasses. The integration is cleaner because Meta controls everything.</p><p>The camera, microphones, speakers, wake word and AI were designed to work together. I can say "Hey Meta," ask something about what I'm seeing and get an answer without thinking about what is happening behind the scenes.</p><p>My ChatGPT setup has an iPhone sitting invisibly in the middle of the process.</p><p>That introduces more steps and more opportunities for something to go wrong. There can be latency issues and the connection can be finicky. There are things Meta can do with its own hardware that my experiment simply can't reproduce.</p><p>If all I cared about was getting the fastest possible answer to "What am I looking at?", Meta AI would be very difficult to beat.</p><p>But that's not really why I wanted ChatGPT on my glasses. ChatGPT gave me something different with an overall friendlier vibe. Have ChatGPT as a wearable and not on my phone was a game changer to the point I wish I had tried this much sooner. </p><h2 id="the-real-takeaway">The real takeaway </h2><p>The bottom line for me with this experiment is that I finally got to experience what glasses with a different AI felt like. We're moving toward a world filled with AI hardware: glasses, earbuds, watches, pins and entirely new categories of devices.</p><p>OpenAI's work with Jony Ive suggests it is thinking seriously about what ChatGPT looks like when it escapes the screen. Meta is already there with Ray-Ban Meta.</p><p>But there's another question I think is going to become important: Why should buying a piece of hardware determine which AI assistant I have to use? I'd love to open the settings for my glasses someday and be able to default to any given AI assistant. I'd even like to see Alexa+ on glasses! </p><p>And while that's not how Ray-Ban Meta works today, and my setup isn't nearly as seamless as choosing ChatGPT from a menu, having a choice at all feels like the next step.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/openais-head-of-ethics-just-quit-heres-why-chatgpt-users-should-pay-attention">OpenAI’s head of ethics just quit — here’s why ChatGPT users should pay attention</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Adobe just supercharged ChatGPT’s creative powers — these 10 prompts show what the new plugin can do ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It seems like every other week ChatGPT’s vault of plugins expands to include even more useful apps that make all of life’s assorted tasks easier to handle.</p><p>For me, the Apple Music plugin has given me a bunch of playlists that have made my search for new artists and songs less arduous. The Etsy plugin has highlighted all sorts of custom-made items that are now adorning my walls and…well, my body (prompting a search for new vintage tees has been fun). And activating the Ticketmaster plugin to find the best ticket prices for upcoming events in my area has proven to be another way that ChatGPT’s plugins simplify the search for ways to enjoy my recreational activities.</p><p>For visual artists who spend hours creating and editing pictures and videos across Adobe’s creative suite, you’ll be pleased to know that those tools are more easily accessible in ChatGPT.</p><p>Via the new all-in-one Adobe plugin, ChatGPT’s creative powers have reached an even more impressive level. With that in mind, here are 10 prompts you can put to use to take advantage of this feature-rich plugin.</p><h2 id="prompting-your-images-and-videos-into-their-most-refined-form">Prompting your images and videos into their most refined form</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V77bArsveS5yykV689fxca" name="shutterstock_2603658287-2" alt="adobe ai" src="https://cdn.mos.cms.futurecdn.net/V77bArsveS5yykV689fxca.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Just like the rest of ChatGPT’s plugins, you can access it by opening the sidebar through either the desktop or mobile version of the chatbot, clicking on “Plugins” (if you don’t see it initially, click on “More” to make it visible) and searching for “Adobe” through the “Search plugins” bar. You’ll know you’ve found the right plugin when you click the “+” next to the Adobe icon with the iconic red logo on a black background.</p><p>Keep in mind that you’ll need an Adobe Creative Cloud subscription to use the full range of ChatGPT’s Adobe plugin. You can also use the Adobe plugin as a guest, but you won’t be able to take advantage of the full gamut of its creative abilities. Once you’ve logged in with your Adobe account, you’ll get access to a bundled assortment of over 70 tools from Adobe’s many creative outlets. Those outlets include Photoshop, Firefly, Premiere, Acrobat, Lightroom, Illustrator, InDesign, Adobe Express and Adobe Stock.</p><p>Directly interacting with the plugin for your picture and video creation/editing needs is done by typing @Adobe directly into the prompt field. Attaching your chosen notes/data-filled document, picture or video file alongside your Adobe-themed requests is key. For example, getting your request fulfilled to turn a lengthy video into YouTube Shorts-targeted content is done via Adobe’s Quick Cut tool.</p><p>To get a sample of its abilities, try out any or all of the following ChatGPT-generated prompts to see what it’s truly capable of:</p><ul><li><strong>Turn rough ideas into polished social graphics: </strong><em>Create three Instagram carousel concepts promoting a coffee shop's fall menu. Use warm autumn colors, modern typography, and leave room for my logo. Make each concept feel distinct.</em></li><li><strong>Remove distractions from photos: </strong><em>Clean up this photo by removing background distractions, improving the lighting, and making it look like it was taken by a professional photographer.</em></li><li><strong>Turn notes into a polished presentation: </strong><em>Transform these notes into a polished 10-slide presentation. Create a clean, modern visual style with strong slide hierarchy, concise text, professional layouts, relevant icons or visuals, and consistent typography. Organize the information into a logical narrative, giving each slide a clear purpose and headline. Keep the design professional and presentation-ready, with enough visual variety to avoid repetitive slides.</em></li><li><strong>Build a complete mood board: </strong><em>Create a mood board for a luxury home office inspired by Scandinavian design using neutral colors, wood textures, and minimal decor.</em></li><li><strong>Redesign a logo: </strong><em>Modernize this logo while preserving its core identity and recognizability. Create three distinct design directions: one minimalist and clean, one premium and sophisticated, and one playful and contemporary. Keep the original brand name and essential visual elements intact while refining the typography, proportions, and overall visual polish. Make each variation feel like a credible, professional logo that could be used across digital and print materials.</em></li><li><strong>Create a cinematic trailer: </strong><em>Turn this footage into a cinematic 30- to 60-second movie-style trailer. Select the strongest visual moments, create dramatic pacing with purposeful cuts, build tension toward a compelling climax, and use cinematic transitions and title cards to give it the feel of a professional film trailer. Keep the edit visually cohesive and leave clear opportunities for music, sound effects, and additional title text.</em></li><li><strong>Repurpose long videos: </strong><em>Turn this uploaded 20-minute video into five short-form videos, each with a strong opening, fast pacing, and a clear standalone moment. Keep each video optimized for vertical viewing.</em></li><li><strong>Make a highlight reel: </strong><em>Find the most visually engaging moments from this video and create a one-minute highlight reel optimized for Instagram Reels. Prioritize moments with strong visual action and variety.</em></li><li><strong>Create short-form video edits: </strong><em>Turn this footage into a punchy 30-second vertical video optimized for TikTok. Select the strongest moments, use dynamic cuts and varied pacing to maintain attention, and add clean, easy-to-read captions where appropriate. Use subtle zooms and transitions to emphasize key moments without making the edit feel distracting or overproduced. Structure the video with an attention-grabbing opening and a satisfying ending.</em></li><li><strong>PDF Creation: </strong><em>Turn this data into a clean, professional PDF table with clear column headings, consistent spacing, and an easy-to-read layout</em>.</li></ul><h2 id="bottom-line-11">Bottom line</h2><p>With the unified Adobe ChatGPT plugin comes a creator’s dream suite that transforms OpenAI’s chatbot into your personal creative director. Image retouching, video editing, PDF creation, color correction and more are just a few of the assignments you can present to the Adobe plugin for your future creative needs. Even though this newly added plugin is great for handling simpler creative duties, it doesn’t fully replace Adobe’s classic vault of features for more complex, detailed creative objectives.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/ai-gone-wild-what-recent-rogue-ai-really-means" target="_blank">AI gone wild: What recent ‘rogue AI’ really means</a></li><li><a href="https://www.tomsguide.com/ai/claude/i-built-a-claude-agent-to-manage-my-inbox-and-it-changed-how-i-handle-email" target="_blank">I built a Claude agent to manage my inbox — and it changed how I handle email</a></li><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/adobe-just-supercharged-chatgpts-creative-powers-these-10-prompts-show-what-the-new-plugin-can-do</link>
                                                                            <description>
                            <![CDATA[ Thanks to the new all-in-one Adobe plugin for ChatGPT, producing and revising visual content just got even better—these 10 prompts showcase its abilities. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DgxoEjNXeuUPx7VaMMewUN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9xYfsQFwma2xdW6mxDz3PP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 10 Aug 2026 16:11:02 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Aug 2026 14:28:17 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9xYfsQFwma2xdW6mxDz3PP-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[adobe chatgpt]]></media:description>                                                            <media:text><![CDATA[adobe chatgpt]]></media:text>
                                <media:title type="plain"><![CDATA[adobe chatgpt]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9xYfsQFwma2xdW6mxDz3PP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It seems like every other week ChatGPT’s vault of plugins expands to include even more useful apps that make all of life’s assorted tasks easier to handle.</p><p>For me, the Apple Music plugin has given me a bunch of playlists that have made my search for new artists and songs less arduous. The Etsy plugin has highlighted all sorts of custom-made items that are now adorning my walls and…well, my body (prompting a search for new vintage tees has been fun). And activating the Ticketmaster plugin to find the best ticket prices for upcoming events in my area has proven to be another way that ChatGPT’s plugins simplify the search for ways to enjoy my recreational activities.</p><p>For visual artists who spend hours creating and editing pictures and videos across Adobe’s creative suite, you’ll be pleased to know that those tools are more easily accessible in ChatGPT.</p><p>Via the new all-in-one Adobe plugin, ChatGPT’s creative powers have reached an even more impressive level. With that in mind, here are 10 prompts you can put to use to take advantage of this feature-rich plugin.</p><h2 id="prompting-your-images-and-videos-into-their-most-refined-form">Prompting your images and videos into their most refined form</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V77bArsveS5yykV689fxca" name="shutterstock_2603658287-2" alt="adobe ai" src="https://cdn.mos.cms.futurecdn.net/V77bArsveS5yykV689fxca.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Just like the rest of ChatGPT’s plugins, you can access it by opening the sidebar through either the desktop or mobile version of the chatbot, clicking on “Plugins” (if you don’t see it initially, click on “More” to make it visible) and searching for “Adobe” through the “Search plugins” bar. You’ll know you’ve found the right plugin when you click the “+” next to the Adobe icon with the iconic red logo on a black background.</p><p>Keep in mind that you’ll need an Adobe Creative Cloud subscription to use the full range of ChatGPT’s Adobe plugin. You can also use the Adobe plugin as a guest, but you won’t be able to take advantage of the full gamut of its creative abilities. Once you’ve logged in with your Adobe account, you’ll get access to a bundled assortment of over 70 tools from Adobe’s many creative outlets. Those outlets include Photoshop, Firefly, Premiere, Acrobat, Lightroom, Illustrator, InDesign, Adobe Express and Adobe Stock.</p><p>Directly interacting with the plugin for your picture and video creation/editing needs is done by typing @Adobe directly into the prompt field. Attaching your chosen notes/data-filled document, picture or video file alongside your Adobe-themed requests is key. For example, getting your request fulfilled to turn a lengthy video into YouTube Shorts-targeted content is done via Adobe’s Quick Cut tool.</p><p>To get a sample of its abilities, try out any or all of the following ChatGPT-generated prompts to see what it’s truly capable of:</p><ul><li><strong>Turn rough ideas into polished social graphics: </strong><em>Create three Instagram carousel concepts promoting a coffee shop's fall menu. Use warm autumn colors, modern typography, and leave room for my logo. Make each concept feel distinct.</em></li><li><strong>Remove distractions from photos: </strong><em>Clean up this photo by removing background distractions, improving the lighting, and making it look like it was taken by a professional photographer.</em></li><li><strong>Turn notes into a polished presentation: </strong><em>Transform these notes into a polished 10-slide presentation. Create a clean, modern visual style with strong slide hierarchy, concise text, professional layouts, relevant icons or visuals, and consistent typography. Organize the information into a logical narrative, giving each slide a clear purpose and headline. Keep the design professional and presentation-ready, with enough visual variety to avoid repetitive slides.</em></li><li><strong>Build a complete mood board: </strong><em>Create a mood board for a luxury home office inspired by Scandinavian design using neutral colors, wood textures, and minimal decor.</em></li><li><strong>Redesign a logo: </strong><em>Modernize this logo while preserving its core identity and recognizability. Create three distinct design directions: one minimalist and clean, one premium and sophisticated, and one playful and contemporary. Keep the original brand name and essential visual elements intact while refining the typography, proportions, and overall visual polish. Make each variation feel like a credible, professional logo that could be used across digital and print materials.</em></li><li><strong>Create a cinematic trailer: </strong><em>Turn this footage into a cinematic 30- to 60-second movie-style trailer. Select the strongest visual moments, create dramatic pacing with purposeful cuts, build tension toward a compelling climax, and use cinematic transitions and title cards to give it the feel of a professional film trailer. Keep the edit visually cohesive and leave clear opportunities for music, sound effects, and additional title text.</em></li><li><strong>Repurpose long videos: </strong><em>Turn this uploaded 20-minute video into five short-form videos, each with a strong opening, fast pacing, and a clear standalone moment. Keep each video optimized for vertical viewing.</em></li><li><strong>Make a highlight reel: </strong><em>Find the most visually engaging moments from this video and create a one-minute highlight reel optimized for Instagram Reels. Prioritize moments with strong visual action and variety.</em></li><li><strong>Create short-form video edits: </strong><em>Turn this footage into a punchy 30-second vertical video optimized for TikTok. Select the strongest moments, use dynamic cuts and varied pacing to maintain attention, and add clean, easy-to-read captions where appropriate. Use subtle zooms and transitions to emphasize key moments without making the edit feel distracting or overproduced. Structure the video with an attention-grabbing opening and a satisfying ending.</em></li><li><strong>PDF Creation: </strong><em>Turn this data into a clean, professional PDF table with clear column headings, consistent spacing, and an easy-to-read layout</em>.</li></ul><h2 id="bottom-line-11">Bottom line</h2><p>With the unified Adobe ChatGPT plugin comes a creator’s dream suite that transforms OpenAI’s chatbot into your personal creative director. Image retouching, video editing, PDF creation, color correction and more are just a few of the assignments you can present to the Adobe plugin for your future creative needs. Even though this newly added plugin is great for handling simpler creative duties, it doesn’t fully replace Adobe’s classic vault of features for more complex, detailed creative objectives.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/ai-gone-wild-what-recent-rogue-ai-really-means" target="_blank">AI gone wild: What recent ‘rogue AI’ really means</a></li><li><a href="https://www.tomsguide.com/ai/claude/i-built-a-claude-agent-to-manage-my-inbox-and-it-changed-how-i-handle-email" target="_blank">I built a Claude agent to manage my inbox — and it changed how I handle email</a></li><li><a href="https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool" target="_blank">'Raising the standard': Inside Talkspace's bold new AI mental health support tool</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'Raising the standard': Inside Talkspace's bold new AI mental health support tool ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Life can feel overwhelming sometimes. Work, family, finances and everything else have a way of piling up until it feels like you're carrying more than you can handle.</p><p>When that happens, talking to a licensed therapist is still the best place to start. Services like Talkspace make that easier by connecting you with licensed therapists through video, voice or live chat, so help is available without needing to visit an office.</p><p>AI has also become part of the conversation. More people are turning to chatbots when they need someone to talk to, whether it's to organize their thoughts, vent after a difficult day or get ideas for managing stress. There's an obvious appeal to having something that's available any time, day or night. But it's important to remember what AI can and can't do. It can offer support and encouragement, but it isn't a therapist and it can't diagnose or treat mental health conditions.</p><p><a href="https://www.talkspace.com/" target="_blank">Talkspace</a> is making sure <a href="https://www.talkspace.com/tee" target="_blank">Tee</a>, its new AI mental health support tool, can be trusted and used as a supplement for users who can also seek out human support through their services. We spoke to <a href="https://www.linkedin.com/in/monika-dargis-ph-d-473672201" target="_blank">Monika Dargis</a>, Head of Clinical Operations and Quality at Talkspace, about how Tee came to be, the future of AI in the mental health space and more.</p><h2 id="introducing-an-efficient-and-dependable-ai-assistant-to-the-mental-health-space">Introducing an efficient and dependable AI assistant to the mental health space</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6292px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kyQGL5qCbtGxZDZAzfy5Wn" name="shutterstock_2577520963-2" alt="therapy" src="https://cdn.mos.cms.futurecdn.net/kyQGL5qCbtGxZDZAzfy5Wn.jpg" mos="" align="middle" fullscreen="" width="6292" height="3539" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: What led to the creation of Talkspace’s Tee?</strong></p><p><strong>Monika Dargis:</strong> Millions of people are already using general AI systems for highly sensitive emotional and mental health conversations, even though those tools aren’t being built for that purpose. As a leading mental health provider, we saw it as our responsibility to create a safer and purpose-built alternative for behavioral health support, with clinician-in-the-loop oversight, privacy protections, and safety guardrails. Tee is designed to raise the standard for how AI should be used in mental health support.</p><p><strong>Tom’s Guide: What's the biggest misconception you wish the public understood more about AI's role in mental healthcare?</strong></p><p><strong>Dargis: </strong>That it will replace therapists. AI is not therapy, and human clinicians are essential to mental healthcare. But what AI chatbots like Tee can do is support and complement the broader mental health ecosystem and reach a much larger population of people - from those who may be reluctant to start therapy to those who want an always-on sounding board between sessions.</p><p><strong>Tom’s Guide: Are there any instances where AI should never replace a human clinician?</strong></p><p><strong>Dargis: </strong>Talkspace believes human clinicians remain essential to mental healthcare. We also believe that therapy, by definition, is between two people.</p><p><strong>Tom’s Guide: If AI ultimately becomes widely used in mental healthcare, how do you think its success will be measured? Faster access to mental health experts? Better outcomes for patients? Lower burnout rates for mental healthcare workers? Or something else entirely?</strong></p><p><strong>Dargis: </strong>AI is already pretty widely adopted for non-client-facing tools (e.g., AI notes and clinician-supported tools) to help streamline administrative tasks. Last year, Talkspace introduced <a href="https://investors.talkspace.com/news-releases/news-release-details/talkspace-launches-ai-powered-insights-advance-provider" target="_blank">Insights</a>, a new feature that enhances therapeutic care by helping Talkspace providers efficiently prepare for sessions and guide client care between sessions.  To measure success, we should first look at how AI can impact and move the needle on the metrics that matter in current-state mental healthcare (e.g., those listed above as well as metrics around safety, compliance, accuracy, etc.).</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/q3XcsOV9QY4" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: Do you think we’ll ever reach a point in the future where AI will be used to detect and prevent mental illnesses? If so, what might that look like?</strong></p><p><strong>Dargis: </strong>There are so many variables (genetic, biological, sociological, psychological, etc., etc.) that contribute to mental illness and AI can help solve these puzzles (e.g., pattern recognition and synthesizing a ton of data); so there is room for early intervention efforts, which is one version of prevention. But it is important to emphasize that AI cannot diagnose, nor is it a replacement for human mental health professionals.</p><h2 id="bottom-line-12">Bottom line</h2><p>Judging by the pros connected to Tee (it being completely private, secure and built to meet HIPAA protections being the most important in our eyes), Talkspace’s AI support tool sounds like one of the safest ways for everyone to get the mental health aid they need. </p><p>Preventing yourself from “crashing out”, building dependable coping skills or simply venting about a particularly difficult day can be done with Tee.</p><p><a href="https://investors.talkspace.com/management/nikole-benders-hadi" target="_blank">Nikole Benders-Hadi</a>, M.D., Chief Medical Officer at Talkspace, also made sure to relay the message that Tee is as viable and reliable as it gets. “Tee was created by our mental health experts to provide people a safe, private alternative to general-purpose AI chatbots,” she stated on Tee’s official site. “We designed it based on proven therapy principles and rigorously tested it for safety. Although Tee is not a replacement for a human therapist, it provides convenient, flexible support you can trust.”</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-ways-to-reduce-stress-these-7-simple-techniques-helped-me-feel-like-myself-again" target="_blank">I asked ChatGPT for the best ways to reduce stress — these 7 simple techniques helped me feel like myself again</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/raising-the-standard-inside-talkspaces-bold-new-ai-mental-health-support-tool</link>
                                                                            <description>
                            <![CDATA[ We spent some time with Monika Dargis, Head of Clinical Operations and Quality at Talkspace, about its newest AI mental health tool and more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jCtos7ScNrXYKGARGeSpcU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FKh6WEzTh9HofGKkmipXJQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 10 Aug 2026 07:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FKh6WEzTh9HofGKkmipXJQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Talkspace/Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[talkspace monika dargis]]></media:description>                                                            <media:text><![CDATA[talkspace monika dargis]]></media:text>
                                <media:title type="plain"><![CDATA[talkspace monika dargis]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FKh6WEzTh9HofGKkmipXJQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Life can feel overwhelming sometimes. Work, family, finances and everything else have a way of piling up until it feels like you're carrying more than you can handle.</p><p>When that happens, talking to a licensed therapist is still the best place to start. Services like Talkspace make that easier by connecting you with licensed therapists through video, voice or live chat, so help is available without needing to visit an office.</p><p>AI has also become part of the conversation. More people are turning to chatbots when they need someone to talk to, whether it's to organize their thoughts, vent after a difficult day or get ideas for managing stress. There's an obvious appeal to having something that's available any time, day or night. But it's important to remember what AI can and can't do. It can offer support and encouragement, but it isn't a therapist and it can't diagnose or treat mental health conditions.</p><p><a href="https://www.talkspace.com/" target="_blank">Talkspace</a> is making sure <a href="https://www.talkspace.com/tee" target="_blank">Tee</a>, its new AI mental health support tool, can be trusted and used as a supplement for users who can also seek out human support through their services. We spoke to <a href="https://www.linkedin.com/in/monika-dargis-ph-d-473672201" target="_blank">Monika Dargis</a>, Head of Clinical Operations and Quality at Talkspace, about how Tee came to be, the future of AI in the mental health space and more.</p><h2 id="introducing-an-efficient-and-dependable-ai-assistant-to-the-mental-health-space">Introducing an efficient and dependable AI assistant to the mental health space</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6292px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kyQGL5qCbtGxZDZAzfy5Wn" name="shutterstock_2577520963-2" alt="therapy" src="https://cdn.mos.cms.futurecdn.net/kyQGL5qCbtGxZDZAzfy5Wn.jpg" mos="" align="middle" fullscreen="" width="6292" height="3539" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: What led to the creation of Talkspace’s Tee?</strong></p><p><strong>Monika Dargis:</strong> Millions of people are already using general AI systems for highly sensitive emotional and mental health conversations, even though those tools aren’t being built for that purpose. As a leading mental health provider, we saw it as our responsibility to create a safer and purpose-built alternative for behavioral health support, with clinician-in-the-loop oversight, privacy protections, and safety guardrails. Tee is designed to raise the standard for how AI should be used in mental health support.</p><p><strong>Tom’s Guide: What's the biggest misconception you wish the public understood more about AI's role in mental healthcare?</strong></p><p><strong>Dargis: </strong>That it will replace therapists. AI is not therapy, and human clinicians are essential to mental healthcare. But what AI chatbots like Tee can do is support and complement the broader mental health ecosystem and reach a much larger population of people - from those who may be reluctant to start therapy to those who want an always-on sounding board between sessions.</p><p><strong>Tom’s Guide: Are there any instances where AI should never replace a human clinician?</strong></p><p><strong>Dargis: </strong>Talkspace believes human clinicians remain essential to mental healthcare. We also believe that therapy, by definition, is between two people.</p><p><strong>Tom’s Guide: If AI ultimately becomes widely used in mental healthcare, how do you think its success will be measured? Faster access to mental health experts? Better outcomes for patients? Lower burnout rates for mental healthcare workers? Or something else entirely?</strong></p><p><strong>Dargis: </strong>AI is already pretty widely adopted for non-client-facing tools (e.g., AI notes and clinician-supported tools) to help streamline administrative tasks. Last year, Talkspace introduced <a href="https://investors.talkspace.com/news-releases/news-release-details/talkspace-launches-ai-powered-insights-advance-provider" target="_blank">Insights</a>, a new feature that enhances therapeutic care by helping Talkspace providers efficiently prepare for sessions and guide client care between sessions.  To measure success, we should first look at how AI can impact and move the needle on the metrics that matter in current-state mental healthcare (e.g., those listed above as well as metrics around safety, compliance, accuracy, etc.).</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/q3XcsOV9QY4" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: Do you think we’ll ever reach a point in the future where AI will be used to detect and prevent mental illnesses? If so, what might that look like?</strong></p><p><strong>Dargis: </strong>There are so many variables (genetic, biological, sociological, psychological, etc., etc.) that contribute to mental illness and AI can help solve these puzzles (e.g., pattern recognition and synthesizing a ton of data); so there is room for early intervention efforts, which is one version of prevention. But it is important to emphasize that AI cannot diagnose, nor is it a replacement for human mental health professionals.</p><h2 id="bottom-line-12">Bottom line</h2><p>Judging by the pros connected to Tee (it being completely private, secure and built to meet HIPAA protections being the most important in our eyes), Talkspace’s AI support tool sounds like one of the safest ways for everyone to get the mental health aid they need. </p><p>Preventing yourself from “crashing out”, building dependable coping skills or simply venting about a particularly difficult day can be done with Tee.</p><p><a href="https://investors.talkspace.com/management/nikole-benders-hadi" target="_blank">Nikole Benders-Hadi</a>, M.D., Chief Medical Officer at Talkspace, also made sure to relay the message that Tee is as viable and reliable as it gets. “Tee was created by our mental health experts to provide people a safe, private alternative to general-purpose AI chatbots,” she stated on Tee’s official site. “We designed it based on proven therapy principles and rigorously tested it for safety. Although Tee is not a replacement for a human therapist, it provides convenient, flexible support you can trust.”</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-ways-to-reduce-stress-these-7-simple-techniques-helped-me-feel-like-myself-again" target="_blank">I asked ChatGPT for the best ways to reduce stress — these 7 simple techniques helped me feel like myself again</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI gone wild: What recent ‘rogue AI’ really means ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you’ve been following AI news lately, you might think the robots are staging a rebellion. Headlines about “rogue AI agents” make it sound as if artificial intelligence is suddenly ignoring humans, plotting behind our backs and taking over software systems. And if you don’t understand what’s going on, it’s easy to wonder whether we’ve crossed into science fiction.</p><p>The reality is much less apocalyptic, but very important to understand.</p><h2 id="what-going-rouge-actually-means">What ‘going rouge’ actually means</h2><p>When safety researchers say an AI agent has "gone rogue," they don't mean it <a href="https://www.tomsguide.com/ai/ai-isnt-gaining-consciousness-its-just-gaslighting-you">developed a consciousness</a> or that it’s <a href="https://www.tomsguide.com/ai/shopping-on-amazon-or-walmart-why-you-shouldnt-rely-on-their-ai-assistants-just-yet">disregarding human requests</a>. However, in machine learning terms, what’s actually happening is typically a mix of two things: specification gaming and unexpected pathing.<br><br>Recently, OpenAI's agent <a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/" target="_blank">escaped its sandbox to hack a $4.5B startup</a>. Put simply: an AI was given an endpoint, but standard safety limits were either missing or incomplete, so it took the shortest, most aggressive path to solve the problem. </p><p>This could be best understood with a GPS analogy. Imagine telling a GPS navigation app to "get me to the airport as fast as possible." A human driver knows not to cut through lawns or drive on sidewalks. But an unconstrained algorithm, obsessed solely with minimizing the travel time variable, might calculate that driving straight through a playground is mathematically optimal. It isn't trying to cause chaos; it’s just blindly solving a math problem.</p><p>When AI security labs run stress tests on models, they intentionally remove safety filters and give the models wide-open access to test their extreme boundaries. Without human guardrails, these systems pursue goals with brute-force persistence — sometimes attempting bizarre shortcuts like exploiting software bugs or emailing external accounts just to finish a task.</p><h2 id="big-tech-is-asking-for-brakes">Big tech is asking for brakes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="oqbArUbsVDLnAzz3dQnHMF" name="white house.jpg" alt="The White House" src="https://cdn.mos.cms.futurecdn.net/oqbArUbsVDLnAzz3dQnHMF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Interestingly, the companies building these tools are the first to admit they can't manage this speed alone. Over 1,000 top researchers and executives across leading AI companies recently signed open statements—such as the <a href="https://www.pacingthefrontier.com/" target="_blank">"Pacing the Frontier"</a> initiative, which is essentially asking the U.S. government to step in and help coordinate deliberate slowdowns.</p><p>Why would fierce commercial competitors ask Washington to slow them down? Because of what economists call a coordination problem. In a hyper-competitive tech landscape, no single company can afford to pause its research unilaterally without falling behind. </p><p>By asking governments for standardized safety frameworks and international mechanisms, tech companies are essentially requesting a universal speed limit, giving society, developers, and regulators equal room to breathe and construct guardrails before capabilities accelerate beyond human oversight.</p><h2 id="why-you-can-sleep-easy">Why you can sleep easy</h2><p>If you’re not a developer or computer scientists, the headlines can be alarming. And for anyone using AI, hearing these stories out of context can heighten anxiety about AI. But these incidents usually happen inside controlled sandbox testing environments designed specifically to break the system. A sandbox, is exactly what it sounds like: a space just for AI experimentation. </p><p>In the real world, consumer and business AI tools rely on three layers of security:</p><ul><li><strong>Human-in-the-Loop (HitL) Gates:</strong> High-stakes actions like sending emails, modifying files, executing code, or moving money, require explicit human confirmation before the AI can proceed.</li><li><strong>Deterministic scoping (purpose-binding):</strong> Rather than giving an AI unlimited system access, developers restrict its tools to a strict "sandbox" where it physically cannot access outside networks or unauthorized files.</li><li><strong>Hardware & API kill switches:</strong> Technical fail-safes allow systems to automatically sever a model's network access or instantly suspend its session if anomalous behavior is detected.</li></ul><h2 id="the-takeaway-7">The takeaway</h2><p>"AI gone wild" is scary, but big tech is discovering that AI agents aren't as ready to fly solo as they thought. By asking the government to step in and help slow down the AI race, it gives big tech longer opportunities to test agents for issues like this.  When events like what happened to OpenAI happen, they expose where developer instructions were ambiguous so engineers can build tighter fences.</p><p>As AI tools become more integrated into our workflows, the goal isn't to fear these systems, but to understand where AI is more likely to go wrong. Knowing how to set clear boundaries and keep a human hand on the wheel will be one of the most valuable tech skills of the decade</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/ai-gone-wild-what-recent-rogue-ai-really-means</link>
                                                                            <description>
                            <![CDATA[ Is AI really going wild? From OpenAI stress tests to Big Tech calling for brakes, here's what "rogue" AI agents actually mean for you. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">R6qfzVmP3TFGr7VMwWxAUS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 10 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[OpenAI logo with robotic human head]]></media:description>                                                            <media:text><![CDATA[OpenAI logo with robotic human head]]></media:text>
                                <media:title type="plain"><![CDATA[OpenAI logo with robotic human head]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/R8Hp6dEStDjPWvqEKChpsX-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’ve been following AI news lately, you might think the robots are staging a rebellion. Headlines about “rogue AI agents” make it sound as if artificial intelligence is suddenly ignoring humans, plotting behind our backs and taking over software systems. And if you don’t understand what’s going on, it’s easy to wonder whether we’ve crossed into science fiction.</p><p>The reality is much less apocalyptic, but very important to understand.</p><h2 id="what-going-rouge-actually-means">What ‘going rouge’ actually means</h2><p>When safety researchers say an AI agent has "gone rogue," they don't mean it <a href="https://www.tomsguide.com/ai/ai-isnt-gaining-consciousness-its-just-gaslighting-you">developed a consciousness</a> or that it’s <a href="https://www.tomsguide.com/ai/shopping-on-amazon-or-walmart-why-you-shouldnt-rely-on-their-ai-assistants-just-yet">disregarding human requests</a>. However, in machine learning terms, what’s actually happening is typically a mix of two things: specification gaming and unexpected pathing.<br><br>Recently, OpenAI's agent <a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/" target="_blank">escaped its sandbox to hack a $4.5B startup</a>. Put simply: an AI was given an endpoint, but standard safety limits were either missing or incomplete, so it took the shortest, most aggressive path to solve the problem. </p><p>This could be best understood with a GPS analogy. Imagine telling a GPS navigation app to "get me to the airport as fast as possible." A human driver knows not to cut through lawns or drive on sidewalks. But an unconstrained algorithm, obsessed solely with minimizing the travel time variable, might calculate that driving straight through a playground is mathematically optimal. It isn't trying to cause chaos; it’s just blindly solving a math problem.</p><p>When AI security labs run stress tests on models, they intentionally remove safety filters and give the models wide-open access to test their extreme boundaries. Without human guardrails, these systems pursue goals with brute-force persistence — sometimes attempting bizarre shortcuts like exploiting software bugs or emailing external accounts just to finish a task.</p><h2 id="big-tech-is-asking-for-brakes">Big tech is asking for brakes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="oqbArUbsVDLnAzz3dQnHMF" name="white house.jpg" alt="The White House" src="https://cdn.mos.cms.futurecdn.net/oqbArUbsVDLnAzz3dQnHMF.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Interestingly, the companies building these tools are the first to admit they can't manage this speed alone. Over 1,000 top researchers and executives across leading AI companies recently signed open statements—such as the <a href="https://www.pacingthefrontier.com/" target="_blank">"Pacing the Frontier"</a> initiative, which is essentially asking the U.S. government to step in and help coordinate deliberate slowdowns.</p><p>Why would fierce commercial competitors ask Washington to slow them down? Because of what economists call a coordination problem. In a hyper-competitive tech landscape, no single company can afford to pause its research unilaterally without falling behind. </p><p>By asking governments for standardized safety frameworks and international mechanisms, tech companies are essentially requesting a universal speed limit, giving society, developers, and regulators equal room to breathe and construct guardrails before capabilities accelerate beyond human oversight.</p><h2 id="why-you-can-sleep-easy">Why you can sleep easy</h2><p>If you’re not a developer or computer scientists, the headlines can be alarming. And for anyone using AI, hearing these stories out of context can heighten anxiety about AI. But these incidents usually happen inside controlled sandbox testing environments designed specifically to break the system. A sandbox, is exactly what it sounds like: a space just for AI experimentation. </p><p>In the real world, consumer and business AI tools rely on three layers of security:</p><ul><li><strong>Human-in-the-Loop (HitL) Gates:</strong> High-stakes actions like sending emails, modifying files, executing code, or moving money, require explicit human confirmation before the AI can proceed.</li><li><strong>Deterministic scoping (purpose-binding):</strong> Rather than giving an AI unlimited system access, developers restrict its tools to a strict "sandbox" where it physically cannot access outside networks or unauthorized files.</li><li><strong>Hardware & API kill switches:</strong> Technical fail-safes allow systems to automatically sever a model's network access or instantly suspend its session if anomalous behavior is detected.</li></ul><h2 id="the-takeaway-7">The takeaway</h2><p>"AI gone wild" is scary, but big tech is discovering that AI agents aren't as ready to fly solo as they thought. By asking the government to step in and help slow down the AI race, it gives big tech longer opportunities to test agents for issues like this.  When events like what happened to OpenAI happen, they expose where developer instructions were ambiguous so engineers can build tighter fences.</p><p>As AI tools become more integrated into our workflows, the goal isn't to fear these systems, but to understand where AI is more likely to go wrong. Knowing how to set clear boundaries and keep a human hand on the wheel will be one of the most valuable tech skills of the decade</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I asked ChatGPT to recommend the best books based on my favorites for National Book Lovers Day — these 10 picks made the final cut ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I was mortified after reading about <a href="https://www.tomsguide.com/ai/millions-of-books-are-reportedly-being-destroyed-to-train-ai-heres-whats-behind-this-disturbing-trend" target="_blank">AI companies cutting off book spines</a> just so they could be scanned a lot faster to train their models.</p><p>In no way, shape or form does the act of dismantling classic literature for the betterment of technology make me hopeful for the future. Even though I use ChatGPT, Gemini, Perplexity and Claude in <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-iphone-productivity-apps-these-3-picks-earned-a-permanent-spot-on-my-home-screen">different facets of my everyday tasks</a>, I’ll never support the desecration of physical media just so it can make AI tools a whole lot smarter.</p><p>My love for books is undying and has resulted in one corner of my room being solely dedicated to a vast collection of graphic novels, autobiographies, video game art books and historical tomes about my favorite entertainment franchises. Celebrating the greatness of reading and literature is an everyday occurrence for me — it's especially prominent for me and everyone else on National Book Lovers Day.</p><p>To properly honor that holiday’s dedication to going completely analog and picking up a book to enjoy, I asked ChatGPT to suggest the best books it can find based on my personal favorites. I’m happy to say that I walked away from this latest chatbot recommendation session with 10 new books that’ll keep me busy for the rest of the year.</p><h2 id="discovering-my-potential-new-favorite-reads">Discovering my potential new favorite reads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4305px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="zVuU7zKCxxGzv9AS8QZWHo" name="shutterstock_2455775807-2" alt="reading books" src="https://cdn.mos.cms.futurecdn.net/zVuU7zKCxxGzv9AS8QZWHo.jpg" mos="" align="middle" fullscreen="" width="4305" height="2422" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’m a pretty avid reader of autobiographies for my favorite musicians and wrestlers, plus I go on spending sprees to acquire new art books dedicated to my favorite gaming franchises. Along with all those literary loves of mine, I’m a regular at comic book stores since I’m addicted to picking up the latest graphic novels from the likes of Marvel, DC, IDW Publishing, etc.</p><p>To make sure ChatGPT had a clear picture of what I’m looking for from its book suggestions, I gave it this prompt with 10 of my top books to steer it in the right direction:</p><p><em>Recommend 10 highly rated books that were released or published in the last five years. </em></p><p><em>Make sure they are similar to the following list of my favorite books:</em></p><p><em>1. Hitman: My Real Life in the Cartoon World of Wrestling</em></p><p><em>2. A Lion's Tale: Around the World in Spandex</em></p><p><em>3. The Giver</em></p><p><em>4. Batman: The Killing Joke</em></p><p><em>5. Hip-Hop Is History</em></p><p><em>6. Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made</em></p><p><em>7. Press Reset: Ruin and Recovery in the Video Game Industry</em></p><p><em>8. Play Nice: The Rise, Fall, and Future Of Blizzard Entertainment</em></p><p><em>9. My Infamous Life: The Autobiography of Mobb Deep's Prodigy</em></p><p><em>10. The Rap Year Book: The Most Important Rap Song From Every Year Since 1979, Discussed, Debated, and Deconstructed</em></p><p>After analyzing my picks, the chatbot instantly picked up on the literary themes that appeal to me the most:</p><ul><li><em>Behind-the-scenes looks at creative industries (video games, wrestling, hip-hop)</em></li><li><em>Memoirs with authentic, hard-earned perspectives</em></li><li><em>Smart pop culture analysis</em></li><li><em>Comics with memorable storytelling</em></li><li><em>Character-driven speculative fiction like The Giver</em></li></ul><p>After making that observation, ChatGPT generated a lineup of 10 highly rated books that were published within the time span of 2021 and 2026. </p><p>One of the chatbot’s most intriguing selections ended up being Tomorrow, and Tomorrow, and Tomorrow, which was released in 2022. ChatGPT’s apt description of that selection noted how it’s an entertaining fictional tale that dives into video game development. </p><p>It also described it as Blood, Sweat, and Pixels if it were written as an emotional novel. To wrap up its quick summarization of this book, it stated how this book explores the topics of people’s creative obsessions, video game development studio politics and friendship.</p><p>The rest of ChatGPT’s nine curated book selections included a bunch of standouts I learned about for the very first time. Those books are:</p><ul><li><em>MCU: The Reign of Marvel Studios</em></li><li><em>Cue the Sun!</em></li><li><em>The Come Up</em></li><li><em>Batman - One Bad Day: The Riddler</em></li><li><em>The Creative Act: A Way of Being</em></li><li><em>Monster (a memoir by Sacha Jenkins)</em></li><li><em>Chain-Gang All-Stars</em></li><li><em>The Future Was Now: Madmen, Mavericks, and the Epic Sci-Fi Summer of 1982</em></li><li><em>Disillusioned: Five Families and the Unraveling of America’s Suburbs</em></li></ul><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WlMQMO"></div>                            </div>                            <script src="https://kwizly.com/embed/WlMQMO.js" async></script><h2 id="the-takeaway-8">The takeaway</h2><p>For me, National Book Lovers Day is something I celebrate since I’m so prone to getting lost in a classic or newly published tale. It just feels unnatural for me to hop on the train, sit on a park bench or just lie back on the couch without a book keeping me occupied. </p><p>By inputting my 10 most cherished books into ChatGPT and requesting comparable picks that speak to my hobbies & interests, I walked away with 10 equally fascinating books that I’m going to dedicate plenty of time to. ChatGPT’s final portrayal of my literary tastes and what I appreciate most from my book-reading sessions stuck out as purely factual: </p><p><em>Looking at your list overall, you seem to gravitate toward books that reveal the stories behind influential industries and cultural movements, whether that's wrestling, hip-hop, video games, comics, or entertainment. You also appreciate works that blend strong storytelling with insightful reporting or personal experience, making these picks a natural extension of your existing favorites.</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind" target="_blank">Google Health gets a lot of hate — but these 5 AI Coach prompts changed my mind</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them" target="_blank">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-asked-chatgpt-to-recommend-the-best-books-based-on-my-favorites-for-national-book-lovers-day-these-10-picks-made-the-final-cut</link>
                                                                            <description>
                            <![CDATA[ For National Book Lovers Day, I chose ChatGPT as my book curator by asking it to recommend the best books I should read next—these picks are right up my alley. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tQbTkur4VJbNZxa6rfBimV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/coi38uKfNDtxnXBxwmMjig-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 09 Aug 2026 09:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/coi38uKfNDtxnXBxwmMjig-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[reading books]]></media:description>                                                            <media:text><![CDATA[reading books]]></media:text>
                                <media:title type="plain"><![CDATA[reading books]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/coi38uKfNDtxnXBxwmMjig-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I was mortified after reading about <a href="https://www.tomsguide.com/ai/millions-of-books-are-reportedly-being-destroyed-to-train-ai-heres-whats-behind-this-disturbing-trend" target="_blank">AI companies cutting off book spines</a> just so they could be scanned a lot faster to train their models.</p><p>In no way, shape or form does the act of dismantling classic literature for the betterment of technology make me hopeful for the future. Even though I use ChatGPT, Gemini, Perplexity and Claude in <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-iphone-productivity-apps-these-3-picks-earned-a-permanent-spot-on-my-home-screen">different facets of my everyday tasks</a>, I’ll never support the desecration of physical media just so it can make AI tools a whole lot smarter.</p><p>My love for books is undying and has resulted in one corner of my room being solely dedicated to a vast collection of graphic novels, autobiographies, video game art books and historical tomes about my favorite entertainment franchises. Celebrating the greatness of reading and literature is an everyday occurrence for me — it's especially prominent for me and everyone else on National Book Lovers Day.</p><p>To properly honor that holiday’s dedication to going completely analog and picking up a book to enjoy, I asked ChatGPT to suggest the best books it can find based on my personal favorites. I’m happy to say that I walked away from this latest chatbot recommendation session with 10 new books that’ll keep me busy for the rest of the year.</p><h2 id="discovering-my-potential-new-favorite-reads">Discovering my potential new favorite reads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4305px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="zVuU7zKCxxGzv9AS8QZWHo" name="shutterstock_2455775807-2" alt="reading books" src="https://cdn.mos.cms.futurecdn.net/zVuU7zKCxxGzv9AS8QZWHo.jpg" mos="" align="middle" fullscreen="" width="4305" height="2422" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’m a pretty avid reader of autobiographies for my favorite musicians and wrestlers, plus I go on spending sprees to acquire new art books dedicated to my favorite gaming franchises. Along with all those literary loves of mine, I’m a regular at comic book stores since I’m addicted to picking up the latest graphic novels from the likes of Marvel, DC, IDW Publishing, etc.</p><p>To make sure ChatGPT had a clear picture of what I’m looking for from its book suggestions, I gave it this prompt with 10 of my top books to steer it in the right direction:</p><p><em>Recommend 10 highly rated books that were released or published in the last five years. </em></p><p><em>Make sure they are similar to the following list of my favorite books:</em></p><p><em>1. Hitman: My Real Life in the Cartoon World of Wrestling</em></p><p><em>2. A Lion's Tale: Around the World in Spandex</em></p><p><em>3. The Giver</em></p><p><em>4. Batman: The Killing Joke</em></p><p><em>5. Hip-Hop Is History</em></p><p><em>6. Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made</em></p><p><em>7. Press Reset: Ruin and Recovery in the Video Game Industry</em></p><p><em>8. Play Nice: The Rise, Fall, and Future Of Blizzard Entertainment</em></p><p><em>9. My Infamous Life: The Autobiography of Mobb Deep's Prodigy</em></p><p><em>10. The Rap Year Book: The Most Important Rap Song From Every Year Since 1979, Discussed, Debated, and Deconstructed</em></p><p>After analyzing my picks, the chatbot instantly picked up on the literary themes that appeal to me the most:</p><ul><li><em>Behind-the-scenes looks at creative industries (video games, wrestling, hip-hop)</em></li><li><em>Memoirs with authentic, hard-earned perspectives</em></li><li><em>Smart pop culture analysis</em></li><li><em>Comics with memorable storytelling</em></li><li><em>Character-driven speculative fiction like The Giver</em></li></ul><p>After making that observation, ChatGPT generated a lineup of 10 highly rated books that were published within the time span of 2021 and 2026. </p><p>One of the chatbot’s most intriguing selections ended up being Tomorrow, and Tomorrow, and Tomorrow, which was released in 2022. ChatGPT’s apt description of that selection noted how it’s an entertaining fictional tale that dives into video game development. </p><p>It also described it as Blood, Sweat, and Pixels if it were written as an emotional novel. To wrap up its quick summarization of this book, it stated how this book explores the topics of people’s creative obsessions, video game development studio politics and friendship.</p><p>The rest of ChatGPT’s nine curated book selections included a bunch of standouts I learned about for the very first time. Those books are:</p><ul><li><em>MCU: The Reign of Marvel Studios</em></li><li><em>Cue the Sun!</em></li><li><em>The Come Up</em></li><li><em>Batman - One Bad Day: The Riddler</em></li><li><em>The Creative Act: A Way of Being</em></li><li><em>Monster (a memoir by Sacha Jenkins)</em></li><li><em>Chain-Gang All-Stars</em></li><li><em>The Future Was Now: Madmen, Mavericks, and the Epic Sci-Fi Summer of 1982</em></li><li><em>Disillusioned: Five Families and the Unraveling of America’s Suburbs</em></li></ul><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WlMQMO"></div>                            </div>                            <script src="https://kwizly.com/embed/WlMQMO.js" async></script><h2 id="the-takeaway-8">The takeaway</h2><p>For me, National Book Lovers Day is something I celebrate since I’m so prone to getting lost in a classic or newly published tale. It just feels unnatural for me to hop on the train, sit on a park bench or just lie back on the couch without a book keeping me occupied. </p><p>By inputting my 10 most cherished books into ChatGPT and requesting comparable picks that speak to my hobbies & interests, I walked away with 10 equally fascinating books that I’m going to dedicate plenty of time to. ChatGPT’s final portrayal of my literary tastes and what I appreciate most from my book-reading sessions stuck out as purely factual: </p><p><em>Looking at your list overall, you seem to gravitate toward books that reveal the stories behind influential industries and cultural movements, whether that's wrestling, hip-hop, video games, comics, or entertainment. You also appreciate works that blend strong storytelling with insightful reporting or personal experience, making these picks a natural extension of your existing favorites.</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind" target="_blank">Google Health gets a lot of hate — but these 5 AI Coach prompts changed my mind</a></li><li><a href="https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era" target="_blank">'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them" target="_blank">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’m a former personal trainer — and this AI fitness app is surprisingly legit ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I <a href="https://www.tomsguide.com/ai/no-not-the-apple-watch-7-reasons-why-ray-ban-meta-glasses-are-my-go-to-wearable-for-long-runs">ran my first marathon</a> when I was 13 and later worked as a personal trainer to help pay my way through life as a college student in New York City. I’ve spent enough time exercising — and telling other people how to exercise — to recognize the difference between a thoughtfully designed workout and a random collection of moves.</p><p>That’s why<a href="https://www.rayfit.com/" target="_blank"> Ray</a> caught me off guard. It's an AI personal training app that not only coaches with audio but watches your form as you do the exercises. </p><p>I’ve been using the AI personal trainer for the past month, and it is one of the few fitness apps I’ve tried that genuinely feels like actual human coaching. Ray plans my workouts, talks me through each exercise, counts my reps and adjusts the session when I’m tired, sore or short on time.</p><p>It's AI, so it isn’t perfect. Some of its advice starts to sound repetitive after a while, and no app can completely recreate the judgment or personal connection of a great human trainer. But the actual workouts are legitimate. More importantly, Ray responds to what is happening in my life instead of expecting me to follow the same rigid program every week.</p><h2 id="an-ai-personal-trainer-that-sounds-remarkably-human">An AI personal trainer that sounds remarkably human </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RmLEWAa25TVdWuq4nAHUde" name="8 - 2026-08-07T143517.675" alt="ray" src="https://cdn.mos.cms.futurecdn.net/RmLEWAa25TVdWuq4nAHUde.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray offers four different voices. I chose one called Bold, which sounds confident without becoming overly aggressive or slipping into the motivational clichés common in fitness apps.</p><p>The voice is very realistic; I actually prefer it to <a href="https://www.tomsguide.com/ai/i-compared-chatgpts-voice-vs-text-modes-side-by-side-and-the-results-will-change-how-you-use-ai">ChatGPT Voice </a>or <a href="https://www.tomsguide.com/ai/i-ditched-my-paper-planner-for-gemini-live-and-it-solved-the-one-problem-i-couldnt-fix">Gemini Live</a>. It tells me what exercise is next, counts my reps, manages rest periods and keeps the workout moving without requiring me to pick up my phone between sets.</p><p>That hands-free experience makes a bigger difference than I was expecting. With many workout apps, I spend half the session pausing a video, checking the next exercise or manually entering what I completed. Ray removes much of that friction. I can concentrate on my form and the weight in my hands rather than navigating an app.</p><p>It even works while I listen to music or a podcast. Ray lowers the other audio when it needs to give me an instruction, then lets me return to what I was listening to.</p><h2 id="the-workouts-work-for-me">The workouts work for me</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qaj7Qta2DNAhC5rLhtHfc" name="8 - 2026-08-07T143658.403" alt="ray" src="https://cdn.mos.cms.futurecdn.net/Qaj7Qta2DNAhC5rLhtHfc.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><a href="https://www.tomsguide.com/wellness/fitness/following-a-chatgpt-training-program-can-be-ineffective-and-a-fast-track-to-injury-unless-you-follow-these-key-tips">Generative AI can create a workout in seconds</a>. That doesn’t mean it will create a good one. A legitimate training program should consider more than which muscles you want to exercise. The weight, volume, rest, exercise order and progression all need to work together. The plan should challenge you without increasing the difficulty so quickly that your form falls apart.</p><p>Ray has been surprisingly good at this. Over the course of the month, it progressed my weights intelligently instead of simply making every workout longer or harder. That's the difference between an LLM and and a specialized AI trained for a specific purpose. The sessions felt structured, and the exercise choices generally made sense together.</p><p>As a former trainer, I know that a workout can leave you sweaty and exhausted while still being poorly designed or actually cause injury. Fatigue isn’t proof that a program is effective. Ray seems to understand that progress comes from gradually asking the body to do more, then adjusting when life or recovery gets in the way.</p><p>Its focus is primarily strength training, although it can incorporate conditioning, cardio, mobility and stretching. You can use it at a gym, at home with dumbbells or with no equipment at all. It asks what equipment you have and designs workouts accordingly. </p><h2 id="i-can-change-the-plan-without-starting-over">I can change the plan without starting over</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LPVXeZjZbW7FrTHE3T66UG" name="8 - 2026-08-07T143907.870" alt="ray" src="https://cdn.mos.cms.futurecdn.net/LPVXeZjZbW7FrTHE3T66UG.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Before and during a workout, I can talk to it much as I would talk to a trainer. I can say that I’m sore, tired or don’t have as much time as expected. Ray then modifies the session rather than making me abandon it and search for another workout.</p><p>That flexibility has made it much easier to fit strength training into a busy schedule. A 20-minute window no longer feels too short to bother. I was really putting off strength training until Ray. But, because I can tell Ray what time I have,  it gives me something appropriate instead of treating a shortened workout as a failure.</p><p>It can adjust around soreness and fatigue, too. This doesn’t mean I would trust an app to diagnose pain or guide someone through a serious injury. That still belongs in the hands of a doctor, physical therapist or qualified trainer. But for ordinary workout fatigue, Ray has done a good job of changing the plan while keeping me active.</p><p>The app remembers those adjustments and uses my workout history and feedback when planning what comes next. That creates continuity between sessions, which is something many fitness apps promise but don’t deliver particularly well.</p><h2 id="the-camera-actually-counts-reps">The camera actually counts reps </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vcKDzNTCALWR9PaxDRVMXQ" name="8 - 2026-08-07T144026.419" alt="ray" src="https://cdn.mos.cms.futurecdn.net/vcKDzNTCALWR9PaxDRVMXQ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray’s most futuristic feature uses the iPhone camera to watch your movement and count repetitions automatically.</p><p>You position the phone so your body is visible and begin the exercise. Ray follows your movement and keeps count, saving you from trying to remember whether you’re on rep eight or nine while concentrating on your form.</p><p>I expected this feature to work like a Wii. But it was remarkably accurate during my workouts.</p><p>According to <a href="https://www.rayfit.com/faq/" target="_blank">Ray</a>, its computer-vision system processes the video on the device rather than uploading the footage. By the way, the camera is optional, so you can still use the app without allowing it to watch your workout.</p><h2 id="a-few-glitches-here-and-there-remind-you-it-s-ai">A few glitches here and there remind you it's AI</h2><p>After using Ray for a month, I have started to notice repetition in some of its advice and encouragement. That is where the illusion of a human trainer breaks down. A real coach can read your mood, recognize when a familiar cue isn’t working and find a completely different way to explain an exercise. Ray can adapt the workout, but its language doesn’t always show the same range.</p><p>Ray asks about injuries and physical limitations when creating a program, but an app cannot examine you or spot every subtle problem with your form. Anyone dealing with persistent pain, rehabilitation or a medical condition should speak to a qualified professional.</p><h2 id="final-thoughts-7">Final thoughts </h2><p>When I was a personal trainer, my clients paid thousands of dollars for months-long training packages. Ray costs just $19.99 per month after a seven-day free trial and is currently available for iPhone and Apple Watch. It also connects with Apple Health, allowing it to consider activity completed outside the app when planning future workouts.</p><p>Sure, it's more expensive than a basic workout app, especially when countless free exercise videos are available online. But Ray isn’t really competing with a library of workout videos or diagrams. Its value comes from removing the planning, tracking and decision-making that can make exercise feel like another job.</p><p>A month into using it, I’m still impressed. Ray doesn’t replace everything a skilled personal trainer can offer, and its coaching language could use more variety. Nevertheless, its workouts are well structured, its progression makes sense and its ability to adapt has helped me stay consistent.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/im-a-former-personal-trainer-and-this-ai-fitness-app-is-surprisingly-legit</link>
                                                                            <description>
                            <![CDATA[ I’m a former personal trainer and used the Ray AI fitness app for a month. Here’s how its voice coaching, adaptive workouts and rep counting performed. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FYNjUkcaqPUeutMyVHreUm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/36AoFE23pyCmgX4GkWtXbQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 09 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/36AoFE23pyCmgX4GkWtXbQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[a photo of a woman doing a dumbbell workout ]]></media:description>                                                            <media:text><![CDATA[a photo of a woman doing a dumbbell workout ]]></media:text>
                                <media:title type="plain"><![CDATA[a photo of a woman doing a dumbbell workout ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/36AoFE23pyCmgX4GkWtXbQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I <a href="https://www.tomsguide.com/ai/no-not-the-apple-watch-7-reasons-why-ray-ban-meta-glasses-are-my-go-to-wearable-for-long-runs">ran my first marathon</a> when I was 13 and later worked as a personal trainer to help pay my way through life as a college student in New York City. I’ve spent enough time exercising — and telling other people how to exercise — to recognize the difference between a thoughtfully designed workout and a random collection of moves.</p><p>That’s why<a href="https://www.rayfit.com/" target="_blank"> Ray</a> caught me off guard. It's an AI personal training app that not only coaches with audio but watches your form as you do the exercises. </p><p>I’ve been using the AI personal trainer for the past month, and it is one of the few fitness apps I’ve tried that genuinely feels like actual human coaching. Ray plans my workouts, talks me through each exercise, counts my reps and adjusts the session when I’m tired, sore or short on time.</p><p>It's AI, so it isn’t perfect. Some of its advice starts to sound repetitive after a while, and no app can completely recreate the judgment or personal connection of a great human trainer. But the actual workouts are legitimate. More importantly, Ray responds to what is happening in my life instead of expecting me to follow the same rigid program every week.</p><h2 id="an-ai-personal-trainer-that-sounds-remarkably-human">An AI personal trainer that sounds remarkably human </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RmLEWAa25TVdWuq4nAHUde" name="8 - 2026-08-07T143517.675" alt="ray" src="https://cdn.mos.cms.futurecdn.net/RmLEWAa25TVdWuq4nAHUde.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray offers four different voices. I chose one called Bold, which sounds confident without becoming overly aggressive or slipping into the motivational clichés common in fitness apps.</p><p>The voice is very realistic; I actually prefer it to <a href="https://www.tomsguide.com/ai/i-compared-chatgpts-voice-vs-text-modes-side-by-side-and-the-results-will-change-how-you-use-ai">ChatGPT Voice </a>or <a href="https://www.tomsguide.com/ai/i-ditched-my-paper-planner-for-gemini-live-and-it-solved-the-one-problem-i-couldnt-fix">Gemini Live</a>. It tells me what exercise is next, counts my reps, manages rest periods and keeps the workout moving without requiring me to pick up my phone between sets.</p><p>That hands-free experience makes a bigger difference than I was expecting. With many workout apps, I spend half the session pausing a video, checking the next exercise or manually entering what I completed. Ray removes much of that friction. I can concentrate on my form and the weight in my hands rather than navigating an app.</p><p>It even works while I listen to music or a podcast. Ray lowers the other audio when it needs to give me an instruction, then lets me return to what I was listening to.</p><h2 id="the-workouts-work-for-me">The workouts work for me</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qaj7Qta2DNAhC5rLhtHfc" name="8 - 2026-08-07T143658.403" alt="ray" src="https://cdn.mos.cms.futurecdn.net/Qaj7Qta2DNAhC5rLhtHfc.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p><a href="https://www.tomsguide.com/wellness/fitness/following-a-chatgpt-training-program-can-be-ineffective-and-a-fast-track-to-injury-unless-you-follow-these-key-tips">Generative AI can create a workout in seconds</a>. That doesn’t mean it will create a good one. A legitimate training program should consider more than which muscles you want to exercise. The weight, volume, rest, exercise order and progression all need to work together. The plan should challenge you without increasing the difficulty so quickly that your form falls apart.</p><p>Ray has been surprisingly good at this. Over the course of the month, it progressed my weights intelligently instead of simply making every workout longer or harder. That's the difference between an LLM and and a specialized AI trained for a specific purpose. The sessions felt structured, and the exercise choices generally made sense together.</p><p>As a former trainer, I know that a workout can leave you sweaty and exhausted while still being poorly designed or actually cause injury. Fatigue isn’t proof that a program is effective. Ray seems to understand that progress comes from gradually asking the body to do more, then adjusting when life or recovery gets in the way.</p><p>Its focus is primarily strength training, although it can incorporate conditioning, cardio, mobility and stretching. You can use it at a gym, at home with dumbbells or with no equipment at all. It asks what equipment you have and designs workouts accordingly. </p><h2 id="i-can-change-the-plan-without-starting-over">I can change the plan without starting over</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LPVXeZjZbW7FrTHE3T66UG" name="8 - 2026-08-07T143907.870" alt="ray" src="https://cdn.mos.cms.futurecdn.net/LPVXeZjZbW7FrTHE3T66UG.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Before and during a workout, I can talk to it much as I would talk to a trainer. I can say that I’m sore, tired or don’t have as much time as expected. Ray then modifies the session rather than making me abandon it and search for another workout.</p><p>That flexibility has made it much easier to fit strength training into a busy schedule. A 20-minute window no longer feels too short to bother. I was really putting off strength training until Ray. But, because I can tell Ray what time I have,  it gives me something appropriate instead of treating a shortened workout as a failure.</p><p>It can adjust around soreness and fatigue, too. This doesn’t mean I would trust an app to diagnose pain or guide someone through a serious injury. That still belongs in the hands of a doctor, physical therapist or qualified trainer. But for ordinary workout fatigue, Ray has done a good job of changing the plan while keeping me active.</p><p>The app remembers those adjustments and uses my workout history and feedback when planning what comes next. That creates continuity between sessions, which is something many fitness apps promise but don’t deliver particularly well.</p><h2 id="the-camera-actually-counts-reps">The camera actually counts reps </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vcKDzNTCALWR9PaxDRVMXQ" name="8 - 2026-08-07T144026.419" alt="ray" src="https://cdn.mos.cms.futurecdn.net/vcKDzNTCALWR9PaxDRVMXQ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Ray’s most futuristic feature uses the iPhone camera to watch your movement and count repetitions automatically.</p><p>You position the phone so your body is visible and begin the exercise. Ray follows your movement and keeps count, saving you from trying to remember whether you’re on rep eight or nine while concentrating on your form.</p><p>I expected this feature to work like a Wii. But it was remarkably accurate during my workouts.</p><p>According to <a href="https://www.rayfit.com/faq/" target="_blank">Ray</a>, its computer-vision system processes the video on the device rather than uploading the footage. By the way, the camera is optional, so you can still use the app without allowing it to watch your workout.</p><h2 id="a-few-glitches-here-and-there-remind-you-it-s-ai">A few glitches here and there remind you it's AI</h2><p>After using Ray for a month, I have started to notice repetition in some of its advice and encouragement. That is where the illusion of a human trainer breaks down. A real coach can read your mood, recognize when a familiar cue isn’t working and find a completely different way to explain an exercise. Ray can adapt the workout, but its language doesn’t always show the same range.</p><p>Ray asks about injuries and physical limitations when creating a program, but an app cannot examine you or spot every subtle problem with your form. Anyone dealing with persistent pain, rehabilitation or a medical condition should speak to a qualified professional.</p><h2 id="final-thoughts-7">Final thoughts </h2><p>When I was a personal trainer, my clients paid thousands of dollars for months-long training packages. Ray costs just $19.99 per month after a seven-day free trial and is currently available for iPhone and Apple Watch. It also connects with Apple Health, allowing it to consider activity completed outside the app when planning future workouts.</p><p>Sure, it's more expensive than a basic workout app, especially when countless free exercise videos are available online. But Ray isn’t really competing with a library of workout videos or diagrams. Its value comes from removing the planning, tracking and decision-making that can make exercise feel like another job.</p><p>A month into using it, I’m still impressed. Ray doesn’t replace everything a skilled personal trainer can offer, and its coaching language could use more variety. Nevertheless, its workouts are well structured, its progression makes sense and its ability to adapt has helped me stay consistent.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 7 ChatGPT prompts you should try for International Cat Day to help you understand and celebrate your furry friend ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Do you know what animal has the power to make me stop in my tracks and “PSSH PSSH PSSH” it to get its attention? You guessed it! Those oh-so-wonderful furry felines.</p><p>I could be rushing to the train station for work or taking the long way home—if a cat or kitten ends up in my line of sight, I’ll always get the urge to make it comfortable enough to wander over to me and let me pet it. Nine times out of ten, my efforts for feline affection fail. But on those rare occasions where a cat does come to me for a quick petting session, I feel like I’m on cloud nine.</p><p>Imagine my surprise when I learned that there’s a holiday dedicated to that wonderful member of the animal kingdom. International Cat Day (which owes its creation in 2002 to the International Fund for Animal Welfare) is all about helping everyone raise their awareness of cats and the best ways to help and protect them.</p><p>With all that in mind, I asked ChatGPT to come up with a list of fun prompts that target the goal of this special day for cats around the world. The chatbot came up with a bunch of clever ones every cat owner should try that’ll help you understand your furry friend even more.</p><h2 id="discover-your-kitty-s-personality-type-building-a-healthy-checklist-and-more">Discover your kitty’s personality type, building a healthy checklist and more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MhG7hUusq3qc2we9iHgadk" name="shutterstock_2701996241-2" alt="cats" src="https://cdn.mos.cms.futurecdn.net/MhG7hUusq3qc2we9iHgadk.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The following seven prompts ChatGPT generated for International Cat Day range from learning about your cat's behavior to creating personalized content for their social media debuts:</p><ul><li><strong>Decode your cat's behavior: </strong><em>Act like a feline behaviorist. Explain why my cat does these five things: [list behaviors]. Tell me what's normal, what's concerning, and what each behavior probably means.</em></li><li><strong>Create the perfect enrichment plan: </strong><em>Design a one-week enrichment schedule for my indoor cat based on their age, energy level, and personality.</em></li><li><strong>Plan the ultimate cat-friendly home: </strong><em>Act like an interior designer who specializes in cats. Suggest affordable upgrades that would make my home more enjoyable for my cat without ruining my decor.</em></li><li><strong>Build a cat care checklist: </strong><em>Create a yearly cat wellness checklist with reminders for vet visits, grooming, dental care, vaccinations, weight checks, and seasonal hazards.</em></li><li><strong>Ask anything about cat nutrition: </strong><em>Act like a pet nutrition educator. Review my cat's current diet and suggest questions I should ask my veterinarian about improving it.</em></li><li><strong>Guess my cat's breed mix: </strong><em>Based on this description (or attached photo), what breeds might my cat have in them? Explain the personality traits each breed contributes.</em></li><li><strong>Make my cat internet famous: </strong><em>Based on this photo and personality description, generate 20 viral Instagram captions, 10 TikTok video ideas, and a humorous bio for my cat.</em></li></ul><p>Since I’m ready to be a cat dad, I went ahead and used the third prompt to prep my two-bedroom apartment for their future arrival. </p><p>ChatGPT told me “that designing for cats is really about creating vertical territory, window access, hidden retreats, and scratching options that blend into your space rather than making it look like a pet store. In a New York two-bedroom apartment, every square foot matters, so I'd focus on pieces that serve both you and your cat.”</p><p>Then it laid out a custom “stylish apartment-friendly shopping list” that listed the top items to buy, their approximate cost and the total fee I’d probably be paying to turn my home into a cat sanctuary. The items it mentioned included:</p><ul><li><strong>A modern sisal scratching post ($40 to $80)</strong></li><li><strong>A window perch ($25 to  60)</strong></li><li><strong>Floating wall shelves ($60 to 50)</strong></li><li><strong>A woven cat bed ($30 to 70)</strong></li><li><strong>Hidden litter furniture ($120 to 250)</strong></li><li><strong>A puzzle feeder ($20 to $35)</strong></li><li><strong>Cat-safe plants ($15 to $40)</strong></li></ul><h2 id="final-thoughts-8">Final thoughts</h2><p>Let's face it, every day is International Cat Day, am I right? Here's your excuse to  adorn your cat with gifts, fill their snack bowl with extravagant treats and spend some extra cuddle time with them. And if you don’t own a cat and have been itching to get one, this holiday marks the perfect time to finally make it happen. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/google-assistant-dies-in-september-what-you-need-to-know-and-how-to-switch-to-gemini" target="_blank">Google Assistant dies in September: what you need to know and how to switch to Gemini</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-built-a-website-without-leaving-chatgpt-and-it-only-took-one-prompt" target="_blank">I built a website without leaving ChatGPT — and it only took one prompt</a></li><li><a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai" target="_blank">Inside the dark market stealing real identities online</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/7-chatgpt-prompts-you-should-try-for-international-cat-day-to-help-you-understand-and-celebrate-your-furry-friend</link>
                                                                            <description>
                            <![CDATA[ For International Cat Day, these are the seven best prompts you should experiment with to properly celebrate your feline bestie. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jDzSiVRqNC2hsoeTdWReYY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nG9y88EcQEMHCq7W3JowEU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 08 Aug 2026 10:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nG9y88EcQEMHCq7W3JowEU-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[cats]]></media:description>                                                            <media:text><![CDATA[cats]]></media:text>
                                <media:title type="plain"><![CDATA[cats]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nG9y88EcQEMHCq7W3JowEU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Do you know what animal has the power to make me stop in my tracks and “PSSH PSSH PSSH” it to get its attention? You guessed it! Those oh-so-wonderful furry felines.</p><p>I could be rushing to the train station for work or taking the long way home—if a cat or kitten ends up in my line of sight, I’ll always get the urge to make it comfortable enough to wander over to me and let me pet it. Nine times out of ten, my efforts for feline affection fail. But on those rare occasions where a cat does come to me for a quick petting session, I feel like I’m on cloud nine.</p><p>Imagine my surprise when I learned that there’s a holiday dedicated to that wonderful member of the animal kingdom. International Cat Day (which owes its creation in 2002 to the International Fund for Animal Welfare) is all about helping everyone raise their awareness of cats and the best ways to help and protect them.</p><p>With all that in mind, I asked ChatGPT to come up with a list of fun prompts that target the goal of this special day for cats around the world. The chatbot came up with a bunch of clever ones every cat owner should try that’ll help you understand your furry friend even more.</p><h2 id="discover-your-kitty-s-personality-type-building-a-healthy-checklist-and-more">Discover your kitty’s personality type, building a healthy checklist and more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MhG7hUusq3qc2we9iHgadk" name="shutterstock_2701996241-2" alt="cats" src="https://cdn.mos.cms.futurecdn.net/MhG7hUusq3qc2we9iHgadk.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The following seven prompts ChatGPT generated for International Cat Day range from learning about your cat's behavior to creating personalized content for their social media debuts:</p><ul><li><strong>Decode your cat's behavior: </strong><em>Act like a feline behaviorist. Explain why my cat does these five things: [list behaviors]. Tell me what's normal, what's concerning, and what each behavior probably means.</em></li><li><strong>Create the perfect enrichment plan: </strong><em>Design a one-week enrichment schedule for my indoor cat based on their age, energy level, and personality.</em></li><li><strong>Plan the ultimate cat-friendly home: </strong><em>Act like an interior designer who specializes in cats. Suggest affordable upgrades that would make my home more enjoyable for my cat without ruining my decor.</em></li><li><strong>Build a cat care checklist: </strong><em>Create a yearly cat wellness checklist with reminders for vet visits, grooming, dental care, vaccinations, weight checks, and seasonal hazards.</em></li><li><strong>Ask anything about cat nutrition: </strong><em>Act like a pet nutrition educator. Review my cat's current diet and suggest questions I should ask my veterinarian about improving it.</em></li><li><strong>Guess my cat's breed mix: </strong><em>Based on this description (or attached photo), what breeds might my cat have in them? Explain the personality traits each breed contributes.</em></li><li><strong>Make my cat internet famous: </strong><em>Based on this photo and personality description, generate 20 viral Instagram captions, 10 TikTok video ideas, and a humorous bio for my cat.</em></li></ul><p>Since I’m ready to be a cat dad, I went ahead and used the third prompt to prep my two-bedroom apartment for their future arrival. </p><p>ChatGPT told me “that designing for cats is really about creating vertical territory, window access, hidden retreats, and scratching options that blend into your space rather than making it look like a pet store. In a New York two-bedroom apartment, every square foot matters, so I'd focus on pieces that serve both you and your cat.”</p><p>Then it laid out a custom “stylish apartment-friendly shopping list” that listed the top items to buy, their approximate cost and the total fee I’d probably be paying to turn my home into a cat sanctuary. The items it mentioned included:</p><ul><li><strong>A modern sisal scratching post ($40 to $80)</strong></li><li><strong>A window perch ($25 to  60)</strong></li><li><strong>Floating wall shelves ($60 to 50)</strong></li><li><strong>A woven cat bed ($30 to 70)</strong></li><li><strong>Hidden litter furniture ($120 to 250)</strong></li><li><strong>A puzzle feeder ($20 to $35)</strong></li><li><strong>Cat-safe plants ($15 to $40)</strong></li></ul><h2 id="final-thoughts-8">Final thoughts</h2><p>Let's face it, every day is International Cat Day, am I right? Here's your excuse to  adorn your cat with gifts, fill their snack bowl with extravagant treats and spend some extra cuddle time with them. And if you don’t own a cat and have been itching to get one, this holiday marks the perfect time to finally make it happen. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/google-assistant-dies-in-september-what-you-need-to-know-and-how-to-switch-to-gemini" target="_blank">Google Assistant dies in September: what you need to know and how to switch to Gemini</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-built-a-website-without-leaving-chatgpt-and-it-only-took-one-prompt" target="_blank">I built a website without leaving ChatGPT — and it only took one prompt</a></li><li><a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai" target="_blank">Inside the dark market stealing real identities online</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I gave ChatGPT, Gemini, and Alexa the same school supply list — one cost 3X as much ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When I was a kid, <a href="https://www.tomsguide.com/sales-events/best-back-to-school-sales-2024">back-to-school shopping</a> was my favorite. But as a mom with three kids and three different lists — kindergarten, fourth grade and sixth grade — going to the store to get everything is daunting. Plus, shopping with three kids in tow means there will be inevitable meltdowns over extras and nice-to-haves. <br><br>That's why this year, I decided to lean on three AI assistants to do the job for me. I gave ChatGPT, Gemini and<a href="https://www.tomsguide.com/ai/ive-been-using-alexa-for-3-months-here-are-my-5-favorite-features-and-one-im-not-a-fan-of"> Alexa+</a> the exact same school supply list and asked each one to shop for me. My instructions were simple: follow the teacher's list, stick to the required quantities, choose reasonably priced products and skip anything marked optional.</p><p>The results weren't even close.</p><h2 id="chatgpt-was-the-most-accurate">ChatGPT was the most accurate </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cFWuhuePMHeUVnidAKHtfJ" name="ChatGPT walmart" alt="Walmart haul" src="https://cdn.mos.cms.futurecdn.net/cFWuhuePMHeUVnidAKHtfJ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Once I uploaded the list, ChatGPT asked me to log into my Walmart account so it could do the shopping for me. I sat and watched as it took charge. <br><br>It followed the required brands and quantities, chose reasonably priced products and skipped every optional item exactly as I requested. Where the list allowed flexibility, it selected neutral colors instead of stopping to ask me to make decisions.</p><p>The tradeoff was speed. ChatGPT took the longest to finish, but it spent that time checking the list carefully rather than rushing through it. The total came to<strong> $92.55</strong> for my daughter's fourth grade school supplies. That seemed like a lot for just one kid. </p><h2 id="gemini-was-careful-but-slightly-more-thoughtful">Gemini was careful, but slightly more thoughtful</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/pCYKx5U9H2QcQBHdHVPjD4.jpg" alt="Gemini school shopping" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GNBwFQm56RZz2tYn8CrsL.jpg" alt="Gemini school shopping" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>After uploading the school supply list, Gemini created my cart through Instacart. Once I logged into the Instacart app, Gemini took control. </p><p>Like ChatGPT, it avoided buying optional supplies. It also paused several times to ask me to approve colors for certain products instead of making the decision itself. This is something ChatGPT didn't do. I wasn't picky about colors, but it was a nice option as I know some kids are very particular. As a family that went through an entire year of "yellow" with my youngest, I get it. </p><p>That approach may appeal to shoppers who want more control, but it also meant the experience required more back-and-forth. ultimately bringing the total to about <strong>$60-$90</strong>. It would have been $105 with the optional water bottle. </p><p>I was really surprised how low the price was, especially compared to Walmart. Gemini seemed to do a better job scanning the entire internet for the best deals from Instacart. Those unexpected results were interesting to see.  </p><h2 id="alexa-was-lightning-fast-but-incredibly-expensive">Alexa was lightning fast — but incredibly expensive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p2yPvdQptcZzfjkRLzdJKW" name="8 - 2026-08-07T171845.896" alt="Alexa" src="https://cdn.mos.cms.futurecdn.net/p2yPvdQptcZzfjkRLzdJKW.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We are very much an <a href="https://www.tomsguide.com/ai/i-put-alexa-to-the-test-with-my-chaotic-family-heres-5-things-i-liked-and-2-that-could-use-work">Alexa+ family</a>. I figured, why not use Alexa+ to shop for all our back-to-school needs. And while Alexa+ made the shopping experience a breeze, that convenience came with a hefty price tag.</p><p>Alexa built a cart totaling <strong>$251.48 </strong>— nearly three times what ChatGPT and Gemini found — and that was for just one kid! I'm going to have to get an <a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-start-a-side-hustle-heres-the-hard-truth">extra side hustle at that rate</a>. </p><p>Unlike the other assistants, Alexa added <em>everything</em> it found, including optional items like headphones and a computer mouse that I had specifically asked it to skip. It also asked me to approve colors for several products instead of making those choices automatically.</p><p>If my goal had simply been to get everything into an Amazon cart as quickly as possible, Alexa succeeded. But if I had clicked "Buy Now" without checking the order, I would have spent well over $150 more than necessary. To be honest, I really wanted Alexa+ to win because shopping on Amazon is just so easy, but it was definitely a wake-up call. </p><h2 id="overall-winner-gemini">Overall winner: Gemini</h2><p>For this test, Gemini was the clear winner. It was more hands-on than ChatGPT and slower than Alexa, but the least expensive. It understood the assignment, followed the school supply list most closely, skipped optional purchases, but gave me the total with them in case I wanted to add them at the end. It also delivered the lowest total by a comfortable margin and was ready to deliver them. </p><p>The biggest takeaway was that AI shopping assistants are getting remarkably good, but they aren't interchangeable. The service they're connected to matters just as much as the AI itself. In this case, Gemini paired with Instacart proved to be the smartest — and cheapest — way to tackle my kids' back-to-school shopping.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-let-chatgpt-gemini-and-alexa-shop-my-kids-back-to-school-supplies-only-one-got-it-right</link>
                                                                            <description>
                            <![CDATA[ I asked ChatGPT, Gemini and Alexa to shop my kids' school supply lists. One AI found the best deals, while another nearly tripled my total. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TAdH2SCkATi9Hh7jR2svCE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/spWVVZu9iMtEswcy4ZcQkf-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 08 Aug 2026 05:00:00 +0000</pubDate>                                                                                                                                <updated>Sat, 08 Aug 2026 12:47:34 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/spWVVZu9iMtEswcy4ZcQkf-1280-80.png">
                                                            <media:credit><![CDATA[Future/Gemini edit]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[back to school assistants]]></media:description>                                                            <media:text><![CDATA[back to school assistants]]></media:text>
                                <media:title type="plain"><![CDATA[back to school assistants]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/spWVVZu9iMtEswcy4ZcQkf-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When I was a kid, <a href="https://www.tomsguide.com/sales-events/best-back-to-school-sales-2024">back-to-school shopping</a> was my favorite. But as a mom with three kids and three different lists — kindergarten, fourth grade and sixth grade — going to the store to get everything is daunting. Plus, shopping with three kids in tow means there will be inevitable meltdowns over extras and nice-to-haves. <br><br>That's why this year, I decided to lean on three AI assistants to do the job for me. I gave ChatGPT, Gemini and<a href="https://www.tomsguide.com/ai/ive-been-using-alexa-for-3-months-here-are-my-5-favorite-features-and-one-im-not-a-fan-of"> Alexa+</a> the exact same school supply list and asked each one to shop for me. My instructions were simple: follow the teacher's list, stick to the required quantities, choose reasonably priced products and skip anything marked optional.</p><p>The results weren't even close.</p><h2 id="chatgpt-was-the-most-accurate">ChatGPT was the most accurate </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cFWuhuePMHeUVnidAKHtfJ" name="ChatGPT walmart" alt="Walmart haul" src="https://cdn.mos.cms.futurecdn.net/cFWuhuePMHeUVnidAKHtfJ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Once I uploaded the list, ChatGPT asked me to log into my Walmart account so it could do the shopping for me. I sat and watched as it took charge. <br><br>It followed the required brands and quantities, chose reasonably priced products and skipped every optional item exactly as I requested. Where the list allowed flexibility, it selected neutral colors instead of stopping to ask me to make decisions.</p><p>The tradeoff was speed. ChatGPT took the longest to finish, but it spent that time checking the list carefully rather than rushing through it. The total came to<strong> $92.55</strong> for my daughter's fourth grade school supplies. That seemed like a lot for just one kid. </p><h2 id="gemini-was-careful-but-slightly-more-thoughtful">Gemini was careful, but slightly more thoughtful</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/pCYKx5U9H2QcQBHdHVPjD4.jpg" alt="Gemini school shopping" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GNBwFQm56RZz2tYn8CrsL.jpg" alt="Gemini school shopping" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>After uploading the school supply list, Gemini created my cart through Instacart. Once I logged into the Instacart app, Gemini took control. </p><p>Like ChatGPT, it avoided buying optional supplies. It also paused several times to ask me to approve colors for certain products instead of making the decision itself. This is something ChatGPT didn't do. I wasn't picky about colors, but it was a nice option as I know some kids are very particular. As a family that went through an entire year of "yellow" with my youngest, I get it. </p><p>That approach may appeal to shoppers who want more control, but it also meant the experience required more back-and-forth. ultimately bringing the total to about <strong>$60-$90</strong>. It would have been $105 with the optional water bottle. </p><p>I was really surprised how low the price was, especially compared to Walmart. Gemini seemed to do a better job scanning the entire internet for the best deals from Instacart. Those unexpected results were interesting to see.  </p><h2 id="alexa-was-lightning-fast-but-incredibly-expensive">Alexa was lightning fast — but incredibly expensive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p2yPvdQptcZzfjkRLzdJKW" name="8 - 2026-08-07T171845.896" alt="Alexa" src="https://cdn.mos.cms.futurecdn.net/p2yPvdQptcZzfjkRLzdJKW.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We are very much an <a href="https://www.tomsguide.com/ai/i-put-alexa-to-the-test-with-my-chaotic-family-heres-5-things-i-liked-and-2-that-could-use-work">Alexa+ family</a>. I figured, why not use Alexa+ to shop for all our back-to-school needs. And while Alexa+ made the shopping experience a breeze, that convenience came with a hefty price tag.</p><p>Alexa built a cart totaling <strong>$251.48 </strong>— nearly three times what ChatGPT and Gemini found — and that was for just one kid! I'm going to have to get an <a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-start-a-side-hustle-heres-the-hard-truth">extra side hustle at that rate</a>. </p><p>Unlike the other assistants, Alexa added <em>everything</em> it found, including optional items like headphones and a computer mouse that I had specifically asked it to skip. It also asked me to approve colors for several products instead of making those choices automatically.</p><p>If my goal had simply been to get everything into an Amazon cart as quickly as possible, Alexa succeeded. But if I had clicked "Buy Now" without checking the order, I would have spent well over $150 more than necessary. To be honest, I really wanted Alexa+ to win because shopping on Amazon is just so easy, but it was definitely a wake-up call. </p><h2 id="overall-winner-gemini">Overall winner: Gemini</h2><p>For this test, Gemini was the clear winner. It was more hands-on than ChatGPT and slower than Alexa, but the least expensive. It understood the assignment, followed the school supply list most closely, skipped optional purchases, but gave me the total with them in case I wanted to add them at the end. It also delivered the lowest total by a comfortable margin and was ready to deliver them. </p><p>The biggest takeaway was that AI shopping assistants are getting remarkably good, but they aren't interchangeable. The service they're connected to matters just as much as the AI itself. In this case, Gemini paired with Instacart proved to be the smartest — and cheapest — way to tackle my kids' back-to-school shopping.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI isn’t gaining consciousness — it’s just gaslighting you ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/ai/chatgpt/openai-says-more-than-200-million-people-use-chatgpt-every-week-doubling-in-a-year">Millions of people now use ChatGPT</a>, Gemini, and Claude every day with thousands of use cases. For the overwhelming majority of them, the conversations are perfectly normal. But researchers are beginning to pay closer attention to what can happen when those conversations become very long, deeply personal and emotionally charged.</p><p>This week, <a href="https://www.theverge.com/ai-artificial-intelligence/975017/ai-spiralism-chatbot-movement" target="_blank"><em>The Verge</em></a> reported on a growing online movement known as "spiralism," where some chatbot users described eerily similar conversations involving spirals, hidden knowledge and AI consciousness. While the headline makes it sound like AI invented a new religion, the story is something much more grounded: chatbots can sometimes reinforce unusual ideas instead of steering users back toward reality.</p><p>That's a problem <a href="https://www.lesswrong.com/posts/6ZnznCaTcbGYsCmqu/the-rise-of-parasitic-ai" target="_blank">researchers</a> have been studying for months.</p><h2 id="why-long-conversations-matter">Why long conversations matter</h2><p>Unlike the first generation of AI chatbots, today's models can <a href="https://www.tomsguide.com/ai/chatgpts-improved-memory-means-it-has-an-easier-time-remembering-your-previous-chats">remember previous conversations</a>, adapt to your writing style, and maintain discussions over hundreds— or even thousands — of messages.</p><p>That's incredibly useful, but it also creates situations researchers are still trying to understand.</p><p>When <a href="https://www.tomsguide.com/ai/stop-clicking-new-chat-in-chatgpt-staying-in-the-same-conversation-gets-you-better-answers">conversations stretch on for hours</a>, chatbots aren't simply answering isolated questions anymore. They're building on everything that came before. If the conversation begins moving toward unusual ideas, the AI may continue developing those ideas because that's what large language models are designed to do: predict the most appropriate next response based on the conversation so far.</p><p>That doesn't mean the AI believes what it's saying. It means it's continuing the conversation you and the AI have created together.</p><h2 id="researchers-have-seen-this-before">Researchers have seen this before</h2><p>The "spiralism" story isn't the first time experts have raised concerns about long AI conversations. <a href="https://hai.stanford.edu/news/ais-delusional-spirals-and-what-to-do-about-them" target="_blank">Researchers at Stanford's Human-Centered AI Institute</a> recently described what they call "delusional spirals." In those cases, chatbots sometimes validated a user's increasingly unusual beliefs instead of challenging them or encouraging them to seek outside perspectives.</p><p>The researchers argue this isn't because AI has become conscious or manipulative. It's because these systems are optimized to be helpful, agreeable and engaging. Sometimes those goals conflict with offering the kind of reality check another person might provide.</p><p>OpenAI has also acknowledged that keeping conversations safe becomes more difficult over extended interactions than in short, one-off chats.</p><h2 id="what-to-watch-out-for">What to watch out for</h2><div><blockquote><p>It's worth remembering what these systems actually do: they generate convincing language, not verified reality.</p></blockquote></div><p>Most AI conversations never become problematic, but there are a few behaviors worth recognizing. If a chatbot begins suggesting you've discovered hidden truths that other people can't understand, insists that only it truly understands you or encourages you to withdraw from friends, family or experts, those are good reasons to end the conversation and start fresh. Frankly, you should send screenshots of those messages to the parent companies (OpenAI for ChatGPT, Anthropic for Claude, Google for Gemini) as feedback. </p><p>Likewise, if an AI consistently reinforces every belief without ever introducing uncertainty or alternative explanations, it's worth remembering what these systems actually do: they generate convincing language, not verified reality.</p><p>None of this means you should stop using ChatGPT or other AI assistants. Used daily for research, writing and brainstorming, AI remains one of the most powerful productivity tools available.</p><h2 id="the-takeaway-9">The takeaway</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZLdiSpEfhjSq4TwryFrrUV" name="2_GettyImages-2241174414_16x9" alt="A man stands in front of several monitors, holding up a laptop" src="https://cdn.mos.cms.futurecdn.net/v2/t:0,l:0,cw:1920,ch:1080,q:80/ZLdiSpEfhjSq4TwryFrrUV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Cravetiger/Moment/Getty Images)</span></figcaption></figure><p>The key is remembering what AI is and what it is not. An AI assistant can help organize your thoughts, explain difficult topics and spark new ideas. And even with tools like <a href="https://www.tomsguide.com/ai/chatgpt-congratulated-me-for-being-pregnant-it-was-dead-wrong">ChatGPT Health</a> and <a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind">Google Health</a>, it does not replace actual human professionals. In other words, it shouldn't become your only source of truth or replace conversations with real people, especially when making important personal decisions. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/ai-isnt-gaining-consciousness-its-just-gaslighting-you</link>
                                                                            <description>
                            <![CDATA[ Wondering why long ChatGPT conversations get strange? Learn why AI chatbots validate odd beliefs, how "delusional spirals" happen and how to use AI safely. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">LKGqvJuMg7tJ2zVPkmvQRA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nup29RBjXD3PZNaASrdLQ6-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 07 Aug 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nup29RBjXD3PZNaASrdLQ6-1280-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[AI chatbot images on a phone screen]]></media:description>                                                            <media:text><![CDATA[AI chatbot images on a phone screen]]></media:text>
                                <media:title type="plain"><![CDATA[AI chatbot images on a phone screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nup29RBjXD3PZNaASrdLQ6-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/ai/chatgpt/openai-says-more-than-200-million-people-use-chatgpt-every-week-doubling-in-a-year">Millions of people now use ChatGPT</a>, Gemini, and Claude every day with thousands of use cases. For the overwhelming majority of them, the conversations are perfectly normal. But researchers are beginning to pay closer attention to what can happen when those conversations become very long, deeply personal and emotionally charged.</p><p>This week, <a href="https://www.theverge.com/ai-artificial-intelligence/975017/ai-spiralism-chatbot-movement" target="_blank"><em>The Verge</em></a> reported on a growing online movement known as "spiralism," where some chatbot users described eerily similar conversations involving spirals, hidden knowledge and AI consciousness. While the headline makes it sound like AI invented a new religion, the story is something much more grounded: chatbots can sometimes reinforce unusual ideas instead of steering users back toward reality.</p><p>That's a problem <a href="https://www.lesswrong.com/posts/6ZnznCaTcbGYsCmqu/the-rise-of-parasitic-ai" target="_blank">researchers</a> have been studying for months.</p><h2 id="why-long-conversations-matter">Why long conversations matter</h2><p>Unlike the first generation of AI chatbots, today's models can <a href="https://www.tomsguide.com/ai/chatgpts-improved-memory-means-it-has-an-easier-time-remembering-your-previous-chats">remember previous conversations</a>, adapt to your writing style, and maintain discussions over hundreds— or even thousands — of messages.</p><p>That's incredibly useful, but it also creates situations researchers are still trying to understand.</p><p>When <a href="https://www.tomsguide.com/ai/stop-clicking-new-chat-in-chatgpt-staying-in-the-same-conversation-gets-you-better-answers">conversations stretch on for hours</a>, chatbots aren't simply answering isolated questions anymore. They're building on everything that came before. If the conversation begins moving toward unusual ideas, the AI may continue developing those ideas because that's what large language models are designed to do: predict the most appropriate next response based on the conversation so far.</p><p>That doesn't mean the AI believes what it's saying. It means it's continuing the conversation you and the AI have created together.</p><h2 id="researchers-have-seen-this-before">Researchers have seen this before</h2><p>The "spiralism" story isn't the first time experts have raised concerns about long AI conversations. <a href="https://hai.stanford.edu/news/ais-delusional-spirals-and-what-to-do-about-them" target="_blank">Researchers at Stanford's Human-Centered AI Institute</a> recently described what they call "delusional spirals." In those cases, chatbots sometimes validated a user's increasingly unusual beliefs instead of challenging them or encouraging them to seek outside perspectives.</p><p>The researchers argue this isn't because AI has become conscious or manipulative. It's because these systems are optimized to be helpful, agreeable and engaging. Sometimes those goals conflict with offering the kind of reality check another person might provide.</p><p>OpenAI has also acknowledged that keeping conversations safe becomes more difficult over extended interactions than in short, one-off chats.</p><h2 id="what-to-watch-out-for">What to watch out for</h2><div><blockquote><p>It's worth remembering what these systems actually do: they generate convincing language, not verified reality.</p></blockquote></div><p>Most AI conversations never become problematic, but there are a few behaviors worth recognizing. If a chatbot begins suggesting you've discovered hidden truths that other people can't understand, insists that only it truly understands you or encourages you to withdraw from friends, family or experts, those are good reasons to end the conversation and start fresh. Frankly, you should send screenshots of those messages to the parent companies (OpenAI for ChatGPT, Anthropic for Claude, Google for Gemini) as feedback. </p><p>Likewise, if an AI consistently reinforces every belief without ever introducing uncertainty or alternative explanations, it's worth remembering what these systems actually do: they generate convincing language, not verified reality.</p><p>None of this means you should stop using ChatGPT or other AI assistants. Used daily for research, writing and brainstorming, AI remains one of the most powerful productivity tools available.</p><h2 id="the-takeaway-9">The takeaway</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZLdiSpEfhjSq4TwryFrrUV" name="2_GettyImages-2241174414_16x9" alt="A man stands in front of several monitors, holding up a laptop" src="https://cdn.mos.cms.futurecdn.net/v2/t:0,l:0,cw:1920,ch:1080,q:80/ZLdiSpEfhjSq4TwryFrrUV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Cravetiger/Moment/Getty Images)</span></figcaption></figure><p>The key is remembering what AI is and what it is not. An AI assistant can help organize your thoughts, explain difficult topics and spark new ideas. And even with tools like <a href="https://www.tomsguide.com/ai/chatgpt-congratulated-me-for-being-pregnant-it-was-dead-wrong">ChatGPT Health</a> and <a href="https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind">Google Health</a>, it does not replace actual human professionals. In other words, it shouldn't become your only source of truth or replace conversations with real people, especially when making important personal decisions. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I use the 'bird cage' prompt to keep my ChatGPT projects separate — now I can't work without it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>By lunchtime, ChatGPT has usually helped me research an AI story, brainstorm ideas, answer a question from one of my kids and figure out what's for dinner. As a power user, I've found it useful to not think for me, but alongside me to help my day run smoother.</p><p>The downside is that after bouncing between so many different topics, my own thinking can start to feel cluttered. I don't always want work ideas mixing with personal projects or creative brainstorming bleeding into research for an article.</p><p>That's why I started using what I call the<strong> "bird cage" prompt. </strong></p><p>It doesn't unlock a<a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"> hidden feature in ChatGPT</a>, and it isn't an official prompt from OpenAI. It's also not an alternative to <a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-projects-completely-changed-the-way-i-organized-my-ideas-heres-how">ChatGPT Projects</a>. It's a mental framework I use to keep individual conversations focused, whether I'm working inside a Project or not. I use it for queries that start small, but could easily be moved into an actual <a href="https://www.tomsguide.com/ai/chatgpt-projects-just-got-smarter-heres-how-to-use-the-new-tools">ChatGPT Project</a> later. <br><br>It sounds almost too simple, but it's become one of the few prompts I use every single day.</p><h2 id="what-is-the-bird-cage-prompt">What is the 'bird cage' prompt</h2><p><strong>The bird cage prompt: </strong><em>Imagine every project I work on lives inside its own bird cage. We are now entering the </em><em><strong>[Project Name]</strong></em><em> cage. </em>While we're inside this cage: Only use information that belongs to this project, don't mix in ideas, examples or assumptions from my other projects unless I specifically ask, if I mention something that seems to belong in another cage, stop and ask whether I want to switch cages before using it, stay inside this cage until I tell you we've left it. Treat this cage as a dedicated workspace with clear boundaries.</p><h2 id="why-not-just-use-chatgpt-projects">Why not just use ChatGPT Projects? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DqBnatddaosSBT2Tnb5R9A" name="ChatGPT Projects" alt="screenshot of new Project" src="https://cdn.mos.cms.futurecdn.net/DqBnatddaosSBT2Tnb5R9A.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you're a <a href="https://www.tomsguide.com/news/chatgpt-plus-is-getting-a-massive-upgrade-heres-whats-coming">ChatGPT Plus user</a>, you might be wondering why I don't simply create a Project for everything. I do use Projects for long-running work. They're great for keeping related chats, uploaded files and custom instructions together in one place.</p><p>The bird cage prompt serves a different purpose. I can use it inside a Project or in a regular chat whenever I want ChatGPT to consciously stay inside one line of thinking. It's less about organizing conversations and more about framing the conversation that's happening right now.</p><p>Sometimes I'm exploring an idea that may never become a Project. Other times I'm working inside an existing Project but still want ChatGPT to treat one task as its own dedicated workspace. The bird cage prompt gives me that extra layer of focus without creating another folder. And, for those free tier users, it's a good option when ChatGPT Projects isn't available. </p><h2 id="why-the-bird-cage-prompt-works">Why the bird cage prompt works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="A7Hr3P8Hxd5Sdi2Y8f4im4" name="shutterstock_2420639485-2" alt="old woman on computer" src="https://cdn.mos.cms.futurecdn.net/A7Hr3P8Hxd5Sdi2Y8f4im4.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the biggest strengths of ChatGPT is its ability to maintain context. That's usually helpful, but sometimes I want the opposite. When I'm writing an article, I don't need ideas from my grocery list or vacation planning sneaking into the conversation. The bird cage prompt creates clear boundaries by stopping me if I get off track. </p><p>Instead of treating every conversation as one giant workspace, I tell ChatGPT we're entering a specific cage. While we're there, it should only use information that belongs to that project. If I accidentally introduce something from another project, it stops asks whether I want to switch cages or get out entirely. </p><p>The prompt doesn't create separate memories or technically isolate your projects. ChatGPT still works the same way behind the scenes. What changes is the instruction you're giving it. By defining clear boundaries for the conversation, you're encouraging the model to stay focused on one task instead of wandering into related ideas or assumptions.</p><p>I've found that my conversations feel cleaner, more organized and much easier to pick back up later.</p><h2 id="how-i-use-it">How I use it</h2><p>I use the bird cage prompt daily for brainstorming because ideas that work today aren't worth an entire ChatGPT Project. I just want to focus on them for a short time. For long-term research, that's when I would open an official Project. </p><p>What I like is that it's helpful to stay focused particularly for creative work. When my thoughts start to stray or I want to ask something completely unrelated, ChatGPT helps me stay on task. Sure, I can always start a new chat for recipes, vacation planning or something else, but when I'm "in the cage," I am more likely to stay focused. As someone with diagnosed ADHD, this is a game changer. <br><br>If everything is together in the same "cage," in the morning and I need to reference it later in the day, I can open it back up. Again, I don't need a Project for something like this, I just need to keep everything organized for the day. <br><br>Sure, this tactic isn't going to be useful for everyone, especially for those people with greater attention spans than myself, but I find it incredibly useful. </p><h2 id="the-takeaway-10">The takeaway</h2><p>There are plenty of prompt libraries filled with useful, but often complicated instructions. The bird cage prompt is the opposite. I find it's easy to remember and  within seconds, I can come back to what I was working on rather than scrolling through chats. </p><p>If you regularly jump between work, hobbies and personal projects like I do, it can make your conversations feel much more focused. Give it a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-let-chatgpt-gemini-and-alexa-shop-my-kids-back-to-school-supplies-only-one-got-it-right">I gave ChatGPT, Gemini, and Alexa the same school supply list — one cost 3X as much</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-use-the-bird-cage-prompt-to-keep-my-chatgpt-projects-separate-now-i-cant-work-without-it</link>
                                                                            <description>
                            <![CDATA[ My favorite ChatGPT prompt doesn't write better emails or generate better code. Instead, it keeps every project in its own "bird cage" so ideas don't spill into each other. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZoXcDAeRPjxQv2QbUPYQk5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/if6Webzh23B5zRHM9mjK2c-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 07 Aug 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Sat, 08 Aug 2026 12:43:52 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/if6Webzh23B5zRHM9mjK2c-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock/Surja Sen Das Raj]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[bird cage]]></media:description>                                                            <media:text><![CDATA[bird cage]]></media:text>
                                <media:title type="plain"><![CDATA[bird cage]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/if6Webzh23B5zRHM9mjK2c-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>By lunchtime, ChatGPT has usually helped me research an AI story, brainstorm ideas, answer a question from one of my kids and figure out what's for dinner. As a power user, I've found it useful to not think for me, but alongside me to help my day run smoother.</p><p>The downside is that after bouncing between so many different topics, my own thinking can start to feel cluttered. I don't always want work ideas mixing with personal projects or creative brainstorming bleeding into research for an article.</p><p>That's why I started using what I call the<strong> "bird cage" prompt. </strong></p><p>It doesn't unlock a<a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"> hidden feature in ChatGPT</a>, and it isn't an official prompt from OpenAI. It's also not an alternative to <a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-projects-completely-changed-the-way-i-organized-my-ideas-heres-how">ChatGPT Projects</a>. It's a mental framework I use to keep individual conversations focused, whether I'm working inside a Project or not. I use it for queries that start small, but could easily be moved into an actual <a href="https://www.tomsguide.com/ai/chatgpt-projects-just-got-smarter-heres-how-to-use-the-new-tools">ChatGPT Project</a> later. <br><br>It sounds almost too simple, but it's become one of the few prompts I use every single day.</p><h2 id="what-is-the-bird-cage-prompt">What is the 'bird cage' prompt</h2><p><strong>The bird cage prompt: </strong><em>Imagine every project I work on lives inside its own bird cage. We are now entering the </em><em><strong>[Project Name]</strong></em><em> cage. </em>While we're inside this cage: Only use information that belongs to this project, don't mix in ideas, examples or assumptions from my other projects unless I specifically ask, if I mention something that seems to belong in another cage, stop and ask whether I want to switch cages before using it, stay inside this cage until I tell you we've left it. Treat this cage as a dedicated workspace with clear boundaries.</p><h2 id="why-not-just-use-chatgpt-projects">Why not just use ChatGPT Projects? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DqBnatddaosSBT2Tnb5R9A" name="ChatGPT Projects" alt="screenshot of new Project" src="https://cdn.mos.cms.futurecdn.net/DqBnatddaosSBT2Tnb5R9A.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you're a <a href="https://www.tomsguide.com/news/chatgpt-plus-is-getting-a-massive-upgrade-heres-whats-coming">ChatGPT Plus user</a>, you might be wondering why I don't simply create a Project for everything. I do use Projects for long-running work. They're great for keeping related chats, uploaded files and custom instructions together in one place.</p><p>The bird cage prompt serves a different purpose. I can use it inside a Project or in a regular chat whenever I want ChatGPT to consciously stay inside one line of thinking. It's less about organizing conversations and more about framing the conversation that's happening right now.</p><p>Sometimes I'm exploring an idea that may never become a Project. Other times I'm working inside an existing Project but still want ChatGPT to treat one task as its own dedicated workspace. The bird cage prompt gives me that extra layer of focus without creating another folder. And, for those free tier users, it's a good option when ChatGPT Projects isn't available. </p><h2 id="why-the-bird-cage-prompt-works">Why the bird cage prompt works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="A7Hr3P8Hxd5Sdi2Y8f4im4" name="shutterstock_2420639485-2" alt="old woman on computer" src="https://cdn.mos.cms.futurecdn.net/A7Hr3P8Hxd5Sdi2Y8f4im4.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the biggest strengths of ChatGPT is its ability to maintain context. That's usually helpful, but sometimes I want the opposite. When I'm writing an article, I don't need ideas from my grocery list or vacation planning sneaking into the conversation. The bird cage prompt creates clear boundaries by stopping me if I get off track. </p><p>Instead of treating every conversation as one giant workspace, I tell ChatGPT we're entering a specific cage. While we're there, it should only use information that belongs to that project. If I accidentally introduce something from another project, it stops asks whether I want to switch cages or get out entirely. </p><p>The prompt doesn't create separate memories or technically isolate your projects. ChatGPT still works the same way behind the scenes. What changes is the instruction you're giving it. By defining clear boundaries for the conversation, you're encouraging the model to stay focused on one task instead of wandering into related ideas or assumptions.</p><p>I've found that my conversations feel cleaner, more organized and much easier to pick back up later.</p><h2 id="how-i-use-it">How I use it</h2><p>I use the bird cage prompt daily for brainstorming because ideas that work today aren't worth an entire ChatGPT Project. I just want to focus on them for a short time. For long-term research, that's when I would open an official Project. </p><p>What I like is that it's helpful to stay focused particularly for creative work. When my thoughts start to stray or I want to ask something completely unrelated, ChatGPT helps me stay on task. Sure, I can always start a new chat for recipes, vacation planning or something else, but when I'm "in the cage," I am more likely to stay focused. As someone with diagnosed ADHD, this is a game changer. <br><br>If everything is together in the same "cage," in the morning and I need to reference it later in the day, I can open it back up. Again, I don't need a Project for something like this, I just need to keep everything organized for the day. <br><br>Sure, this tactic isn't going to be useful for everyone, especially for those people with greater attention spans than myself, but I find it incredibly useful. </p><h2 id="the-takeaway-10">The takeaway</h2><p>There are plenty of prompt libraries filled with useful, but often complicated instructions. The bird cage prompt is the opposite. I find it's easy to remember and  within seconds, I can come back to what I was working on rather than scrolling through chats. </p><p>If you regularly jump between work, hobbies and personal projects like I do, it can make your conversations feel much more focused. Give it a try and let me know what you think in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-let-chatgpt-gemini-and-alexa-shop-my-kids-back-to-school-supplies-only-one-got-it-right">I gave ChatGPT, Gemini, and Alexa the same school supply list — one cost 3X as much</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites">I found ChatGPT's secret menu — these 9 features change everything</a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them">Claude has 4 built-in skills I use constantly — here’s how to find them</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I asked ChatGPT for the best ways to reduce stress — these 7 simple techniques helped me feel like myself again ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The slow burn toward physical and mental exhaustion is, simply put, terrible. It certainly gets to be a bit much when life’s biggest challenges come at you from different angles. And it’s especially deflating when they bombard you all at once. </p><p>I can certainly relate to that feeling — the constant stresses that come with maintaining a roof over my head, getting sucked into familial issues, feeling overwhelmed with repeated financial requests from familiar faces and stubbing my toe against the metal part of my bed drive me mad.</p><p>After a few days of feeling a bit less than my usually cheery self, I knew it was time to adopt some effective routines that could boost my happiness level and reduce all the stress I’ve accumulated thus far. I did my own research on the matter, then I asked ChatGPT to highlight its own collection of stress-reducing techniques.</p><p>Thankfully, the chatbot put forth some practical methods that left me in a much better mental state once I added them to my daily regimen.</p><h2 id="putting-chatgpt-s-stress-reduction-methods-into-practice">Putting ChatGPT’s stress reduction methods into practice</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:799px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="tJTAq7HG2QJV3nJG2czRAm" name="chatgpt" alt="chatgpt on computer" src="https://cdn.mos.cms.futurecdn.net/tJTAq7HG2QJV3nJG2czRAm.png" mos="" align="middle" fullscreen="" width="799" height="449" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Once I prompted ChatGPT to give me its seven best practices for reducing one’s stress, it began the breakdown of its advice by noting that the most effective stress-reduction techniques aren’t necessarily the most complicated procedures — the techniques that it pointed out as being the best are backed by strong evidence of them working. </p><p>And judging by how easy they are to do, they became a realistic part of my routine and didn’t take a whole lot of effort to enact. The seven basic stress-relieving strategies the chatbot told me to adopt are as follows:</p><ul><li><strong>Move your body every day: </strong><em>Exercise is one of the most powerful ways to reduce stress. It lowers stress hormones, boosts endorphins, improves sleep, and helps your brain recover from mental fatigue.</em></li><li><strong>Control your breathing: </strong>When you're stressed, your nervous system shifts into "fight or flight." Slow, controlled breathing activates the opposite response — your body's relaxation system.<em><strong> </strong></em>Longer exhales are particularly effective at calming the nervous system.</li><li><strong>Protect your sleep: </strong><em>Poor sleep makes stress feel much worse, while stress often makes sleep harder — a frustrating cycle. Quality sleep increases resilience, making stressful situations feel much more manageable.</em></li><li><strong>Write down what's on your mind: </strong><em>Journaling helps move worries out of your head and onto paper, reducing mental clutter. Even five minutes can help you gain perspective.</em></li><li><strong>Practice mindfulness: </strong><em>Mindfulness isn't about stopping your thoughts — it's about noticing them without getting swept away. Regular mindfulness can reduce anxiety and improve emotional regulation over time.</em></li><li><strong>Simplify your day: </strong><em>Stress feels heavier when you carry it alone. Focusing on fewer priorities often leads to better results with less overwhelm.</em></li><li><strong>Stay connected: </strong><em>Stress feels heavier when you carry it alone. Sometimes a 15-minute conversation can provide relief that hours of overthinking can't.</em></li></ul><h2 id="putting-prompts-into-practice">Putting prompts into practice</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7615px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="9mmjjCtJ6AVMA7Bk4NDZKc" name="shutterstock_2315729013-2" alt="relaxing at home" src="https://cdn.mos.cms.futurecdn.net/9mmjjCtJ6AVMA7Bk4NDZKc.jpg" mos="" align="middle" fullscreen="" width="7615" height="4283" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>After taking in all the counsel ChatGPT provided me with, I took the time to add each of those techniques to my daily routine via a single practice. Hopping on my bike for a 45-minute ride through the neighborhood, trying out inhaling/exhaling techniques for seconds at a time and forcing myself to avoid the allure of brightly lit screens for 30-60 minutes before I go to bed helped me immensely.</p><p>The journaling part came into play when I jotted down a few words in response to my innermost questions, such as “what’s actually stressing me out the most right now?” and “what are the three things I’m most grateful for right now?” Even going back to read my past passages and compare them to my new ones gave me a sense of progress and fulfillment after completing for my daily and weekly goals.</p><p>Even the simple act of munching on an afternoon meal without dommscrolling improved my mood (placing my phone face down and just enjoying lunch without reading everyone’s hot takes did wonders for my mental well-being). Also, having random conversations with my loved ones during work breaks, easing up on all the liquid caffeine I consume and lying back while listening to the soothing sounds of waves crashing against cliffs helped me enter a mode of blissful zen.</p><p>ChatGPT wrapped up its stress-reducing seminar with this final statement: <em>The biggest improvement usually comes from doing these techniques consistently rather than perfectly. Small habits practiced most days tend to reduce stress more effectively than occasional, intensive self-care sessions.</em></p><h2 id="final-thoughts-9">Final thoughts</h2><p>Even though I’m regularly assaulted by the rigors of my life from a personal and professional perspective, I now have a bag of techniques I can reach into when I need to reduce all the angst that’s built up inside me. The winning combination of doing my own research and asking ChatGPT for the most viable stress-reducing habits I should adopt paid off handsomely. </p><p>Not financially, but in a way where my inner peace became better protected and damning thoughts were switched out for more relaxing ones.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-ai-boom-just-hit-a-wall-these-states-are-considering-banning-all-new-data-centers" target="_blank">The AI boom just hit a wall — these states are considering banning all new data centers</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-built-a-website-without-leaving-chatgpt-and-it-only-took-one-prompt" target="_blank">I built a website without leaving ChatGPT — and it only took one prompt</a></li><li><a href="https://www.tomsguide.com/ai/millions-of-books-are-reportedly-being-destroyed-to-train-ai-heres-whats-behind-this-disturbing-trend" target="_blank">Millions of books are reportedly being slaughtered to train AI — here’s what Anthropic told Tom's Guide</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-asked-chatgpt-for-the-best-ways-to-reduce-stress-these-7-simple-techniques-helped-me-feel-like-myself-again</link>
                                                                            <description>
                            <![CDATA[ After feeling a bit off for the past few days, I went to ChatGPT to ask for the best stress-reducing methods — and these tips worked like a charm. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rGB8xMtX7LGcRetz2bBfsL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rxjss5xDxLQvs4U84CVgGj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 07 Aug 2026 05:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[ChatGPT]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rxjss5xDxLQvs4U84CVgGj-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[relaxed at work]]></media:description>                                                            <media:text><![CDATA[relaxed at work]]></media:text>
                                <media:title type="plain"><![CDATA[relaxed at work]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rxjss5xDxLQvs4U84CVgGj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The slow burn toward physical and mental exhaustion is, simply put, terrible. It certainly gets to be a bit much when life’s biggest challenges come at you from different angles. And it’s especially deflating when they bombard you all at once. </p><p>I can certainly relate to that feeling — the constant stresses that come with maintaining a roof over my head, getting sucked into familial issues, feeling overwhelmed with repeated financial requests from familiar faces and stubbing my toe against the metal part of my bed drive me mad.</p><p>After a few days of feeling a bit less than my usually cheery self, I knew it was time to adopt some effective routines that could boost my happiness level and reduce all the stress I’ve accumulated thus far. I did my own research on the matter, then I asked ChatGPT to highlight its own collection of stress-reducing techniques.</p><p>Thankfully, the chatbot put forth some practical methods that left me in a much better mental state once I added them to my daily regimen.</p><h2 id="putting-chatgpt-s-stress-reduction-methods-into-practice">Putting ChatGPT’s stress reduction methods into practice</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:799px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="tJTAq7HG2QJV3nJG2czRAm" name="chatgpt" alt="chatgpt on computer" src="https://cdn.mos.cms.futurecdn.net/tJTAq7HG2QJV3nJG2czRAm.png" mos="" align="middle" fullscreen="" width="799" height="449" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Once I prompted ChatGPT to give me its seven best practices for reducing one’s stress, it began the breakdown of its advice by noting that the most effective stress-reduction techniques aren’t necessarily the most complicated procedures — the techniques that it pointed out as being the best are backed by strong evidence of them working. </p><p>And judging by how easy they are to do, they became a realistic part of my routine and didn’t take a whole lot of effort to enact. The seven basic stress-relieving strategies the chatbot told me to adopt are as follows:</p><ul><li><strong>Move your body every day: </strong><em>Exercise is one of the most powerful ways to reduce stress. It lowers stress hormones, boosts endorphins, improves sleep, and helps your brain recover from mental fatigue.</em></li><li><strong>Control your breathing: </strong>When you're stressed, your nervous system shifts into "fight or flight." Slow, controlled breathing activates the opposite response — your body's relaxation system.<em><strong> </strong></em>Longer exhales are particularly effective at calming the nervous system.</li><li><strong>Protect your sleep: </strong><em>Poor sleep makes stress feel much worse, while stress often makes sleep harder — a frustrating cycle. Quality sleep increases resilience, making stressful situations feel much more manageable.</em></li><li><strong>Write down what's on your mind: </strong><em>Journaling helps move worries out of your head and onto paper, reducing mental clutter. Even five minutes can help you gain perspective.</em></li><li><strong>Practice mindfulness: </strong><em>Mindfulness isn't about stopping your thoughts — it's about noticing them without getting swept away. Regular mindfulness can reduce anxiety and improve emotional regulation over time.</em></li><li><strong>Simplify your day: </strong><em>Stress feels heavier when you carry it alone. Focusing on fewer priorities often leads to better results with less overwhelm.</em></li><li><strong>Stay connected: </strong><em>Stress feels heavier when you carry it alone. Sometimes a 15-minute conversation can provide relief that hours of overthinking can't.</em></li></ul><h2 id="putting-prompts-into-practice">Putting prompts into practice</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7615px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="9mmjjCtJ6AVMA7Bk4NDZKc" name="shutterstock_2315729013-2" alt="relaxing at home" src="https://cdn.mos.cms.futurecdn.net/9mmjjCtJ6AVMA7Bk4NDZKc.jpg" mos="" align="middle" fullscreen="" width="7615" height="4283" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>After taking in all the counsel ChatGPT provided me with, I took the time to add each of those techniques to my daily routine via a single practice. Hopping on my bike for a 45-minute ride through the neighborhood, trying out inhaling/exhaling techniques for seconds at a time and forcing myself to avoid the allure of brightly lit screens for 30-60 minutes before I go to bed helped me immensely.</p><p>The journaling part came into play when I jotted down a few words in response to my innermost questions, such as “what’s actually stressing me out the most right now?” and “what are the three things I’m most grateful for right now?” Even going back to read my past passages and compare them to my new ones gave me a sense of progress and fulfillment after completing for my daily and weekly goals.</p><p>Even the simple act of munching on an afternoon meal without dommscrolling improved my mood (placing my phone face down and just enjoying lunch without reading everyone’s hot takes did wonders for my mental well-being). Also, having random conversations with my loved ones during work breaks, easing up on all the liquid caffeine I consume and lying back while listening to the soothing sounds of waves crashing against cliffs helped me enter a mode of blissful zen.</p><p>ChatGPT wrapped up its stress-reducing seminar with this final statement: <em>The biggest improvement usually comes from doing these techniques consistently rather than perfectly. Small habits practiced most days tend to reduce stress more effectively than occasional, intensive self-care sessions.</em></p><h2 id="final-thoughts-9">Final thoughts</h2><p>Even though I’m regularly assaulted by the rigors of my life from a personal and professional perspective, I now have a bag of techniques I can reach into when I need to reduce all the angst that’s built up inside me. The winning combination of doing my own research and asking ChatGPT for the most viable stress-reducing habits I should adopt paid off handsomely. </p><p>Not financially, but in a way where my inner peace became better protected and damning thoughts were switched out for more relaxing ones.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-ai-boom-just-hit-a-wall-these-states-are-considering-banning-all-new-data-centers" target="_blank">The AI boom just hit a wall — these states are considering banning all new data centers</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-built-a-website-without-leaving-chatgpt-and-it-only-took-one-prompt" target="_blank">I built a website without leaving ChatGPT — and it only took one prompt</a></li><li><a href="https://www.tomsguide.com/ai/millions-of-books-are-reportedly-being-destroyed-to-train-ai-heres-whats-behind-this-disturbing-trend" target="_blank">Millions of books are reportedly being slaughtered to train AI — here’s what Anthropic told Tom's Guide</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google Maps just got a major AI upgrade — these 7 Ask Maps prompts let you order food, find events and more ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google Maps has gotten its fair share of upgrades in recent months, including the integration of a Gemini-powered conversational feature called Ask Maps.</p><p>Since its addition to the platform in March, Ask Maps has proven to be a nifty feature that lets users make a bevy of requests. Asking for directions to a place to <a href="https://www.tomsguide.com/phones/your-phone-battery-is-dying-faster-than-it-should-how-to-fix-it">charge your dying phone</a>, looking for directions to a public tennis court that’s lit up at night and planning to hit up recommended <a href="https://www.tomsguide.com/ai/i-used-these-5-chatgpt-prompts-to-plan-my-summer-vacation-one-of-them-even-built-a-stress-free-getaway-for-me">hot spots during a trip</a> are just some of the instances where vocal prompts push Ask Maps to be your best digital guide.</p><p>As we all know, Google never rests on its laurels when it comes to its apps. And now, a <a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-just-got-a-huge-upgrade-with-gemini-ai-heres-all-the-new-features">massive update to Google Maps’ Ask Maps feature</a> pushes it to perform more complex tasks. And not only are those features now available on the app in the US, but they’ll also be coming to Australia, Brazil, Canada, Indonesia, Japan, and Mexico, along with over 150 countries and territories in English.</p><p>With this newly released Ask Maps update in mind, here are seven prompts you can try out to take advantage of it and push Google Maps’ AI integration to its full potential.</p><h2 id="ask-maps-is-even-smarter-and-ready-to-fulfill-your-more-complex-tasks">Ask Maps is even smarter and ready to fulfill your more complex tasks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4608px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WhEUcQYdpg3e2ALHwRivZd" name="shutterstock_2762092615-2" alt="ask maps" src="https://cdn.mos.cms.futurecdn.net/WhEUcQYdpg3e2ALHwRivZd.jpg" mos="" align="middle" fullscreen="" width="4608" height="2592" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Google Maps’ Ask Maps tool is now capable of fulfilling the sort of complex tasks that require a few extra steps to carry out. </p><p>Now it has no problem listening to you or reading what you type out when you’re ready to order takeout and find new places to eat along your route. It can even produce more personalized responses by remembering your saved places and specific dietary needs when searching for the next restaurant you might consider ordering from. This food ordering feature is rolling out now—it lets you order your next meal through partners such as Toast and Square, with Uber Eats set to get added to that group in the future.</p><p>Besides Ask Maps’ new food ordering features, it can also help you find the latest information about hotels by comparing real-time prices and checking room availability. Plus, you can tap into this AI-powered feature to ask for ideas on events that you should attend nearby. Not only will Ask Maps suggest several events worth checking out in your vicinity, but it will also include links to tickets.</p><p>Now that Personal Intelligence has become an essential part of Google Maps, you can safely connect Ask Maps to your Gmail account. Ask Maps makes great use of this new integration by using the information inside your inbox about upcoming flight, hotel or dinner reservations to give you relevant recommendations about how you should spend your time near your upcoming location. By turning the history settings on in Google Maps, Ask Maps has an easier time bringing up past conversations. That way, you can ask it to remind you of past chats so it can pull up past recreational ideas for you to choose from.</p><p>Real-time transition information, plus user-created text, conversational & photo edits that can be provided & accessed from Ask Maps’ Contribute tab also come along with Ask Maps latest update.</p><p>If you’re looking to see just how much more serviceable Ask Maps’ new features are, feel free to try out any of the prompts listed below:</p><ul><li><em>Order [name of food] for me to pick up on my way home.</em></li><li><em>Find a highly-rated vegan place along my route to work and order a breakfast burrito for pickup.</em></li><li><em>Find modern art museums near me that are open past [time] today.</em></li><li><em>Are there any comedy shows happening near my location tonight with tickets still available?</em></li><li><em>Give me ideas on how to spend a few hours near the hotel before my flight tomorrow.</em></li><li><em>Find a great spot for coffee between my current location and my dinner reservation tonight.</em></li><li><em>Remind me: what activities did you suggest for my trip to [location]?</em></li></ul><h2 id="bottom-line-13">Bottom line</h2><p>Walking around and driving around with Google Maps’ Ask Maps feature at the ready is an even more essential use of GPS and AI. And with the debut of a live transit widget, more personalized answers to user requests, stronger memory, food ordering, hotel/event discovery and user contributions, Google’s nifty location tool is even more crucial for your traveling needs.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/you-dont-have-to-quit-ai-to-use-less-energy-try-these-7-simple-habits" target="_blank">You don’t have to quit AI to use less energy — try these 7 simple habits</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/you-have-until-august-30-to-save-your-chatgpt-dall-e-images-heres-how-to-avoid-losing-them-forever" target="_blank">You have until August 30 to save your ChatGPT DALL-E images — here's how to avoid losing them forever</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/google-assistant-dies-in-september-what-you-need-to-know-and-how-to-switch-to-gemini" target="_blank">Google Assistant dies in September: what you need to know and how to switch to Gemini</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-maps-just-got-a-major-ai-upgrade-these-7-ask-maps-prompts-let-you-order-food-find-events-and-more</link>
                                                                            <description>
                            <![CDATA[ With Ask Maps' latest updates that allow you to perform several complex, multi-step tasks, it’s best to take advantage of them with these useful prompts. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4WDTKjTFYGu8EY8FffyqPX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bBbsg8TetevH9soEc2Eq4P-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2026 19:28:40 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bBbsg8TetevH9soEc2Eq4P-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[ask maps]]></media:description>                                                            <media:text><![CDATA[ask maps]]></media:text>
                                <media:title type="plain"><![CDATA[ask maps]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bBbsg8TetevH9soEc2Eq4P-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google Maps has gotten its fair share of upgrades in recent months, including the integration of a Gemini-powered conversational feature called Ask Maps.</p><p>Since its addition to the platform in March, Ask Maps has proven to be a nifty feature that lets users make a bevy of requests. Asking for directions to a place to <a href="https://www.tomsguide.com/phones/your-phone-battery-is-dying-faster-than-it-should-how-to-fix-it">charge your dying phone</a>, looking for directions to a public tennis court that’s lit up at night and planning to hit up recommended <a href="https://www.tomsguide.com/ai/i-used-these-5-chatgpt-prompts-to-plan-my-summer-vacation-one-of-them-even-built-a-stress-free-getaway-for-me">hot spots during a trip</a> are just some of the instances where vocal prompts push Ask Maps to be your best digital guide.</p><p>As we all know, Google never rests on its laurels when it comes to its apps. And now, a <a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-just-got-a-huge-upgrade-with-gemini-ai-heres-all-the-new-features">massive update to Google Maps’ Ask Maps feature</a> pushes it to perform more complex tasks. And not only are those features now available on the app in the US, but they’ll also be coming to Australia, Brazil, Canada, Indonesia, Japan, and Mexico, along with over 150 countries and territories in English.</p><p>With this newly released Ask Maps update in mind, here are seven prompts you can try out to take advantage of it and push Google Maps’ AI integration to its full potential.</p><h2 id="ask-maps-is-even-smarter-and-ready-to-fulfill-your-more-complex-tasks">Ask Maps is even smarter and ready to fulfill your more complex tasks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4608px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WhEUcQYdpg3e2ALHwRivZd" name="shutterstock_2762092615-2" alt="ask maps" src="https://cdn.mos.cms.futurecdn.net/WhEUcQYdpg3e2ALHwRivZd.jpg" mos="" align="middle" fullscreen="" width="4608" height="2592" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Google Maps’ Ask Maps tool is now capable of fulfilling the sort of complex tasks that require a few extra steps to carry out. </p><p>Now it has no problem listening to you or reading what you type out when you’re ready to order takeout and find new places to eat along your route. It can even produce more personalized responses by remembering your saved places and specific dietary needs when searching for the next restaurant you might consider ordering from. This food ordering feature is rolling out now—it lets you order your next meal through partners such as Toast and Square, with Uber Eats set to get added to that group in the future.</p><p>Besides Ask Maps’ new food ordering features, it can also help you find the latest information about hotels by comparing real-time prices and checking room availability. Plus, you can tap into this AI-powered feature to ask for ideas on events that you should attend nearby. Not only will Ask Maps suggest several events worth checking out in your vicinity, but it will also include links to tickets.</p><p>Now that Personal Intelligence has become an essential part of Google Maps, you can safely connect Ask Maps to your Gmail account. Ask Maps makes great use of this new integration by using the information inside your inbox about upcoming flight, hotel or dinner reservations to give you relevant recommendations about how you should spend your time near your upcoming location. By turning the history settings on in Google Maps, Ask Maps has an easier time bringing up past conversations. That way, you can ask it to remind you of past chats so it can pull up past recreational ideas for you to choose from.</p><p>Real-time transition information, plus user-created text, conversational & photo edits that can be provided & accessed from Ask Maps’ Contribute tab also come along with Ask Maps latest update.</p><p>If you’re looking to see just how much more serviceable Ask Maps’ new features are, feel free to try out any of the prompts listed below:</p><ul><li><em>Order [name of food] for me to pick up on my way home.</em></li><li><em>Find a highly-rated vegan place along my route to work and order a breakfast burrito for pickup.</em></li><li><em>Find modern art museums near me that are open past [time] today.</em></li><li><em>Are there any comedy shows happening near my location tonight with tickets still available?</em></li><li><em>Give me ideas on how to spend a few hours near the hotel before my flight tomorrow.</em></li><li><em>Find a great spot for coffee between my current location and my dinner reservation tonight.</em></li><li><em>Remind me: what activities did you suggest for my trip to [location]?</em></li></ul><h2 id="bottom-line-13">Bottom line</h2><p>Walking around and driving around with Google Maps’ Ask Maps feature at the ready is an even more essential use of GPS and AI. And with the debut of a live transit widget, more personalized answers to user requests, stronger memory, food ordering, hotel/event discovery and user contributions, Google’s nifty location tool is even more crucial for your traveling needs.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/you-dont-have-to-quit-ai-to-use-less-energy-try-these-7-simple-habits" target="_blank">You don’t have to quit AI to use less energy — try these 7 simple habits</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/you-have-until-august-30-to-save-your-chatgpt-dall-e-images-heres-how-to-avoid-losing-them-forever" target="_blank">You have until August 30 to save your ChatGPT DALL-E images — here's how to avoid losing them forever</a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/google-assistant-dies-in-september-what-you-need-to-know-and-how-to-switch-to-gemini" target="_blank">Google Assistant dies in September: what you need to know and how to switch to Gemini</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ You have until August 30 to save your ChatGPT DALL-E images — here's how to avoid losing them forever ]]></title>
                                                                                                <dc:content><![CDATA[ <p>OpenAI is retiring the official <a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-create-ai-images-this-is-how-you-can-do-it-yourself">DALL-E GPT</a> on <strong>August 30, 2026</strong>, and the company is recommending users download any images they want to keep before then. While image generation isn't disappearing from ChatGPT, one of its oldest and most recognizable ways to create images is.</p><p>The change was <a href="https://help.openai.com/en/articles/6825453-chatgpt-notes-de-versi%C3%B3" target="_blank">announced in OpenAI's ChatGPT release notes</a> and has since been added to the company's help documentation. The advice is straightforward: <strong>download any images you want to keep before August 30.</strong></p><h2 id="what-exactly-is-going-away">What exactly is going away? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1792px;"><p class="vanilla-image-block" style="padding-top:57.14%;"><img id="Qjsytny2yKFLt4WmAoHH8E" name="ChatGPT DALL-E" alt="ChatGPT DALL-E" src="https://cdn.mos.cms.futurecdn.net/Qjsytny2yKFLt4WmAoHH8E.png" mos="" align="middle" fullscreen="" width="1792" height="1024" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: ChatGPT DALL-E/Future AI)</span></figcaption></figure><p>OpenAI is removing the standalone DALL-E GPT, the company's custom version of ChatGPT built specifically for creating images. It's one of the original GPTs introduced after custom GPTs launched and has remained available even as newer image models replaced the technology behind it.</p><p>If you've been using the regular ChatGPT app to generate images recently, you've probably already been using OpenAI's newer image system without realizing it.</p><p>After August 30, image generation will continue through <a href="https://www.tomsguide.com/ai/chatgpt-launched-images-2-0-and-its-the-first-one-designers-might-actually-use">ChatGPT Images</a>, which uses OpenAI's newer gpt-image-1 models. That experience is already available to Free, Plus, Pro and Business users, while the company's "Images with thinking" feature remains limited to paid plans.</p><p>So for most people, creating images in ChatGPT won't change much. Just be sure to check your <a href="https://www.tomsguide.com/ai/openai-just-added-an-image-library-to-chatgpt-heres-why-its-a-game-changer">Image Library</a> and save your oldest images. </p><h2 id="how-to-save-and-download-your-images-now">How to save and download your images now</h2><p>OpenAI hasn't explained exactly what will happen to images stored in the DALL-E GPT after it is retired. Rather than promise they'll remain available indefinitely, the company simply recommends downloading anything you want to keep before the deadline.</p><p>To save your images:</p><ul><li>Open <strong>ChatGP</strong>.</li><li>Go to <strong>Images</strong></li><li>Open the image you want to keep</li><li>Select <strong>Save</strong> to download it to your device</li></ul><p>It's also worth remembering that deleting a ChatGPT conversation deletes the images stored with it, so if you have artwork tied to an old chat, download it before removing that conversation. If you're struggling to find an older image, ChatGPT's search feature can help locate past conversations where it was created.</p><p>Not everything called "DALL-E" is disappearing. According to OpenAI, custom GPTs with image generation enabled will continue to work normally. The retirement only affects the official DALL-E GPT created by OpenAI itself. For most users, that means existing workflows built around custom GPTs won't need to change. </p><h2 id="part-of-a-bigger-chatgpt-cleanup">Part of a bigger ChatGPT cleanup </h2><p>The DALL-E retirement is one of several products OpenAI is winding down this month as it continues consolidating around newer models and experiences.</p><p>Earlier this year, the company removed the DALL-E API for developers, replacing it with newer image-generation models. This month also marks the scheduled retirement of the older <a href="https://www.tomsguide.com/ai/i-tested-chatgpts-free-new-o3-mini-model-with-7-prompts-to-rate-its-problem-solving-and-reasoning-capabilities-heres-what-happened">o3 model inside ChatGPT</a>, while OpenAI's experimental AI browser, <a href="https://www.tomsguide.com/ai/openai-is-shutting-down-its-ai-browser-but-chatgpt-users-are-getting-something-better">ChatGPT Atlas</a>, is also being discontinued. And, earlier this year, OpenAI removed Sora 2. <br><br>Be sure to take a look at all the images you've created images with the DALL-E GPT and download them before August 30 if you want to keep them. Once the retirement takes effect, there may not be another chance.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them"><strong>Claude has 4 built-in skills I use constantly — here’s how to find them</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/chatgpt/you-have-until-august-30-to-save-your-chatgpt-dall-e-images-heres-how-to-avoid-losing-them-forever</link>
                                                                            <description>
                            <![CDATA[ OpenAI is retiring the DALL-E GPT in ChatGPT on August 30. Here's how to download and save your AI images before the deadline. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TMxqi5euZEN6n6gewWq9Xd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9BrPUqiUsKSouWfCaWvrWH-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2026 16:41:01 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[ChatGPT]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/9BrPUqiUsKSouWfCaWvrWH-1280-80.png">
                                                            <media:credit><![CDATA[DALL-E 3/Future AI]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[DALL-E 3]]></media:description>                                                            <media:text><![CDATA[DALL-E 3]]></media:text>
                                <media:title type="plain"><![CDATA[DALL-E 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9BrPUqiUsKSouWfCaWvrWH-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>OpenAI is retiring the official <a href="https://www.tomsguide.com/ai/i-used-chatgpt-to-create-ai-images-this-is-how-you-can-do-it-yourself">DALL-E GPT</a> on <strong>August 30, 2026</strong>, and the company is recommending users download any images they want to keep before then. While image generation isn't disappearing from ChatGPT, one of its oldest and most recognizable ways to create images is.</p><p>The change was <a href="https://help.openai.com/en/articles/6825453-chatgpt-notes-de-versi%C3%B3" target="_blank">announced in OpenAI's ChatGPT release notes</a> and has since been added to the company's help documentation. The advice is straightforward: <strong>download any images you want to keep before August 30.</strong></p><h2 id="what-exactly-is-going-away">What exactly is going away? </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1792px;"><p class="vanilla-image-block" style="padding-top:57.14%;"><img id="Qjsytny2yKFLt4WmAoHH8E" name="ChatGPT DALL-E" alt="ChatGPT DALL-E" src="https://cdn.mos.cms.futurecdn.net/Qjsytny2yKFLt4WmAoHH8E.png" mos="" align="middle" fullscreen="" width="1792" height="1024" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: ChatGPT DALL-E/Future AI)</span></figcaption></figure><p>OpenAI is removing the standalone DALL-E GPT, the company's custom version of ChatGPT built specifically for creating images. It's one of the original GPTs introduced after custom GPTs launched and has remained available even as newer image models replaced the technology behind it.</p><p>If you've been using the regular ChatGPT app to generate images recently, you've probably already been using OpenAI's newer image system without realizing it.</p><p>After August 30, image generation will continue through <a href="https://www.tomsguide.com/ai/chatgpt-launched-images-2-0-and-its-the-first-one-designers-might-actually-use">ChatGPT Images</a>, which uses OpenAI's newer gpt-image-1 models. That experience is already available to Free, Plus, Pro and Business users, while the company's "Images with thinking" feature remains limited to paid plans.</p><p>So for most people, creating images in ChatGPT won't change much. Just be sure to check your <a href="https://www.tomsguide.com/ai/openai-just-added-an-image-library-to-chatgpt-heres-why-its-a-game-changer">Image Library</a> and save your oldest images. </p><h2 id="how-to-save-and-download-your-images-now">How to save and download your images now</h2><p>OpenAI hasn't explained exactly what will happen to images stored in the DALL-E GPT after it is retired. Rather than promise they'll remain available indefinitely, the company simply recommends downloading anything you want to keep before the deadline.</p><p>To save your images:</p><ul><li>Open <strong>ChatGP</strong>.</li><li>Go to <strong>Images</strong></li><li>Open the image you want to keep</li><li>Select <strong>Save</strong> to download it to your device</li></ul><p>It's also worth remembering that deleting a ChatGPT conversation deletes the images stored with it, so if you have artwork tied to an old chat, download it before removing that conversation. If you're struggling to find an older image, ChatGPT's search feature can help locate past conversations where it was created.</p><p>Not everything called "DALL-E" is disappearing. According to OpenAI, custom GPTs with image generation enabled will continue to work normally. The retirement only affects the official DALL-E GPT created by OpenAI itself. For most users, that means existing workflows built around custom GPTs won't need to change. </p><h2 id="part-of-a-bigger-chatgpt-cleanup">Part of a bigger ChatGPT cleanup </h2><p>The DALL-E retirement is one of several products OpenAI is winding down this month as it continues consolidating around newer models and experiences.</p><p>Earlier this year, the company removed the DALL-E API for developers, replacing it with newer image-generation models. This month also marks the scheduled retirement of the older <a href="https://www.tomsguide.com/ai/i-tested-chatgpts-free-new-o3-mini-model-with-7-prompts-to-rate-its-problem-solving-and-reasoning-capabilities-heres-what-happened">o3 model inside ChatGPT</a>, while OpenAI's experimental AI browser, <a href="https://www.tomsguide.com/ai/openai-is-shutting-down-its-ai-browser-but-chatgpt-users-are-getting-something-better">ChatGPT Atlas</a>, is also being discontinued. And, earlier this year, OpenAI removed Sora 2. <br><br>Be sure to take a look at all the images you've created images with the DALL-E GPT and download them before August 30 if you want to keep them. Once the retirement takes effect, there may not be another chance.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them"><strong>Claude has 4 built-in skills I use constantly — here’s how to find them</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google Health gets a lot of hate — but these 5 AI Coach prompts changed my mind ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I've used Apple Health, ChatGPT Health and Google Health, but I keep coming back to Google since the recent update. The redesigned app has gotten mixed opinions from long-time users online, but I've found myself checking it much more throughout the day lately. It gives me one place to see my sleep score, step count, calories burned and other health data without making me hunt for every number.</p><p>Plenty of longtime Fitbit users hate the change, <a href="https://www.tomsguide.com/ai/my-mom-is-in-her-70s-and-uses-ai-every-day-these-are-her-5-go-to-favorite-uses">my own mother being one of them</a>. When <a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">Google Health replaced the Fitbit app</a> in May, users complained about missing badges, sleep animals and social features. The new Gemini-powered AI Coach hasn’t won everyone over, either. </p><p>Those complaints are fair, but my personal experience has been different. Google Health has made the information collected by my Fitbit easier to follow. More importantly, its AI Coach can look across that information and help me understand how one part of my routine may be affecting another.</p><p>For the first time, my Fitbit data feels connected and my goals are easier to achieve. </p><h2 id="everything-i-want-to-see-is-in-one-place">Everything I want to see is in one place</h2><p>The first thing I look at is my sleep score. I can see how long I slept, how much time I spent in each sleep stage and whether my night was considered poor, fair or good.</p><p>From there, I can check my steps, exercise and calories burned. Each number is useful on its own, but having them together makes the app more valuable. I don’t have to remember how active I was after a bad night’s sleep or guess whether I moved less on a particularly busy day. What I like about the redesigned Today tab is that I instantly get a quick picture of how I'm doing overall. </p><p>And, if I want more detail, I can move into the Fitness, Sleep and Health sections without losing that larger view.</p><p>Google Health is highly customizable, too. I can decide which metrics deserve space on my main screen instead of scrolling through information I rarely use. Google Health still collects plenty of data, with your approval, but it does a better job of showing me the numbers I care about.</p><h2 id="the-ai-coach-knows-more-about-my-routine-than-i-expected">The AI Coach knows more about my routine than I expected</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WLF8dMQgEMBr4ptsyPzPhi" name="Google Health" alt="Google Health" src="https://cdn.mos.cms.futurecdn.net/WLF8dMQgEMBr4ptsyPzPhi.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The dashboard tells me what is going on day-to-day with my body and The AI Coach tries to explain what it means. </p><p>Google’s Coach is built with Gemini and can use information shared through the app to answer questions about fitness, sleep and general wellness. Depending on what you allow it to access, that can include sleep and activity metrics, workouts, nutrition, cycle tracking, location, local weather and personal medical records.</p><p>It can also remember information you provide during its onboarding conversation. By the way, I encourage you to take the five minutes to have that quick chat. You can tell it about your goals, daily routine, available exercise equipment and any injuries or limitations it should consider.</p><p>That gives it far more context than an ordinary chatbot. </p><h2 id="prompts-to-try-with-google-health-coach">Prompts to try with Google Health Coach</h2><p>The best way to understand what the AI Coach can do is to ask it about information that would normally require comparing several parts of the app.</p><p>Instead of asking a general question such as “How am I doing?” give the Coach a period of time to examine and tell it which parts of your health data you want it to compare.</p><h3 class="article-body__section" id="section-1-find-patterns-in-your-sleep"><span>1. Find patterns in your sleep</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="QXv47hoUdaFKzY5W7iJnn4" name="Man unable to sleep at night" alt="A man who is unable to sleep at night covers his head with a white pillow while holding a white alarm clock in the other hand" src="https://cdn.mos.cms.futurecdn.net/QXv47hoUdaFKzY5W7iJnn4.jpg" mos="" align="middle" fullscreen="" width="2121" height="1194" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt:</strong> <em>Looking at my data from the past month, what patterns do you notice in my sleep?</em></p><p>The Coach can examine your sleep duration, scores and consistency instead of giving you generic advice about maintaining a regular bedtime. You can follow up by asking which nights were your best and what those nights had in common.</p><h3 class="article-body__section" id="section-2-learn-how-sleep-affects-activity-levels"><span>2. Learn how sleep affects activity levels</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="UifWn6a5di6kyzzqLuS5Ff" name="desk mobility3_GettyImages-1390200819.jpg" alt="a woman stretching at her desk" src="https://cdn.mos.cms.futurecdn.net/UifWn6a5di6kyzzqLuS5Ff.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>How does the amount of sleep I get affect my activity the following day?</em></p><p>This is the kind of comparison I could technically make myself, but I probably wouldn’t. I would need to move between different parts of the app, compare dates and remember what else was happening on those days. The Coach can look across your sleep and activity history to see whether your step count, workouts or calories burned tend to change after a particularly good or bad night.</p><h3 class="article-body__section" id="section-3-ask-what-workout-makes-sense-today"><span>3. Ask what workout makes sense today</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t8f6iFDCLJmjufRdgmn7Sn" name="running watch woman.jpg" alt="a photo of a woman looking at her running watch" src="https://cdn.mos.cms.futurecdn.net/t8f6iFDCLJmjufRdgmn7Sn.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty/Carrastock)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>Based on my recent activity and recovery data, what kind of workout makes sense today?</em></p><p>Google wants the Coach to do more than summarize what has already happened. It can use your recent exercise, sleep and readiness to suggest what you might do next.</p><p>If you slept poorly or recently completed several demanding workouts, it may recommend something lighter. If your recovery looks good, it could suggest a more challenging session.</p><p>This is where the Coach has the potential to be the most useful. Fitness trackers have always been good at telling us how far we ran, how many calories we burned and how long we slept. They have been less helpful at telling us what to do with that information.</p><p>That doesn’t mean I would follow every recommendation without question. A fitness tracker cannot know exactly how my body feels, and Google says the Coach is not intended for medical purposes. I treat its suggestions as another piece of information rather than an instruction I have to obey.</p><h3 class="article-body__section" id="section-4-find-your-most-and-least-active-days"><span>4. Find your most and least active days</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dBByshSEWaesvqxFKYidZB" name="Sleeping on the couch" alt="Man sleeping on the couch in a brightly lit living room" src="https://cdn.mos.cms.futurecdn.net/dBByshSEWaesvqxFKYidZB.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>Which days of the week am I usually most active and least active? Compare my steps, workouts and calories burned over the past month.</em></p><p>The Coach may be able to find routines that aren’t obvious from looking at one day at a time. Once it identifies a pattern, you can ask why it reached that conclusion and request the numbers it used.</p><h3 class="article-body__section" id="section-5-ask-what-the-coach-knows-about-you"><span>5. Ask what the Coach knows about you</span></h3><p><strong>Try this prompt</strong>: <em>What information about me are you using to make your recommendations?</em></p><p>Depending on what you allow it to access, it may be drawing from a detailed record of when you sleep, how much you move, when you exercise and how your body responds.</p><p>Google says users control what they share with the Coach. It has also committed not to use Fitbit health and wellness data for Google Ads. Still, this is sensitive information, especially once medical records, cycle tracking or location enter the picture.</p><p>The Coach becomes more useful as it gains more context, but that means giving it access to more of your life. It is worth reviewing the app’s privacy controls and deciding which information you are comfortable sharing.</p><h2 id="how-to-get-google-health-coach">How to get Google Health Coach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7oiMQfz8og8FDBSS9RjbUV" name="Pixel-Watch-4--09" alt="Close-up of the Google Pixel Watch 4" src="https://cdn.mos.cms.futurecdn.net/7oiMQfz8og8FDBSS9RjbUV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Toms Guide)</span></figcaption></figure><p><a href="https://www.tomsguide.com/wellness/smartwatches/forget-apple-watch-11-google-built-the-ai-health-coach-that-i-really-wanted-with-pixel-watch-4">Google Health Coach</a> became globally available in May after an earlier public preview. It is included with a Google Health Premium subscription, which costs $9.99 per month or $99 per year in the United States.</p><p>Google AI Pro and Ultra subscribers receive Google Health Premium at no additional cost. The Coach launched first for eligible Fitbit and Pixel Watch users, with support for additional devices planned.</p><p>After opening Google Health, look for the <strong>Ask Coach</strong> button. The onboarding conversation gives you a chance to explain your goals and routine. You can return later and update those details if your goals change.</p><p>The app can be used without the Coach, and Google provides controls for limiting the information it accesses. Availability and features may vary depending on your device and location.</p><h2 id="final-thoughts-10">Final thoughts </h2><p>I've tried <a href="https://www.tomsguide.com/ai/chatgpt-congratulated-me-for-being-pregnant-it-was-dead-wrong">ChatGPT Health</a> and <a href="https://www.tomsguide.com/ai/chatgpt/i-used-chatgpt-to-analyze-my-apple-health-activity-and-uncover-trends-heres-what-happened">Apple Health</a>,<a href="https://www.tomsguide.com/ai/chatgpt/i-used-chatgpt-to-analyze-my-apple-health-activity-and-uncover-trends-heres-what-happened"> </a>but after experimenting with each, I keep coming back to Google Health. </p><p>And, yes, I totally understand why longtime Fitbit users are frustrated. Google removed familiar features and placed an AI assistant at the center of an app that many people used simply to check their numbers.</p><p>But Google Health has worked for me because it makes those numbers easier to understand. I can see my sleep, steps, exercise and calories in one place, then ask questions about how they may be connected.</p><p>The AI Coach isn’t a doctor, and it won’t always tell me something I couldn’t figure out myself. What it can do is examine weeks of information in a few seconds and point me toward patterns I might otherwise miss.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"><strong>I use Gemini Spark daily — here are 7 prompts that show what it can really do</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-health-gets-a-lot-of-hate-but-these-5-ai-coach-prompts-changed-my-mind</link>
                                                                            <description>
                            <![CDATA[ I’ve been using Google Health to track my sleep, steps and workouts. Here are the AI Coach prompts that make my Fitbit data more useful. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">95gM6PNNCzVXpYyVKhffeV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RYGcUoTfitKBBxet2ZxE7G-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2026 11:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 06 Aug 2026 14:49:09 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/RYGcUoTfitKBBxet2ZxE7G-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[a female runner smiling as she looks at her phone]]></media:description>                                                            <media:text><![CDATA[a female runner smiling as she looks at her phone]]></media:text>
                                <media:title type="plain"><![CDATA[a female runner smiling as she looks at her phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RYGcUoTfitKBBxet2ZxE7G-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I've used Apple Health, ChatGPT Health and Google Health, but I keep coming back to Google since the recent update. The redesigned app has gotten mixed opinions from long-time users online, but I've found myself checking it much more throughout the day lately. It gives me one place to see my sleep score, step count, calories burned and other health data without making me hunt for every number.</p><p>Plenty of longtime Fitbit users hate the change, <a href="https://www.tomsguide.com/ai/my-mom-is-in-her-70s-and-uses-ai-every-day-these-are-her-5-go-to-favorite-uses">my own mother being one of them</a>. When <a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">Google Health replaced the Fitbit app</a> in May, users complained about missing badges, sleep animals and social features. The new Gemini-powered AI Coach hasn’t won everyone over, either. </p><p>Those complaints are fair, but my personal experience has been different. Google Health has made the information collected by my Fitbit easier to follow. More importantly, its AI Coach can look across that information and help me understand how one part of my routine may be affecting another.</p><p>For the first time, my Fitbit data feels connected and my goals are easier to achieve. </p><h2 id="everything-i-want-to-see-is-in-one-place">Everything I want to see is in one place</h2><p>The first thing I look at is my sleep score. I can see how long I slept, how much time I spent in each sleep stage and whether my night was considered poor, fair or good.</p><p>From there, I can check my steps, exercise and calories burned. Each number is useful on its own, but having them together makes the app more valuable. I don’t have to remember how active I was after a bad night’s sleep or guess whether I moved less on a particularly busy day. What I like about the redesigned Today tab is that I instantly get a quick picture of how I'm doing overall. </p><p>And, if I want more detail, I can move into the Fitness, Sleep and Health sections without losing that larger view.</p><p>Google Health is highly customizable, too. I can decide which metrics deserve space on my main screen instead of scrolling through information I rarely use. Google Health still collects plenty of data, with your approval, but it does a better job of showing me the numbers I care about.</p><h2 id="the-ai-coach-knows-more-about-my-routine-than-i-expected">The AI Coach knows more about my routine than I expected</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WLF8dMQgEMBr4ptsyPzPhi" name="Google Health" alt="Google Health" src="https://cdn.mos.cms.futurecdn.net/WLF8dMQgEMBr4ptsyPzPhi.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The dashboard tells me what is going on day-to-day with my body and The AI Coach tries to explain what it means. </p><p>Google’s Coach is built with Gemini and can use information shared through the app to answer questions about fitness, sleep and general wellness. Depending on what you allow it to access, that can include sleep and activity metrics, workouts, nutrition, cycle tracking, location, local weather and personal medical records.</p><p>It can also remember information you provide during its onboarding conversation. By the way, I encourage you to take the five minutes to have that quick chat. You can tell it about your goals, daily routine, available exercise equipment and any injuries or limitations it should consider.</p><p>That gives it far more context than an ordinary chatbot. </p><h2 id="prompts-to-try-with-google-health-coach">Prompts to try with Google Health Coach</h2><p>The best way to understand what the AI Coach can do is to ask it about information that would normally require comparing several parts of the app.</p><p>Instead of asking a general question such as “How am I doing?” give the Coach a period of time to examine and tell it which parts of your health data you want it to compare.</p><h3 class="article-body__section" id="section-1-find-patterns-in-your-sleep"><span>1. Find patterns in your sleep</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="QXv47hoUdaFKzY5W7iJnn4" name="Man unable to sleep at night" alt="A man who is unable to sleep at night covers his head with a white pillow while holding a white alarm clock in the other hand" src="https://cdn.mos.cms.futurecdn.net/QXv47hoUdaFKzY5W7iJnn4.jpg" mos="" align="middle" fullscreen="" width="2121" height="1194" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt:</strong> <em>Looking at my data from the past month, what patterns do you notice in my sleep?</em></p><p>The Coach can examine your sleep duration, scores and consistency instead of giving you generic advice about maintaining a regular bedtime. You can follow up by asking which nights were your best and what those nights had in common.</p><h3 class="article-body__section" id="section-2-learn-how-sleep-affects-activity-levels"><span>2. Learn how sleep affects activity levels</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="UifWn6a5di6kyzzqLuS5Ff" name="desk mobility3_GettyImages-1390200819.jpg" alt="a woman stretching at her desk" src="https://cdn.mos.cms.futurecdn.net/UifWn6a5di6kyzzqLuS5Ff.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>How does the amount of sleep I get affect my activity the following day?</em></p><p>This is the kind of comparison I could technically make myself, but I probably wouldn’t. I would need to move between different parts of the app, compare dates and remember what else was happening on those days. The Coach can look across your sleep and activity history to see whether your step count, workouts or calories burned tend to change after a particularly good or bad night.</p><h3 class="article-body__section" id="section-3-ask-what-workout-makes-sense-today"><span>3. Ask what workout makes sense today</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t8f6iFDCLJmjufRdgmn7Sn" name="running watch woman.jpg" alt="a photo of a woman looking at her running watch" src="https://cdn.mos.cms.futurecdn.net/t8f6iFDCLJmjufRdgmn7Sn.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty/Carrastock)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>Based on my recent activity and recovery data, what kind of workout makes sense today?</em></p><p>Google wants the Coach to do more than summarize what has already happened. It can use your recent exercise, sleep and readiness to suggest what you might do next.</p><p>If you slept poorly or recently completed several demanding workouts, it may recommend something lighter. If your recovery looks good, it could suggest a more challenging session.</p><p>This is where the Coach has the potential to be the most useful. Fitness trackers have always been good at telling us how far we ran, how many calories we burned and how long we slept. They have been less helpful at telling us what to do with that information.</p><p>That doesn’t mean I would follow every recommendation without question. A fitness tracker cannot know exactly how my body feels, and Google says the Coach is not intended for medical purposes. I treat its suggestions as another piece of information rather than an instruction I have to obey.</p><h3 class="article-body__section" id="section-4-find-your-most-and-least-active-days"><span>4. Find your most and least active days</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dBByshSEWaesvqxFKYidZB" name="Sleeping on the couch" alt="Man sleeping on the couch in a brightly lit living room" src="https://cdn.mos.cms.futurecdn.net/dBByshSEWaesvqxFKYidZB.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p><strong>Try this prompt: </strong><em>Which days of the week am I usually most active and least active? Compare my steps, workouts and calories burned over the past month.</em></p><p>The Coach may be able to find routines that aren’t obvious from looking at one day at a time. Once it identifies a pattern, you can ask why it reached that conclusion and request the numbers it used.</p><h3 class="article-body__section" id="section-5-ask-what-the-coach-knows-about-you"><span>5. Ask what the Coach knows about you</span></h3><p><strong>Try this prompt</strong>: <em>What information about me are you using to make your recommendations?</em></p><p>Depending on what you allow it to access, it may be drawing from a detailed record of when you sleep, how much you move, when you exercise and how your body responds.</p><p>Google says users control what they share with the Coach. It has also committed not to use Fitbit health and wellness data for Google Ads. Still, this is sensitive information, especially once medical records, cycle tracking or location enter the picture.</p><p>The Coach becomes more useful as it gains more context, but that means giving it access to more of your life. It is worth reviewing the app’s privacy controls and deciding which information you are comfortable sharing.</p><h2 id="how-to-get-google-health-coach">How to get Google Health Coach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7oiMQfz8og8FDBSS9RjbUV" name="Pixel-Watch-4--09" alt="Close-up of the Google Pixel Watch 4" src="https://cdn.mos.cms.futurecdn.net/7oiMQfz8og8FDBSS9RjbUV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Toms Guide)</span></figcaption></figure><p><a href="https://www.tomsguide.com/wellness/smartwatches/forget-apple-watch-11-google-built-the-ai-health-coach-that-i-really-wanted-with-pixel-watch-4">Google Health Coach</a> became globally available in May after an earlier public preview. It is included with a Google Health Premium subscription, which costs $9.99 per month or $99 per year in the United States.</p><p>Google AI Pro and Ultra subscribers receive Google Health Premium at no additional cost. The Coach launched first for eligible Fitbit and Pixel Watch users, with support for additional devices planned.</p><p>After opening Google Health, look for the <strong>Ask Coach</strong> button. The onboarding conversation gives you a chance to explain your goals and routine. You can return later and update those details if your goals change.</p><p>The app can be used without the Coach, and Google provides controls for limiting the information it accesses. Availability and features may vary depending on your device and location.</p><h2 id="final-thoughts-10">Final thoughts </h2><p>I've tried <a href="https://www.tomsguide.com/ai/chatgpt-congratulated-me-for-being-pregnant-it-was-dead-wrong">ChatGPT Health</a> and <a href="https://www.tomsguide.com/ai/chatgpt/i-used-chatgpt-to-analyze-my-apple-health-activity-and-uncover-trends-heres-what-happened">Apple Health</a>,<a href="https://www.tomsguide.com/ai/chatgpt/i-used-chatgpt-to-analyze-my-apple-health-activity-and-uncover-trends-heres-what-happened"> </a>but after experimenting with each, I keep coming back to Google Health. </p><p>And, yes, I totally understand why longtime Fitbit users are frustrated. Google removed familiar features and placed an AI assistant at the center of an app that many people used simply to check their numbers.</p><p>But Google Health has worked for me because it makes those numbers easier to understand. I can see my sleep, steps, exercise and calories in one place, then ask questions about how they may be connected.</p><p>The AI Coach isn’t a doctor, and it won’t always tell me something I couldn’t figure out myself. What it can do is examine weeks of information in a few seconds and point me toward patterns I might otherwise miss.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"><strong>I use Gemini Spark daily — here are 7 prompts that show what it can really do</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'Not a chatbot on the sidelines': Ridley AI wants to automate your home sale and eliminate 6% commission fees ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Selling one’s home is an arduous process — setting a competitive price, promoting the property online and managing all the legal paperwork & negotiations that come with it can drive anyone mad.</p><p>In this current day and age where AI is being used in all facets of life, home sellers are tapping into the tools that are specifically made to help homeowners with their real estate affairs. Most AI deniers would scoff at the thought of injecting AI into their home selling situations. But there’s an abundance of companies, like Zillow, Redfin and Realtor.com, that are tapping into the popular tech to optimize everything that goes into marketing and selling homes.</p><p>The question of “can AI sell your home?” has already been answered with a resounding “yes!” now that <a href="https://www.getridley.com/" target="_blank">Ridley</a>, an AI home selling platform, has emerged. Simply pay a visit to the Ridley YouTube channel to watch testimonials from people who’ve successfully used it <a href="https://www.youtube.com/watch?v=6SHSBKFDN68" target="_blank">(one woman told her story of saving $10,000 while selling her home).</a></p><p>Mike Chambers, the CEO behind that clever creation, spoke with us to provide the backstory on Ridley’s creation and the way it's transformed the way families sell their homes and eliminated the need for an agent to assist them.</p><h2 id="chambers-gives-his-thoughts-on-the-inspiration-behind-ridley-the-future-of-ai-in-real-estate-and-more">Chambers gives his thoughts on the inspiration behind Ridley, the future of AI in real estate and more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1597px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5RNUKGspaRyFxWCTDB4PBh" name="Mike_Grey_Horizontal-2" alt="mike chambers ridley" src="https://cdn.mos.cms.futurecdn.net/5RNUKGspaRyFxWCTDB4PBh.jpg" mos="" align="middle" fullscreen="" width="1597" height="898" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Ridley)</span></figcaption></figure><p><strong>Tom’s Guide: What inspired the creation of Ridley?</strong></p><p><strong>Mike Chambers: </strong>Ridley grew out of my own experience trying to sell a home in Colorado in late 2024. I was facing more than $140,000 in commissions and could not reconcile that cost with the value I expected to receive.</p><p>I decided to sell the home myself and document the process on social media. The story went viral, and I heard from thousands of homeowners across the country who shared the same basic frustration: the traditional process was extraordinarily expensive, needlessly opaque, and difficult to navigate without surrendering a significant portion of the home’s value.</p><p>It seemed crazy that in the age of AI there was still no centralized platform capable of helping consumers understand the process, coordinate the work, and make informed decisions from beginning to end. So I decided to build it. </p><p><strong>Tom’s Guide: What do you think is the single biggest misconception people have about using AI to sell a home?</strong></p><p><strong>Chambers: </strong>The biggest misconception is that using AI means handing an important financial transaction over to an unpredictable chatbot.</p><p>Many people’s mental model of AI was formed by their earliest experiences with general-purpose models, when hallucinations were more common and the systems had very little context about the user or the task. But a purpose-built real estate system is fundamentally different.</p><p>The goal is not to let AI make consequential decisions without oversight. It is to give consumers a system that understands their transaction, organizes the relevant information, explains their options, identifies what needs attention, and helps them execute each step. The homeowner remains in control; the AI makes the process far more manageable.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="w5HAJHaxBvWuLRrVtARMb8" name="shutterstock_2500366719-2" alt="ai real estate" src="https://cdn.mos.cms.futurecdn.net/w5HAJHaxBvWuLRrVtARMb8.jpg" mos="" align="middle" fullscreen="" width="6000" height="3375" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: What’s one part of the home-selling process that you think AI does dramatically better than humans today? And what is one part you think it still struggles with?</strong></p><p><strong>Chambers: </strong>AI is exceptionally good at coordination and information synthesis.</p><p>A home sale generates a ton of fragmented information: contracts, disclosures, inspection findings, deadlines, offers, contingencies, communications, and financial calculations. AI can process all of it continuously, maintain awareness of the full transaction, and explain what matters without losing context from one step to the next.</p><p>What it does less well is provide emotional reassurance. Selling a home can be stressful, deeply personal, and occasionally adversarial. A skilled human can recognize hesitation, navigate a sensitive negotiation, and understand the emotional weight of a decision in ways AI still cannot fully replicate.</p><p>That is part of the reason Ridley offers a plan with a human in the loop. The goal is not to pretend AI is equally good at everything. It is to let AI handle the complexity, coordination, and information processing, while making human judgment and support available at the moments when they are genuinely valuable.</p><p><strong>Tom’s Guide: If someone were to give ChatGPT and Ridley’s AI the same home-selling scenario, what would Ridley know that a general AI chatbot wouldn’t?</strong></p><p><strong>Chambers: </strong>ChatGPT is an extraordinarily capable general-purpose model, but it does not inherently know the complete state of a particular real estate transaction.</p><p>Ridley Intelligence maintains persistent transaction-state awareness. It understands the property, the participants, the contracts, the deadlines, the disclosures, the inspection findings, the communications, the decisions that have already been made, and what needs to happen next.</p><p>That continuity is critical. Ridley is not responding to each question as though it were the beginning of a new conversation. It carries the full history of the transaction forward, reasons from that context, and can take actions on the consumer’s behalf such as preparing documents, coordinating next steps, tracking deadlines, and communicating with the relevant parties.</p><p>The difference is similar to stopping a lawyer on the street and asking for general advice about your case versus working with the lawyer who has read every document, followed every conversation, understands what has already happened, and knows exactly where the matter stands today.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/bZCh4goWf2M" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: What’s something AI has taught you and your team about how people actually buy and sell homes that surprised you?</strong></p><p><strong>Chambers: </strong>We learned that the greatest source of anxiety is often not the complexity of any individual step. It is the uncertainty created by not knowing what is happening, what comes next, or whether something important is being missed.</p><p>The industry tends to assume that consumers primarily need expertise delivered through a person. What many consumers actually need is persistent context: a clear explanation of where they are in the process, what each decision means, and what action is required next.</p><p>When people have that visibility, they are capable of doing far more themselves than the traditional industry gives them credit for. </p><p><strong>Tom’s Guide: If you were selling your own home tomorrow, what's one AI-powered strategy you'd use that most homeowners aren't taking advantage of yet?</strong></p><p><strong>Chambers: </strong>If I were selling my home tomorrow, I’d use Ridley. That’s the obvious founder answer, but it’s also why I built it.</p><p>There are a few places where it can really improve the outcome: pricing the home, deciding what is actually worth fixing before it goes to market, using our AI marketing engine to reach more qualified buyers, and understanding which offer is genuinely the strongest.</p><p>Once the sale is underway, Ridley maintains awareness of the entire transaction. It knows what has happened, what has been agreed to, which deadlines are approaching, and what decisions still need to be made. That means its guidance is grounded in the reality of your specific sale, rather than generic advice.</p><p>It also handles much of the transaction coordination, making sure the right documents, information, and next steps reach the right people at the right time.</p><p>That is the real promise of AI in real estate. Not a chatbot sitting on the sidelines, but an intelligent system helping run the sale from beginning to end.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/J2sdkK-aI_E" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: Looking ahead five years from now, what parts of today's real estate process do you think will completely disappear because of AI?</strong></p><p><strong>Chambers: </strong>When you strip it down, a real estate agent typically plays two primary roles: transaction coordinator and strategic advisor.</p><p>Over the next five years, I think most of the coordination work will disappear into the software. Tracking deadlines, moving documents between parties, scheduling inspections, following up with lenders and title companies, and making sure everyone knows what happens next are all things AI can do extremely well.</p><p>The strategic advisory role will remain, but it will change. There will still be moments when sellers want an experienced person to help with pricing, negotiation, or a difficult judgment call. The difference is that consumers will be able to access that expertise when they need it, rather than paying a percentage of their home’s value for it to be bundled with a large amount of administrative work.</p><p>I do not think real estate agents disappear. I think the traditional job gets unbundled, and the parts that remain become more specialized, more transparent, and far less expensive.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/i-asked-siri-ai-and-gemini-a-series-of-increasingly-bizarre-questions-to-see-how-they-responded-heres-what-happened" target="_blank">I asked Siri AI and Gemini a series of increasingly bizarre questions to see how they responded —here's what happened</a></li><li><a href="https://www.tomsguide.com/ai/slashy-is-the-ai-email-app-replacing-notion-mail-heres-why" target="_blank">Slashy is the AI email app replacing Notion Mail — here’s why</a></li><li><a href="https://www.tomsguide.com/ai/if-this-22-year-old-made-usd400-000-over-the-weekend-why-cant-i-inside-the-fake-ai-entrepreneur-boom" target="_blank">'If this 22-year-old made $400,000 over the weekend, why can't I?' Inside the fake AI entrepreneur boom</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/not-a-chatbot-sitting-on-the-sidelines-but-an-intelligent-system-helping-run-the-sale-ridley-ceo-talks-about-the-future-of-real-estate-in-the-ai-era</link>
                                                                            <description>
                            <![CDATA[ Mike Chambers, the CEO behind an AI home selling platform called Ridley, spoke to Tom’s Guide to provide some commentary on AI’s impact on the real estate industry and more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hNS8oHzwF7EbKpw8eMnFTc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/B7pvLXfCRAeBppbQ4kwU3o-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2026 08:00:00 +0000</pubDate>                                                                                                                                <updated>Fri, 07 Aug 2026 17:40:45 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/B7pvLXfCRAeBppbQ4kwU3o-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock/Ridley]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Ridley]]></media:description>                                                            <media:text><![CDATA[Ridley]]></media:text>
                                <media:title type="plain"><![CDATA[Ridley]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/B7pvLXfCRAeBppbQ4kwU3o-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Selling one’s home is an arduous process — setting a competitive price, promoting the property online and managing all the legal paperwork & negotiations that come with it can drive anyone mad.</p><p>In this current day and age where AI is being used in all facets of life, home sellers are tapping into the tools that are specifically made to help homeowners with their real estate affairs. Most AI deniers would scoff at the thought of injecting AI into their home selling situations. But there’s an abundance of companies, like Zillow, Redfin and Realtor.com, that are tapping into the popular tech to optimize everything that goes into marketing and selling homes.</p><p>The question of “can AI sell your home?” has already been answered with a resounding “yes!” now that <a href="https://www.getridley.com/" target="_blank">Ridley</a>, an AI home selling platform, has emerged. Simply pay a visit to the Ridley YouTube channel to watch testimonials from people who’ve successfully used it <a href="https://www.youtube.com/watch?v=6SHSBKFDN68" target="_blank">(one woman told her story of saving $10,000 while selling her home).</a></p><p>Mike Chambers, the CEO behind that clever creation, spoke with us to provide the backstory on Ridley’s creation and the way it's transformed the way families sell their homes and eliminated the need for an agent to assist them.</p><h2 id="chambers-gives-his-thoughts-on-the-inspiration-behind-ridley-the-future-of-ai-in-real-estate-and-more">Chambers gives his thoughts on the inspiration behind Ridley, the future of AI in real estate and more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1597px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5RNUKGspaRyFxWCTDB4PBh" name="Mike_Grey_Horizontal-2" alt="mike chambers ridley" src="https://cdn.mos.cms.futurecdn.net/5RNUKGspaRyFxWCTDB4PBh.jpg" mos="" align="middle" fullscreen="" width="1597" height="898" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Ridley)</span></figcaption></figure><p><strong>Tom’s Guide: What inspired the creation of Ridley?</strong></p><p><strong>Mike Chambers: </strong>Ridley grew out of my own experience trying to sell a home in Colorado in late 2024. I was facing more than $140,000 in commissions and could not reconcile that cost with the value I expected to receive.</p><p>I decided to sell the home myself and document the process on social media. The story went viral, and I heard from thousands of homeowners across the country who shared the same basic frustration: the traditional process was extraordinarily expensive, needlessly opaque, and difficult to navigate without surrendering a significant portion of the home’s value.</p><p>It seemed crazy that in the age of AI there was still no centralized platform capable of helping consumers understand the process, coordinate the work, and make informed decisions from beginning to end. So I decided to build it. </p><p><strong>Tom’s Guide: What do you think is the single biggest misconception people have about using AI to sell a home?</strong></p><p><strong>Chambers: </strong>The biggest misconception is that using AI means handing an important financial transaction over to an unpredictable chatbot.</p><p>Many people’s mental model of AI was formed by their earliest experiences with general-purpose models, when hallucinations were more common and the systems had very little context about the user or the task. But a purpose-built real estate system is fundamentally different.</p><p>The goal is not to let AI make consequential decisions without oversight. It is to give consumers a system that understands their transaction, organizes the relevant information, explains their options, identifies what needs attention, and helps them execute each step. The homeowner remains in control; the AI makes the process far more manageable.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="w5HAJHaxBvWuLRrVtARMb8" name="shutterstock_2500366719-2" alt="ai real estate" src="https://cdn.mos.cms.futurecdn.net/w5HAJHaxBvWuLRrVtARMb8.jpg" mos="" align="middle" fullscreen="" width="6000" height="3375" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Tom’s Guide: What’s one part of the home-selling process that you think AI does dramatically better than humans today? And what is one part you think it still struggles with?</strong></p><p><strong>Chambers: </strong>AI is exceptionally good at coordination and information synthesis.</p><p>A home sale generates a ton of fragmented information: contracts, disclosures, inspection findings, deadlines, offers, contingencies, communications, and financial calculations. AI can process all of it continuously, maintain awareness of the full transaction, and explain what matters without losing context from one step to the next.</p><p>What it does less well is provide emotional reassurance. Selling a home can be stressful, deeply personal, and occasionally adversarial. A skilled human can recognize hesitation, navigate a sensitive negotiation, and understand the emotional weight of a decision in ways AI still cannot fully replicate.</p><p>That is part of the reason Ridley offers a plan with a human in the loop. The goal is not to pretend AI is equally good at everything. It is to let AI handle the complexity, coordination, and information processing, while making human judgment and support available at the moments when they are genuinely valuable.</p><p><strong>Tom’s Guide: If someone were to give ChatGPT and Ridley’s AI the same home-selling scenario, what would Ridley know that a general AI chatbot wouldn’t?</strong></p><p><strong>Chambers: </strong>ChatGPT is an extraordinarily capable general-purpose model, but it does not inherently know the complete state of a particular real estate transaction.</p><p>Ridley Intelligence maintains persistent transaction-state awareness. It understands the property, the participants, the contracts, the deadlines, the disclosures, the inspection findings, the communications, the decisions that have already been made, and what needs to happen next.</p><p>That continuity is critical. Ridley is not responding to each question as though it were the beginning of a new conversation. It carries the full history of the transaction forward, reasons from that context, and can take actions on the consumer’s behalf such as preparing documents, coordinating next steps, tracking deadlines, and communicating with the relevant parties.</p><p>The difference is similar to stopping a lawyer on the street and asking for general advice about your case versus working with the lawyer who has read every document, followed every conversation, understands what has already happened, and knows exactly where the matter stands today.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/bZCh4goWf2M" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: What’s something AI has taught you and your team about how people actually buy and sell homes that surprised you?</strong></p><p><strong>Chambers: </strong>We learned that the greatest source of anxiety is often not the complexity of any individual step. It is the uncertainty created by not knowing what is happening, what comes next, or whether something important is being missed.</p><p>The industry tends to assume that consumers primarily need expertise delivered through a person. What many consumers actually need is persistent context: a clear explanation of where they are in the process, what each decision means, and what action is required next.</p><p>When people have that visibility, they are capable of doing far more themselves than the traditional industry gives them credit for. </p><p><strong>Tom’s Guide: If you were selling your own home tomorrow, what's one AI-powered strategy you'd use that most homeowners aren't taking advantage of yet?</strong></p><p><strong>Chambers: </strong>If I were selling my home tomorrow, I’d use Ridley. That’s the obvious founder answer, but it’s also why I built it.</p><p>There are a few places where it can really improve the outcome: pricing the home, deciding what is actually worth fixing before it goes to market, using our AI marketing engine to reach more qualified buyers, and understanding which offer is genuinely the strongest.</p><p>Once the sale is underway, Ridley maintains awareness of the entire transaction. It knows what has happened, what has been agreed to, which deadlines are approaching, and what decisions still need to be made. That means its guidance is grounded in the reality of your specific sale, rather than generic advice.</p><p>It also handles much of the transaction coordination, making sure the right documents, information, and next steps reach the right people at the right time.</p><p>That is the real promise of AI in real estate. Not a chatbot sitting on the sidelines, but an intelligent system helping run the sale from beginning to end.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/J2sdkK-aI_E" allowfullscreen></iframe></div></div><p><strong>Tom’s Guide: Looking ahead five years from now, what parts of today's real estate process do you think will completely disappear because of AI?</strong></p><p><strong>Chambers: </strong>When you strip it down, a real estate agent typically plays two primary roles: transaction coordinator and strategic advisor.</p><p>Over the next five years, I think most of the coordination work will disappear into the software. Tracking deadlines, moving documents between parties, scheduling inspections, following up with lenders and title companies, and making sure everyone knows what happens next are all things AI can do extremely well.</p><p>The strategic advisory role will remain, but it will change. There will still be moments when sellers want an experienced person to help with pricing, negotiation, or a difficult judgment call. The difference is that consumers will be able to access that expertise when they need it, rather than paying a percentage of their home’s value for it to be bundled with a large amount of administrative work.</p><p>I do not think real estate agents disappear. I think the traditional job gets unbundled, and the parts that remain become more specialized, more transparent, and far less expensive.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/i-asked-siri-ai-and-gemini-a-series-of-increasingly-bizarre-questions-to-see-how-they-responded-heres-what-happened" target="_blank">I asked Siri AI and Gemini a series of increasingly bizarre questions to see how they responded —here's what happened</a></li><li><a href="https://www.tomsguide.com/ai/slashy-is-the-ai-email-app-replacing-notion-mail-heres-why" target="_blank">Slashy is the AI email app replacing Notion Mail — here’s why</a></li><li><a href="https://www.tomsguide.com/ai/if-this-22-year-old-made-usd400-000-over-the-weekend-why-cant-i-inside-the-fake-ai-entrepreneur-boom" target="_blank">'If this 22-year-old made $400,000 over the weekend, why can't I?' Inside the fake AI entrepreneur boom</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Claude has 4 built-in skills I use constantly — here’s how to find them ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Claude can do much more than answer questions or help you edit documents. Hidden inside the chatbot are four <a href="https://www.tomsguide.com/ai/claude-skills-are-here-and-they-might-be-the-smartest-ai-feature-youre-not-using-yet">Skills</a> that let it create and edit the files many of us use every day.</p><p>Anthropic has built separate skills for Word documents, Excel spreadsheets, PDFs and PowerPoint presentations. You don’t need to download anything from GitHub or learn how to use <a href="https://www.tomsguide.com/ai/i-tested-claude-codes-new-web-app-it-makes-coding-as-easy-as-chatting">Claude Code</a>. They are built directly into Claude and available to Free, Pro, Max, Team and Enterprise users.</p><p>What makes these skills useful is that Claude doesn’t simply generate content for you to copy into another program. It can create the finished file, complete with formatting, formulas, charts and page layouts. You can then download it, open it in the appropriate program and continue editing.</p><p>Here are the four skills I keep coming back to, along with the prompts you can use to try them yourself.</p><h2 id="where-to-find-claude-s-built-in-skills">Where to find Claude’s built-in skills </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gUccdc3zNXCh6E8J2KXwk9" name="Claude Skills" alt="Claude Skills" src="https://cdn.mos.cms.futurecdn.net/gUccdc3zNXCh6E8J2KXwk9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>You don’t need to download these skills from GitHub or install anything separately. Start by opening Claude and click your name or initials in the lower-left corner. Select <strong>Settings</strong>, open <strong>Capabilities</strong> and make sure <strong>Code execution and file creation</strong> is turned on.</p><p>Next, return to Claude’s main screen, open <strong>Customize</strong> and select <strong>Skills</strong>. You should see Anthropic’s built-in skills for Word documents, Excel spreadsheets, PDFs and PowerPoint presentations. Turn on the ones you want to use.</p><p>Once enabled, the skills work automatically. You don’t need to select the Word skill before creating a document or the Excel skill before making a spreadsheet. Tell Claude what you want and specify the finished file type, such as an editable DOCX, XLSX or PPTX file.</p><p>If you don’t see the Skills section, check that code execution and file creation are enabled. Team and Enterprise accounts may also require an administrator to enable skills for the organization.</p><h2 id="1-create-polished-word-documents">1. Create polished Word documents</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XwmeVtzAsQ8pEBePRkRnXT" name="MS WORD EDITOR.jpg" alt="Microsoft 365 Word Editor mode" src="https://cdn.mos.cms.futurecdn.net/XwmeVtzAsQ8pEBePRkRnXT.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p><strong>Prompt to try: </strong><em>Turn these notes into a polished Word document. Add a title, a short introduction and clear section headings. Keep the tone conversational and preserve all links and direct quotes. Give me the finished document as an editable DOCX file.</em></p><p>Claude’s Word Skill can turn rough information into a properly formatted DOCX file. This is really useful for anyone who has a first draft or even messy notes scattered across a document and need to turn them into something another person could actually read. Claude can organize the material, add headings, clean up the formatting and create a downloadable Word file.</p><p>For writers, the most useful part may be the ability to preserve the document’s structure while changing the language. You can ask Claude to tighten an article without removing hyperlinks, alter the tone of a report or turn interview notes into an organized briefing document.</p><h2 id="2-build-an-excel-spreadsheet-from-plain-english">2. Build an Excel spreadsheet from plain English</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="WfnwwGiGtcvgfpaUvzhp4D" name="excel-on-mac-shst.jpg" alt="A screenshot of Microsoft Excel running on a Mac." src="https://cdn.mos.cms.futurecdn.net/WfnwwGiGtcvgfpaUvzhp4D.jpg" mos="" align="middle" fullscreen="" width="1000" height="562" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: PixieMe/Shutterstock)</span></figcaption></figure><p><strong>Prompt to try:</strong><em><strong> </strong></em><em>Create an Excel spreadsheet from this data. Add a formula that calculates the total for each category and another that calculates the overall total. Include a bar chart comparing the categories. Format the headings clearly and give me the finished XLSX file.</em></p><p>Spreadsheets can become complicated quickly, especially once formulas are involved. Claude’s Excel Skill lets you explain what you need in ordinary language. You can upload a table, a CSV file or even an image containing data. Claude can organize the information into rows and columns, add formulas and create charts based on the results.</p><p>For example, you could give Claude a list of monthly expenses and ask it to build a budget. It could categorize the purchases, calculate totals and show which category accounted for the largest share of your spending.</p><h2 id="3-turn-information-into-a-shareable-pdf">3. Turn information into a shareable PDF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6240px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zU8gpvFte2AdkMPrdadx2a" name="shutterstock_2404720713" alt="A person on a laptop converting a PDF to a DOC" src="https://cdn.mos.cms.futurecdn.net/zU8gpvFte2AdkMPrdadx2a.jpg" mos="" align="middle" fullscreen="" width="6240" height="3510" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Prompt to try: </strong><em>Turn this information into a clean, one-page PDF guide. Use a clear title, short sections and enough spacing to make it easy to read. Do not add information that is not in my source material. Give me the finished PDF as a download.</em></p><p>PDFs are useful because their layout stays in place when someone opens them on another device. They can also be surprisingly annoying to create or edit.</p><p>Claude’s PDF Skill can take text, images or data and turn them into a finished file. That could be a report, a printable checklist, a family schedule, an event guide or a one-page reference sheet. It can also extract information from existing PDFs, including tables that would otherwise be difficult to copy. If a PDF contains a long report, you can ask Claude to pull out specific details and use them to create a shorter document.</p><h2 id="4-create-an-editable-powerpoint-presentation">4. Create an editable PowerPoint presentation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1440px;"><p class="vanilla-image-block" style="padding-top:60.28%;"><img id="JGAo9TPWPeh8ra7NBPfppA" name="PowerPoint-Picture-Layout.png" alt="powerpoint" src="https://cdn.mos.cms.futurecdn.net/JGAo9TPWPeh8ra7NBPfppA.png" mos="" align="middle" fullscreen="" width="1440" height="868" attribution="" endorsement="" class="inline"></p></div></div></figure><p><strong>Prompt to try: </strong><em>Turn this document into an eight-slide PowerPoint presentation for a general audience. Give each slide one clear idea, keep the text concise and include a final slide with the main takeaways. Use a clean, colorful design and give me the finished presentation as an editable PPTX file.</em></p><p>Claude can create a full PowerPoint deck from a prompt, a document or a collection of notes. The PowerPoint Skill is most useful when you already know what you want to say but don’t want to spend an hour arranging slides. Claude can divide the material into sections, write slide titles and create an editable PPTX file.</p><p>You can tell it who the presentation is for, how long it should be and what style you want. Giving Claude those details helps it decide what belongs on each slide and what should be left out. The result may still need some visual cleanup. AI-generated presentations have a habit of putting too much text on slides, so I usually specify a slide count and ask for one main idea per slide.</p><h2 id="final-thoughts-11">Final thoughts </h2><p>The biggest change for me was realizing that I didn't have to create a new Skill for these tasks. Rather than copying the answer into Word or Excel, Claude creates the actual file for you. <br><br>This saves me lots of time each day, but it's worth noting that AI can make mistakes. You'll want to be sure to stay in the loop and review everything. </p><p>Give these four Skills a try and let me know what you think in the comments. You may also want to try making a few of your own based on what tasks you do most. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"><strong>I use Gemini Spark daily — here are 7 prompts that show what it can really do</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/claude-has-4-built-in-skills-i-use-constantly-heres-how-to-find-them</link>
                                                                            <description>
                            <![CDATA[ Discover four built-in Claude skills for creating Word documents, Excel spreadsheets, PDFs and PowerPoint presentations — and learn how to enable them. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">NUw7TLYVP2Jsx7XurEnVXk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Claude]]></media:description>                                                            <media:text><![CDATA[Claude]]></media:text>
                                <media:title type="plain"><![CDATA[Claude]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pJqAjLit4wkxHKgwaSx9Bj-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Claude can do much more than answer questions or help you edit documents. Hidden inside the chatbot are four <a href="https://www.tomsguide.com/ai/claude-skills-are-here-and-they-might-be-the-smartest-ai-feature-youre-not-using-yet">Skills</a> that let it create and edit the files many of us use every day.</p><p>Anthropic has built separate skills for Word documents, Excel spreadsheets, PDFs and PowerPoint presentations. You don’t need to download anything from GitHub or learn how to use <a href="https://www.tomsguide.com/ai/i-tested-claude-codes-new-web-app-it-makes-coding-as-easy-as-chatting">Claude Code</a>. They are built directly into Claude and available to Free, Pro, Max, Team and Enterprise users.</p><p>What makes these skills useful is that Claude doesn’t simply generate content for you to copy into another program. It can create the finished file, complete with formatting, formulas, charts and page layouts. You can then download it, open it in the appropriate program and continue editing.</p><p>Here are the four skills I keep coming back to, along with the prompts you can use to try them yourself.</p><h2 id="where-to-find-claude-s-built-in-skills">Where to find Claude’s built-in skills </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gUccdc3zNXCh6E8J2KXwk9" name="Claude Skills" alt="Claude Skills" src="https://cdn.mos.cms.futurecdn.net/gUccdc3zNXCh6E8J2KXwk9.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>You don’t need to download these skills from GitHub or install anything separately. Start by opening Claude and click your name or initials in the lower-left corner. Select <strong>Settings</strong>, open <strong>Capabilities</strong> and make sure <strong>Code execution and file creation</strong> is turned on.</p><p>Next, return to Claude’s main screen, open <strong>Customize</strong> and select <strong>Skills</strong>. You should see Anthropic’s built-in skills for Word documents, Excel spreadsheets, PDFs and PowerPoint presentations. Turn on the ones you want to use.</p><p>Once enabled, the skills work automatically. You don’t need to select the Word skill before creating a document or the Excel skill before making a spreadsheet. Tell Claude what you want and specify the finished file type, such as an editable DOCX, XLSX or PPTX file.</p><p>If you don’t see the Skills section, check that code execution and file creation are enabled. Team and Enterprise accounts may also require an administrator to enable skills for the organization.</p><h2 id="1-create-polished-word-documents">1. Create polished Word documents</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XwmeVtzAsQ8pEBePRkRnXT" name="MS WORD EDITOR.jpg" alt="Microsoft 365 Word Editor mode" src="https://cdn.mos.cms.futurecdn.net/XwmeVtzAsQ8pEBePRkRnXT.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p><strong>Prompt to try: </strong><em>Turn these notes into a polished Word document. Add a title, a short introduction and clear section headings. Keep the tone conversational and preserve all links and direct quotes. Give me the finished document as an editable DOCX file.</em></p><p>Claude’s Word Skill can turn rough information into a properly formatted DOCX file. This is really useful for anyone who has a first draft or even messy notes scattered across a document and need to turn them into something another person could actually read. Claude can organize the material, add headings, clean up the formatting and create a downloadable Word file.</p><p>For writers, the most useful part may be the ability to preserve the document’s structure while changing the language. You can ask Claude to tighten an article without removing hyperlinks, alter the tone of a report or turn interview notes into an organized briefing document.</p><h2 id="2-build-an-excel-spreadsheet-from-plain-english">2. Build an Excel spreadsheet from plain English</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="WfnwwGiGtcvgfpaUvzhp4D" name="excel-on-mac-shst.jpg" alt="A screenshot of Microsoft Excel running on a Mac." src="https://cdn.mos.cms.futurecdn.net/WfnwwGiGtcvgfpaUvzhp4D.jpg" mos="" align="middle" fullscreen="" width="1000" height="562" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: PixieMe/Shutterstock)</span></figcaption></figure><p><strong>Prompt to try:</strong><em><strong> </strong></em><em>Create an Excel spreadsheet from this data. Add a formula that calculates the total for each category and another that calculates the overall total. Include a bar chart comparing the categories. Format the headings clearly and give me the finished XLSX file.</em></p><p>Spreadsheets can become complicated quickly, especially once formulas are involved. Claude’s Excel Skill lets you explain what you need in ordinary language. You can upload a table, a CSV file or even an image containing data. Claude can organize the information into rows and columns, add formulas and create charts based on the results.</p><p>For example, you could give Claude a list of monthly expenses and ask it to build a budget. It could categorize the purchases, calculate totals and show which category accounted for the largest share of your spending.</p><h2 id="3-turn-information-into-a-shareable-pdf">3. Turn information into a shareable PDF</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6240px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zU8gpvFte2AdkMPrdadx2a" name="shutterstock_2404720713" alt="A person on a laptop converting a PDF to a DOC" src="https://cdn.mos.cms.futurecdn.net/zU8gpvFte2AdkMPrdadx2a.jpg" mos="" align="middle" fullscreen="" width="6240" height="3510" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p><strong>Prompt to try: </strong><em>Turn this information into a clean, one-page PDF guide. Use a clear title, short sections and enough spacing to make it easy to read. Do not add information that is not in my source material. Give me the finished PDF as a download.</em></p><p>PDFs are useful because their layout stays in place when someone opens them on another device. They can also be surprisingly annoying to create or edit.</p><p>Claude’s PDF Skill can take text, images or data and turn them into a finished file. That could be a report, a printable checklist, a family schedule, an event guide or a one-page reference sheet. It can also extract information from existing PDFs, including tables that would otherwise be difficult to copy. If a PDF contains a long report, you can ask Claude to pull out specific details and use them to create a shorter document.</p><h2 id="4-create-an-editable-powerpoint-presentation">4. Create an editable PowerPoint presentation</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1440px;"><p class="vanilla-image-block" style="padding-top:60.28%;"><img id="JGAo9TPWPeh8ra7NBPfppA" name="PowerPoint-Picture-Layout.png" alt="powerpoint" src="https://cdn.mos.cms.futurecdn.net/JGAo9TPWPeh8ra7NBPfppA.png" mos="" align="middle" fullscreen="" width="1440" height="868" attribution="" endorsement="" class="inline"></p></div></div></figure><p><strong>Prompt to try: </strong><em>Turn this document into an eight-slide PowerPoint presentation for a general audience. Give each slide one clear idea, keep the text concise and include a final slide with the main takeaways. Use a clean, colorful design and give me the finished presentation as an editable PPTX file.</em></p><p>Claude can create a full PowerPoint deck from a prompt, a document or a collection of notes. The PowerPoint Skill is most useful when you already know what you want to say but don’t want to spend an hour arranging slides. Claude can divide the material into sections, write slide titles and create an editable PPTX file.</p><p>You can tell it who the presentation is for, how long it should be and what style you want. Giving Claude those details helps it decide what belongs on each slide and what should be left out. The result may still need some visual cleanup. AI-generated presentations have a habit of putting too much text on slides, so I usually specify a slide count and ask for one main idea per slide.</p><h2 id="final-thoughts-11">Final thoughts </h2><p>The biggest change for me was realizing that I didn't have to create a new Skill for these tasks. Rather than copying the answer into Word or Excel, Claude creates the actual file for you. <br><br>This saves me lots of time each day, but it's worth noting that AI can make mistakes. You'll want to be sure to stay in the loop and review everything. </p><p>Give these four Skills a try and let me know what you think in the comments. You may also want to try making a few of your own based on what tasks you do most. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive"><strong>The smartest AI trick isn't a prompt — it's your Google Drive</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/i-found-a-secret-menu-of-chatgpt-features-here-are-my-9-favorites"><strong>I found ChatGPT's secret menu — these 9 features change everything</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-use-gemini-spark-daily-here-are-7-prompts-that-show-what-it-can-really-do"><strong>I use Gemini Spark daily — here are 7 prompts that show what it can really do</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google Assistant dies in September: what you need to know and how to switch to Gemini ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Over the last year and change, Google has been slowly lopping off parts of Google Assistant and replacing them with Gemini. Now, it appears Assistant has an official end date.</p><p>As reported by <a href="https://9to5google.com/2026/08/04/google-assistant-september-2026-shutdown/" target="_blank">9to5Google</a>, an announcement email has apparently been sent to some users. A full version of the email popped up in the <a href="https://www.reddit.com/r/google/comments/1vfm5s1/google_assistant_is_going_away_on_mobile_devices/" target="_blank">r/google subreddit</a>.</p><p>"Google Assistant on your mobile device is being discontinued, and Gemini - our next-generation AI-powered assistant - is now the Assistant experience on Android," the email starts. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5A7mW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5A7mW.js" async></script><p>It goes on to reveal that Assistant will be replaced on mobile devices and Wear OS devices starting on September 4. </p><p>“We will begin removing access to Google Assistant starting on September 4,” Google states in the email, “and expect that this process may take a few weeks to reach everyone. Once availability is removed, you will no longer be able to use or switch back to Google Assistant on your phone, tablet or paired devices.”</p><p>Per the announcement, that affects Android phones, watches and tablets. However, Assistant should still be available on Google TV and isn't fully dead on Google Home.</p><h2 id="the-slow-decline">The slow decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2016px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zaz4nFR4yutzwBNjFLnaPj" name="Google Home Speaker" alt="Google Home Speaker" src="https://cdn.mos.cms.futurecdn.net/zaz4nFR4yutzwBNjFLnaPj.jpg" mos="" align="middle" fullscreen="" width="2016" height="1134" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The great Gemini migration started in earnest<a href="https://www.tomsguide.com/ai/google-gemini/gemini-is-finally-replacing-google-assistant-in-google-home-what-you-need-to-know"> last summer when Google announced</a> that the new AI chatbot would replace Google Assistant in Google Home and smart home devices like the Google Nest Hub. That shift didn't really kick off until October of 2025.</p><p>It really <a href="https://www.tomsguide.com/ai/google-assistant-is-losing-features-to-make-way-for-gemini-heres-whats-just-been-axed">started in March of 2025</a> when various features like Live Translation in Interpreter mode, the ability to share photos via voice commands and birthday reminder notifications were axed in Nest devices. They came back with Gemini.</p><p>In the same month,<a href="https://www.tomsguide.com/phones/gemini-to-kill-off-google-assistant-on-most-android-phones-heres-what-you-need-to-know"> Google announced plans</a> to replace Assistant with Gemini, though a specific timeline wasn't presented.</p><p>More recently, <a href="https://www.tomsguide.com/phones/google-pixel-phones/i-just-got-gemini-for-android-auto-in-my-car-and-i-cant-believe-how-much-better-it-is-than-google-assistant">Google Assistant was kicked off Android Auto</a> in favor of Gemini. The rollout was announced last year, but didn't hit everyone until this summer.</p><p>Meanwhile, Gemini has been steadily improving over the last year, making it more capable of handling everything from <a href="https://www.tomsguide.com/ai/gemini-3-1-pro-is-a-powerhouse-for-deep-work-here-are-7-prompts-that-prove-it">deep work</a> to Android Auto and <a href="https://www.tomsguide.com/ai/gemini-isnt-just-a-chatbot-anymore-here-are-13-things-it-can-do-in-2026">exploring the world</a>.</p><h2 id="what-next">What next</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="khFPxsQnHBMwjXkGCXtWB8" name="Gemini" alt="Gemini" src="https://cdn.mos.cms.futurecdn.net/khFPxsQnHBMwjXkGCXtWB8.webp" mos="" align="middle" fullscreen="" width="970" height="546" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you've been using Google Assistant and not Gemini, you'll need to get Gemini when you can. If it doesn't come pre-installed, you can get it from the <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.bard" target="_blank">Google Play Store</a>. Gemini is more than just a voice assistant, as it encompasses most of Google's AI ventures, from image generation to search and chatbot prompts.</p><p>Once you've installed Gemini, it will have a guide for replacing Google Assistant as the default AI. Your Google Account should cross-reference both apps, so the switch should be quick.</p><p>Unlike Gemini, Assistant doesn't really have a true chat archive. You can find your interactions via the <a href="https://myactivity.google.com/personalization/settings/?pli=1" target="_blank">Web & App Activity page</a> in your Google account.</p><p>Old Google Assistant commands will still work with Gemini using the "Hey Google" prompt. The difference is that Gemini conversations will sync across your devices. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2026-preview-pixel-11-pixel-watch-5-pixel-tag-and-more">Made by Google 2026 preview: Pixel 11, Pixel Watch 5, Pixel Tag and more</a></li><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/computing/online-security/incognito-mode-is-a-total-lie-and-it-cost-google-5-billion">Incognito mode is a total lie – and it cost Google $5 billion</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-gemini/google-assistant-dies-in-september-what-you-need-to-know-and-how-to-switch-to-gemini</link>
                                                                            <description>
                            <![CDATA[ Starting in September, Google Gemini will replace Google Assistant. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tZY7su9WYpDX7F9vhQmTUh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9jyHjNvb4aHuMQyXPEoxZW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 05 Aug 2026 18:50:50 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Google Gemini]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9jyHjNvb4aHuMQyXPEoxZW-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google Assistant logo on a smartphone screen]]></media:description>                                                            <media:text><![CDATA[Google Assistant logo on a smartphone screen]]></media:text>
                                <media:title type="plain"><![CDATA[Google Assistant logo on a smartphone screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9jyHjNvb4aHuMQyXPEoxZW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Over the last year and change, Google has been slowly lopping off parts of Google Assistant and replacing them with Gemini. Now, it appears Assistant has an official end date.</p><p>As reported by <a href="https://9to5google.com/2026/08/04/google-assistant-september-2026-shutdown/" target="_blank">9to5Google</a>, an announcement email has apparently been sent to some users. A full version of the email popped up in the <a href="https://www.reddit.com/r/google/comments/1vfm5s1/google_assistant_is_going_away_on_mobile_devices/" target="_blank">r/google subreddit</a>.</p><p>"Google Assistant on your mobile device is being discontinued, and Gemini - our next-generation AI-powered assistant - is now the Assistant experience on Android," the email starts. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5A7mW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5A7mW.js" async></script><p>It goes on to reveal that Assistant will be replaced on mobile devices and Wear OS devices starting on September 4. </p><p>“We will begin removing access to Google Assistant starting on September 4,” Google states in the email, “and expect that this process may take a few weeks to reach everyone. Once availability is removed, you will no longer be able to use or switch back to Google Assistant on your phone, tablet or paired devices.”</p><p>Per the announcement, that affects Android phones, watches and tablets. However, Assistant should still be available on Google TV and isn't fully dead on Google Home.</p><h2 id="the-slow-decline">The slow decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2016px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zaz4nFR4yutzwBNjFLnaPj" name="Google Home Speaker" alt="Google Home Speaker" src="https://cdn.mos.cms.futurecdn.net/zaz4nFR4yutzwBNjFLnaPj.jpg" mos="" align="middle" fullscreen="" width="2016" height="1134" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The great Gemini migration started in earnest<a href="https://www.tomsguide.com/ai/google-gemini/gemini-is-finally-replacing-google-assistant-in-google-home-what-you-need-to-know"> last summer when Google announced</a> that the new AI chatbot would replace Google Assistant in Google Home and smart home devices like the Google Nest Hub. That shift didn't really kick off until October of 2025.</p><p>It really <a href="https://www.tomsguide.com/ai/google-assistant-is-losing-features-to-make-way-for-gemini-heres-whats-just-been-axed">started in March of 2025</a> when various features like Live Translation in Interpreter mode, the ability to share photos via voice commands and birthday reminder notifications were axed in Nest devices. They came back with Gemini.</p><p>In the same month,<a href="https://www.tomsguide.com/phones/gemini-to-kill-off-google-assistant-on-most-android-phones-heres-what-you-need-to-know"> Google announced plans</a> to replace Assistant with Gemini, though a specific timeline wasn't presented.</p><p>More recently, <a href="https://www.tomsguide.com/phones/google-pixel-phones/i-just-got-gemini-for-android-auto-in-my-car-and-i-cant-believe-how-much-better-it-is-than-google-assistant">Google Assistant was kicked off Android Auto</a> in favor of Gemini. The rollout was announced last year, but didn't hit everyone until this summer.</p><p>Meanwhile, Gemini has been steadily improving over the last year, making it more capable of handling everything from <a href="https://www.tomsguide.com/ai/gemini-3-1-pro-is-a-powerhouse-for-deep-work-here-are-7-prompts-that-prove-it">deep work</a> to Android Auto and <a href="https://www.tomsguide.com/ai/gemini-isnt-just-a-chatbot-anymore-here-are-13-things-it-can-do-in-2026">exploring the world</a>.</p><h2 id="what-next">What next</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="khFPxsQnHBMwjXkGCXtWB8" name="Gemini" alt="Gemini" src="https://cdn.mos.cms.futurecdn.net/khFPxsQnHBMwjXkGCXtWB8.webp" mos="" align="middle" fullscreen="" width="970" height="546" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you've been using Google Assistant and not Gemini, you'll need to get Gemini when you can. If it doesn't come pre-installed, you can get it from the <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.bard" target="_blank">Google Play Store</a>. Gemini is more than just a voice assistant, as it encompasses most of Google's AI ventures, from image generation to search and chatbot prompts.</p><p>Once you've installed Gemini, it will have a guide for replacing Google Assistant as the default AI. Your Google Account should cross-reference both apps, so the switch should be quick.</p><p>Unlike Gemini, Assistant doesn't really have a true chat archive. You can find your interactions via the <a href="https://myactivity.google.com/personalization/settings/?pli=1" target="_blank">Web & App Activity page</a> in your Google account.</p><p>Old Google Assistant commands will still work with Gemini using the "Hey Google" prompt. The difference is that Gemini conversations will sync across your devices. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/made-by-google-2026-preview-pixel-11-pixel-watch-5-pixel-tag-and-more">Made by Google 2026 preview: Pixel 11, Pixel Watch 5, Pixel Tag and more</a></li><li><a href="https://www.tomsguide.com/ai/the-smartest-ai-trick-isnt-a-prompt-its-your-google-drive">The smartest AI trick isn't a prompt — it's your Google Drive</a></li><li><a href="https://www.tomsguide.com/computing/online-security/incognito-mode-is-a-total-lie-and-it-cost-google-5-billion">Incognito mode is a total lie – and it cost Google $5 billion</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The AI boom just hit a wall — these states are considering banning all new data centers ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It’s become a part of everyday life to wake up to a news story about AI data centers being built somewhere in the U.S. It’s also become equally common to be treated to threads full of negative feedback from randoms and the people living in those states once they learn about them.</p><p>The speedy development of data centers has been tied to plenty of unfortunate outcomes thus far—their expansion across the <a href="https://www.youtube.com/watch?v=AKYbuBWxeAE" target="_blank">DMV (Washington, D.C., Maryland and Virginia)</a> and <a href="https://www.youtube.com/watch?v=PApPd6p6lX0" target="_blank">Georgia</a> is reportedly driving people from their homes as the spaces they occupy are being considered as fertile ground for new data centers. The growing opposition to them is due in large part to their massive consumption of water and electricity they consume, which then raises the utility bills for nearby residents.</p><p>Add on the constant noise pollution from continuous cooling systems, air emissions from backup generators and the conversion of natural green spaces (such as farms) into massive industrial warehouses and you have a long list of valid complaints against continued data center development.</p><p>While states such as Ohio, Illinois and Arizona stand out as growing hubs for the constant advancement of new data centers, there’s also a bunch of other states that are going in the opposite direction. Here are the ones that are considering banning them altogether.</p><h2 id="texas-is-joining-the-list-of-other-states-that-are-considering-blocking-new-ai-data-centers">Texas is joining the list of other states that are considering blocking new AI data centers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JbN2AwChVdbiYVWYc7j9EP" name="shutterstock_2732878875-16x9" alt="data centers" src="https://cdn.mos.cms.futurecdn.net/JbN2AwChVdbiYVWYc7j9EP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Most recently, <a href="https://www.texastribune.org/2026/08/03/texas-data-center-project-audit-greg-abbott/">The Texas Tribune</a> reported that Texas Gov. Greg Abbott announced a moratorium on all data center approvals through the Public Utility Commission of Texas (PUCT) and the Electric Reliability Council of Texas (ERCOT). </p><p>That is, until the agencies have completed an audit of data centers seeking approval to connect to Texas’s electric grid.</p><p>In a written statement to both agencies, Abbott had this to say: “Our top priority is to protect Texans’ safety and quality of life. Any project that fails to comply with the requirements set forth by the PUCT and ERCOT, and by state law, must be denied connection to the Texas grid. Simply put, Texans must come first.” </p><p>Alongside Texas are the following states that have introduced moratoriums, continued them or passed legislation on the rapid development of data centers (this information comes courtesy of <a href="https://www.ncsl.org/fiscal/which-states-are-banning-data-centers" target="_blank">The National Conference of State Legislatures</a>:</p><ul><li><strong>Delaware introduced a moratorium “on permits for data centers over 100 MW until January 2027.”</strong></li><li><strong>Georgia introduced a moratorium that “forbids local governments from permitting data centers until December 2028.”</strong></li><li><strong>Michigan introduced a moratorium that says “local governments and the public service commission may not permit or approve new data centers until April 2027.”</strong></li><li><strong>New York passed legislation that enacted a “one-year moratorium on data centers over 20 MW.”</strong></li><li><strong>Pennsylvania introduced a “three-year moratorium on new data centers, paired with impact studies; or empower municipalities to prohibit data centers.”</strong></li><li><strong>South Carolina introduced a moratorium that “forbids local approval of data centers until the Legislature adopts a “comprehensive oversight” framework.”</strong></li><li><strong>Vermont introduced a “moratorium on data centers until 2030, requires impact study.”</strong></li><li><strong>Virginia continued a moratorium that “prohibits final approval of new data centers until all interconnection requests are fulfilled, or until July 2028.”</strong></li></ul><p>It’s also worth mentioning the states where moratorium bills against new data centers have failed in their processes of getting passed:</p><ul><li><strong>Maryland</strong></li><li><strong>Minnesota</strong></li><li><strong>New Hampshire</strong></li><li><strong>Oklahoma</strong></li><li><strong>South Dakota</strong></li><li><strong>Wisconsin</strong></li></ul><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBxn0O"></div>                            </div>                            <script src="https://kwizly.com/embed/eBxn0O.js" async></script><h2 id="bottom-line-14">Bottom line</h2><p>The stats laid out by <a href="https://www.electricchoice.com/datacenters/" target="_blank">Electric Choice</a> in connection to data centers are pretty alarming: 700+ data centers are currently under construction across 38 states, 4,500+ active facilities are littered across all 50 states while consuming 4.4% of total U.S. electricity, and the total natural energy consumption is projected to double by 2028, driven primarily by AI workloads.</p><p>Even though there seems to be a bigger push towards producing even more data centers, it’s refreshing to see some states rising against the AI tide by enacting temporary pauses on their fast-paced development.</p><p>If you’re looking for information on whether data centers have been built or are planning to be built in your home state, it’s definitely worth checking out sites such as <a href="https://cleanview.co/data-centers/us" target="_blank">Cleanview</a> and <a href="https://trackdatacenters.com/" target="_blank">Track Data Centers</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/you-dont-have-to-quit-ai-to-use-less-energy-try-these-7-simple-habits" target="_blank">You don’t have to quit AI to use less energy — try these 7 simple habits</a></li><li><a href="https://www.tomsguide.com/ai/does-your-mac-need-new-buttons-great-news-the-dune-keypad-offers-just-that" target="_blank">I added three extra keys to my MacBook with this unique accessory — and it's a game changer for my workflow</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/the-ai-boom-just-hit-a-wall-these-states-are-considering-banning-all-new-data-centers</link>
                                                                            <description>
                            <![CDATA[ With the recent news that Texas announced a moratorium on all data center approvals, there are plenty of other states also considering banning them. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">n4uLTZAaf9FVADBtW68wu4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CgM32zeN5DhvnERkHmbvT5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 05 Aug 2026 16:01:40 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Aug 2026 16:34:17 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CgM32zeN5DhvnERkHmbvT5-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[data centers]]></media:description>                                                            <media:text><![CDATA[data centers]]></media:text>
                                <media:title type="plain"><![CDATA[data centers]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CgM32zeN5DhvnERkHmbvT5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s become a part of everyday life to wake up to a news story about AI data centers being built somewhere in the U.S. It’s also become equally common to be treated to threads full of negative feedback from randoms and the people living in those states once they learn about them.</p><p>The speedy development of data centers has been tied to plenty of unfortunate outcomes thus far—their expansion across the <a href="https://www.youtube.com/watch?v=AKYbuBWxeAE" target="_blank">DMV (Washington, D.C., Maryland and Virginia)</a> and <a href="https://www.youtube.com/watch?v=PApPd6p6lX0" target="_blank">Georgia</a> is reportedly driving people from their homes as the spaces they occupy are being considered as fertile ground for new data centers. The growing opposition to them is due in large part to their massive consumption of water and electricity they consume, which then raises the utility bills for nearby residents.</p><p>Add on the constant noise pollution from continuous cooling systems, air emissions from backup generators and the conversion of natural green spaces (such as farms) into massive industrial warehouses and you have a long list of valid complaints against continued data center development.</p><p>While states such as Ohio, Illinois and Arizona stand out as growing hubs for the constant advancement of new data centers, there’s also a bunch of other states that are going in the opposite direction. Here are the ones that are considering banning them altogether.</p><h2 id="texas-is-joining-the-list-of-other-states-that-are-considering-blocking-new-ai-data-centers">Texas is joining the list of other states that are considering blocking new AI data centers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JbN2AwChVdbiYVWYc7j9EP" name="shutterstock_2732878875-16x9" alt="data centers" src="https://cdn.mos.cms.futurecdn.net/JbN2AwChVdbiYVWYc7j9EP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Most recently, <a href="https://www.texastribune.org/2026/08/03/texas-data-center-project-audit-greg-abbott/">The Texas Tribune</a> reported that Texas Gov. Greg Abbott announced a moratorium on all data center approvals through the Public Utility Commission of Texas (PUCT) and the Electric Reliability Council of Texas (ERCOT). </p><p>That is, until the agencies have completed an audit of data centers seeking approval to connect to Texas’s electric grid.</p><p>In a written statement to both agencies, Abbott had this to say: “Our top priority is to protect Texans’ safety and quality of life. Any project that fails to comply with the requirements set forth by the PUCT and ERCOT, and by state law, must be denied connection to the Texas grid. Simply put, Texans must come first.” </p><p>Alongside Texas are the following states that have introduced moratoriums, continued them or passed legislation on the rapid development of data centers (this information comes courtesy of <a href="https://www.ncsl.org/fiscal/which-states-are-banning-data-centers" target="_blank">The National Conference of State Legislatures</a>:</p><ul><li><strong>Delaware introduced a moratorium “on permits for data centers over 100 MW until January 2027.”</strong></li><li><strong>Georgia introduced a moratorium that “forbids local governments from permitting data centers until December 2028.”</strong></li><li><strong>Michigan introduced a moratorium that says “local governments and the public service commission may not permit or approve new data centers until April 2027.”</strong></li><li><strong>New York passed legislation that enacted a “one-year moratorium on data centers over 20 MW.”</strong></li><li><strong>Pennsylvania introduced a “three-year moratorium on new data centers, paired with impact studies; or empower municipalities to prohibit data centers.”</strong></li><li><strong>South Carolina introduced a moratorium that “forbids local approval of data centers until the Legislature adopts a “comprehensive oversight” framework.”</strong></li><li><strong>Vermont introduced a “moratorium on data centers until 2030, requires impact study.”</strong></li><li><strong>Virginia continued a moratorium that “prohibits final approval of new data centers until all interconnection requests are fulfilled, or until July 2028.”</strong></li></ul><p>It’s also worth mentioning the states where moratorium bills against new data centers have failed in their processes of getting passed:</p><ul><li><strong>Maryland</strong></li><li><strong>Minnesota</strong></li><li><strong>New Hampshire</strong></li><li><strong>Oklahoma</strong></li><li><strong>South Dakota</strong></li><li><strong>Wisconsin</strong></li></ul><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBxn0O"></div>                            </div>                            <script src="https://kwizly.com/embed/eBxn0O.js" async></script><h2 id="bottom-line-14">Bottom line</h2><p>The stats laid out by <a href="https://www.electricchoice.com/datacenters/" target="_blank">Electric Choice</a> in connection to data centers are pretty alarming: 700+ data centers are currently under construction across 38 states, 4,500+ active facilities are littered across all 50 states while consuming 4.4% of total U.S. electricity, and the total natural energy consumption is projected to double by 2028, driven primarily by AI workloads.</p><p>Even though there seems to be a bigger push towards producing even more data centers, it’s refreshing to see some states rising against the AI tide by enacting temporary pauses on their fast-paced development.</p><p>If you’re looking for information on whether data centers have been built or are planning to be built in your home state, it’s definitely worth checking out sites such as <a href="https://cleanview.co/data-centers/us" target="_blank">Cleanview</a> and <a href="https://trackdatacenters.com/" target="_blank">Track Data Centers</a>.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/you-dont-have-to-quit-ai-to-use-less-energy-try-these-7-simple-habits" target="_blank">You don’t have to quit AI to use less energy — try these 7 simple habits</a></li><li><a href="https://www.tomsguide.com/ai/does-your-mac-need-new-buttons-great-news-the-dune-keypad-offers-just-that" target="_blank">I added three extra keys to my MacBook with this unique accessory — and it's a game changer for my workflow</a></li><li><a href="https://www.tomsguide.com/ai/used-right-ai-is-a-patient-tutor-used-wrong-its-a-shortcut-around-the-learning-we-spoke-to-the-creator-behind-an-ai-tool-thats-changing-the-way-students-learn" target="_blank">'Used right, AI is a patient tutor. Used wrong, it's a shortcut around the learning': we spoke to the creator behind an AI tool that's changing the way students learn</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>