1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>Habit Tracking: The Best Habit Apps For Your iPhone â The Sweet Setup</title> 7 <link rel="alternate" type="application/rss+xml" title="The Sweet Setup" href="https://thesweetsetup.com/feed/"> 8 <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png" /> 9 <meta name="apple-mobile-web-app-title" content="Sweet Setup" /> 10 <meta name="facebook-domain-verification" content="x3h716by8sbeaokg61f4bbn9ei8500" /> 11 <!--[if lt IE 9]> 12
12<script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
12 13 <![endif]--> 14 15 16 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 17 18 <!-- This site is optimized with the Yoast SEO plugin v23.8 - https://yoast.com/wordpress/plugins/seo/ --> 19 <meta name="description" content="We researched many habit tracking apps to find the best. One with a delightful design that provides you with an edge in building and tracking your habits." /> 20 <link rel="canonical" href="https://thesweetsetup.com/apps/best-habit-tracking-app-ios/" /> 21 <meta property="og:locale" content="en_US" /> 22 <meta property="og:type" content="article" /> 23 <meta property="og:title" content="Habit Tracking: The Best Habit Apps For Your iPhone â The Sweet Setup" /> 24 <meta property="og:description" content="We researched many habit tracking apps to find the best. One with a delightful design that provides you with an edge in building and tracking your habits." /> 25 <meta property="og:url" content="https://thesweetsetup.com/apps/best-habit-tracking-app-ios/" /> 26 <meta property="og:site_name" content="The Sweet Setup" /> 27 <meta property="article:modified_time" content="2024-03-07T18:19:32+00:00" /> 28 <meta property="og:image" content="https://thesweetsetup.com/wp-content/uploads/2024/03/streamshero.jpeg" /> 29 <meta name="twitter:label1" content="Est. reading time" /> 30 <meta name="twitter:data1" content="21 minutes" /> 31
31<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://thesweetsetup.com/apps/best-habit-tracking-app-ios/","url":"https://thesweetsetup.com/apps/best-habit-tracking-app-ios/","name":"Habit Tracking: The Best Habit Apps For Your iPhone â The Sweet Setup","isPartOf":{"@id":"https://thesweetsetup.com/#website"},"primaryImageOfPage":{"@id":"https://thesweetsetup.com/apps/best-habit-tracking-app-ios/#primaryimage"},"image":{"@id":"https://thesweetsetup.com/apps/best-habit-tracking-app-ios/#primaryimage"},"thumbnailUrl":"https://thesweetsetup.com/wp-content/uploads/2024/03/streamshero.jpeg","datePublished":"2024-03-07T16:00:58+00:00","dateModified":"2024-03-07T18:19:32+00:00","description":"We researched many habit tracking apps to find the best. One with a delightful design that provides you with an edge in building and tracking your habits.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://thesweetsetup.com/apps/best-habit-tracking-app-ios/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://thesweetsetup.com/apps/best-habit-tracking-app-ios/#primaryimage","url":"https://thesweetsetup.com/wp-content/uploads/2024/03/streamshero.jpeg","contentUrl":"https://thesweetsetup.com/wp-content/uploads/2024/03/streamshero.jpeg","width":1600,"height":804},{"@type":"WebSite","@id":"https://thesweetsetup.com/#website","url":"https://thesweetsetup.com/","name":"The Sweet Setup","description":"The best apps and workflows for your iPhone, iPad, and Mac","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://thesweetsetup.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
31 32 <!-- / Yoast SEO plugin. --> 33 34 35<link rel='dns-prefetch' href='//cloud.typography.com' /> 36<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 37 <!-- This site uses the Google Analytics by MonsterInsights plugin v11.3.0 - Using Analytics tracking - https://www.monsterinsights.com/ -->
vendor: 59 bytes, lines 37-38
37 38 <script src="//www.googletagmanager.com/gtag/js?id=
38G-D46WD7FFRZ
vendor: 91 bytes, lines 38-39
38" data-cfasync="false" data-wpfc-render="false" type="text/javascript" async></script> 39
39<script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> 40 var mi_version = '11.3.0'; 41 var mi_track_user = true; 42 var mi_no_track_reason = ''; 43 var MonsterInsightsDefaultLocations = {"page_location":"https:\/\/thesweetsetup.com\/apps\/best-habit-tracking-app-ios\/"}; 44 if ( typeof MonsterInsightsPrivacyGuardFilter === 'function' ) { 45 var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsPrivacyGuardFilter( MonsterInsightsExcludeQuery ) : MonsterInsightsPrivacyGuardFilter( MonsterInsightsDefaultLocations ); 46 } else { 47 var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsExcludeQuery : MonsterInsightsDefaultLocations; 48 } 49 50 var disableStrs = [ 51 'ga-disable-G-D46WD7FFRZ', 52 ]; 53 54 /* Function to detect opted out users */ 55 function __gtagTrackerIsOptedOut() { 56 for (var index = 0; index < disableStrs.length; index++) { 57 if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) { 58 return true; 59 } 60 } 61 62 return false; 63 } 64 65 /* Disable tracking if the opt-out cookie exists. */ 66 if (__gtagTrackerIsOptedOut()) { 67 for (var index = 0; index < disableStrs.length; index++) { 68 window[disableStrs[index]] = true; 69 } 70 } 71 72 /* Opt-out function */ 73 function __gtagTrackerOptout() { 74 for (var index = 0; index < disableStrs.length; index++) { 75 document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; 76 window[disableStrs[index]] = true; 77 } 78 } 79 80 if ('undefined' === typeof gaOptout) { 81 function gaOptout() { 82 __gtagTrackerOptout(); 83 } 84 } 85 window.dataLayer = window.dataLayer || []; 86 87 window.MonsterInsightsDualTracker = { 88 helpers: {}, 89 trackers: {}, 90 }; 91 if (mi_track_user) { 92 function __gtagDataLayer() { 93 dataLayer.push(arguments); 94 } 95 96 function __gtagTracker(type, name, parameters) { 97 if (!parameters) { 98 parameters = {}; 99 } 100 101 if (parameters.send_to) { 102 __gtagDataLayer.apply(null, arguments); 103 return; 104 } 105 106 if (type === 'event') { 107 parameters.send_to = monsterinsights_frontend.v4_id; 108 var hookName = name; 109 if (typeof parameters['event_category'] !== 'undefined') { 110 hookName = parameters['event_category'] + ':' + name; 111 } 112 113 if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') { 114 MonsterInsightsDualTracker.trackers[hookName](parameters); 115 } else { 116 __gtagDataLayer('event', name, parameters); 117 } 118 119 } else { 120 __gtagDataLayer.apply(null, arguments); 121 } 122 } 123 124 __gtagTracker('js', new Date()); 125 __gtagTracker('set', { 126 'developer_id.dZGIzZG': true, 127 }); 128 if ( MonsterInsightsLocations.page_location ) { 129 __gtagTracker('set', MonsterInsightsLocations); 130 } 131 __gtagTracker('config', 'G-D46WD7FFRZ', {"forceSSL":"true","seo_score":"69","post_type":"app","tags":"untagged","focus_keyword":"habit tracking"} ); 132 window.gtag = __gtagTracker; (function () { 133 /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ 134 /* ga and __gaTracker compatibility shim. */ 135 var noopfn = function () { 136 return null; 137 }; 138 var newtracker = function () { 139 return new Tracker(); 140 }; 141 var Tracker = function () { 142 return null; 143 }; 144 var p = Tracker.prototype; 145 p.get = noopfn; 146 p.set = noopfn; 147 p.send = function () { 148 var args = Array.prototype.slice.call(arguments); 149 args.unshift('send'); 150 __gaTracker.apply(null, args); 151 }; 152 var __gaTracker = function () { 153 var len = arguments.length; 154 if (len === 0) { 155 return; 156 } 157 var f = arguments[len - 1]; 158 if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') { 159 if ('send' === arguments[0]) { 160 var hitConverted, hitObject = false, action; 161 if ('event' === arguments[1]) { 162 if ('undefined' !== typeof arguments[3]) { 163 hitObject = { 164 'eventAction': arguments[3], 165 'eventCategory': arguments[2], 166 'eventLabel': arguments[4], 167 'value': arguments[5] ? arguments[5] : 1, 168 } 169 } 170 } 171 if ('pageview' === arguments[1]) { 172 if ('undefined' !== typeof arguments[2]) { 173 hitObject = { 174 'eventAction': 'page_view', 175 'page_path': arguments[2], 176 } 177 } 178 } 179 if (typeof arguments[2] === 'object') { 180 hitObject = arguments[2]; 181 } 182 if (typeof arguments[5] === 'object') { 183 Object.assign(hitObject, arguments[5]); 184 } 185 if ('undefined' !== typeof arguments[1].hitType) { 186 hitObject = arguments[1]; 187 if ('pageview' === hitObject.hitType) { 188 hitObject.eventAction = 'page_view'; 189 } 190 } 191 if (hitObject) { 192 action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction;
193 hitConverted = mapArgs(hitObject); 194 __gtagTracker('event', action, hitConverted); 195 } 196 } 197 return; 198 } 199 200 function mapArgs(args) { 201 var arg, hit = {}; 202 var gaMap = { 203 'eventCategory': 'event_category', 204 'eventAction': 'event_action', 205 'eventLabel': 'event_label', 206 'eventValue': 'event_value', 207 'nonInteraction': 'non_interaction', 208 'timingCategory': 'event_category', 209 'timingVar': 'name', 210 'timingValue': 'value', 211 'timingLabel': 'event_label', 212 'page': 'page_path', 213 'location': 'page_location', 214 'title': 'page_title', 215 'referrer' : 'page_referrer', 216 }; 217 for (arg in args) { 218 if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) { 219 hit[gaMap[arg]] = args[arg]; 220 } else { 221 hit[arg] = args[arg]; 222 } 223 } 224 return hit; 225 } 226 227 try { 228 f.hitCallback(); 229 } catch (ex) { 230 } 231 }; 232 __gaTracker.create = newtracker; 233 __gaTracker.getByName = newtracker; 234 __gaTracker.getAll = function () { 235 return []; 236 }; 237 __gaTracker.remove = noopfn; 238 __gaTracker.loaded = true; 239 window['__gaTracker'] = __gaTracker; 240 })(); 241 } else { 242 console.log(""); 243 (function () { 244 function __gtagTracker() { 245 return null; 246 } 247 248 window['__gtagTracker'] = __gtagTracker; 249 window['gtag'] = __gtagTracker; 250 })(); 251 } 252 </script>
252 253 <!-- / Google Analytics by MonsterInsights --> 254
254<script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> 255 window.MonsterInsightsDualTracker.helpers.mapProductItem = function (uaItem) { 256 var prefixIndex, prefixKey, mapIndex; 257 258 var toBePrefixed = ['id', 'name', 'list_name', 'brand', 'category', 'variant']; 259 260 var item = {}; 261 262 var fieldMap = { 263 'price': 'price', 264 'list_position': 'index', 265 'quantity': 'quantity', 266 'position': 'index', 267 }; 268 269 for (mapIndex in fieldMap) { 270 if (uaItem.hasOwnProperty(mapIndex)) { 271 item[fieldMap[mapIndex]] = uaItem[mapIndex]; 272 } 273 } 274 275 for (prefixIndex = 0; prefixIndex < toBePrefixed.length; prefixIndex++) { 276 prefixKey = toBePrefixed[prefixIndex]; 277 if (typeof uaItem[prefixKey] !== 'undefined') { 278 item['item_' + prefixKey] = uaItem[prefixKey]; 279 } 280 } 281 282 return item; 283 }; 284 285 MonsterInsightsDualTracker.trackers['view_item_list'] = function (parameters) { 286 var items = parameters.items; 287 var listName, itemIndex, item, itemListName; 288 var lists = { 289 '_': {items: [], 'send_to': monsterinsights_frontend.v4_id}, 290 }; 291 292 for (itemIndex = 0; itemIndex < items.length; itemIndex++) { 293 item = MonsterInsightsDualTracker.helpers.mapProductItem(items[itemIndex]); 294 295 if (typeof item['item_list_name'] === 'undefined') { 296 lists['_'].items.push(item); 297 } else { 298 itemListName = item['item_list_name']; 299 if (typeof lists[itemListName] === 'undefined') { 300 lists[itemListName] = { 301 'items': [], 302 'item_list_name': itemListName, 303 'send_to': monsterinsights_frontend.v4_id, 304 }; 305 } 306 307 lists[itemListName].items.push(item); 308 } 309 } 310 311 for (listName in lists) { 312 __gtagDataLayer('event', 'view_item_list', lists[listName]); 313 } 314 }; 315 316 MonsterInsightsDualTracker.trackers['select_content'] = function (parameters) { 317 const items = parameters.items.map(MonsterInsightsDualTracker.helpers.mapProductItem); 318 __gtagDataLayer('event', 'select_item', {items: items, send_to: parameters.send_to}); 319 }; 320 321 MonsterInsightsDualTracker.trackers['view_item'] = function (parameters) { 322 const items = parameters.items.map(MonsterInsightsDualTracker.helpers.mapProductItem); 323 __gtagDataLayer('event', 'view_item', {items: items, send_to: parameters.send_to}); 324 }; 325 </script>
325 326
326<script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> 327 if (window.hasOwnProperty('MonsterInsightsDualTracker')){ 328 window.MonsterInsightsDualTracker.trackers['form:impression'] = function (parameters) { 329 __gtagDataLayer('event', 'form_impression', { 330 form_id: parameters.event_label, 331 content_type: 'form', 332 non_interaction: true, 333 send_to: parameters.send_to, 334 }); 335 }; 336 337 window.MonsterInsightsDualTracker.trackers['form:conversion'] = function (parameters) { 338 __gtagDataLayer('event', 'generate_lead', { 339 form_id: parameters.event_label, 340 send_to: parameters.send_to, 341 }); 342 }; 343 } 344 </script>
344 345
345<script type="text/javascript"> 346/* <![CDATA[ */ 347window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/thesweetsetup.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.9"}}; 348/*! This file is auto-generated */ 349!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); 350/* ]]> */ 351</script>
351 352<!-- WP Fusion --><style type="text/css">.woocommerce .product .variations option:disabled { display: none; } </style><link rel='stylesheet' id='wc-blocks-integration-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce-subscriptions/vendor/woocommerce/subscriptions-core/build/index.css?ver=7.2.0' type='text/css' media='all' /> 353<style id='wp-emoji-styles-inline-css' type='text/css'> 354 355 img.wp-smiley, img.emoji { 356 display: inline !important; 357 border: none !important; 358 box-shadow: none !important; 359 height: 1em !important; 360 width: 1em !important; 361 margin: 0 0.07em !important; 362 vertical-align: -0.1em !important; 363 background: none !important; 364 padding: 0 !important; 365 } 366</style> 367<link rel='stylesheet' id='wp-block-library-css' href='https://thesweetsetup.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.9' type='text/css' media='all' /> 368<link rel='stylesheet' id='wc-memberships-blocks-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce-memberships/assets/css/blocks/wc-memberships-blocks.min.css?ver=1.26.5' type='text/css' media='all' /> 369<style id='classic-theme-styles-inline-css' type='text/css'> 370/*! This file is auto-generated */ 371.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 372</style> 373<style id='global-styles-inline-css' type='text/css'> 374:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
374--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--inter: "Inter", sans-serif;--wp--preset--font-family--cardo: Cardo;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
374.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 375:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 376:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 377:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 378</style> 379<link rel='stylesheet' id='wpdm-font-awesome-css' href='https://thesweetsetup.com/wp-content/plugins/download-manager/assets/fontawesome/css/all.min.css?ver=6.6.9' type='text/css' media='all' /> 380<link rel='stylesheet' id='wpdm-frontend-css-css' href='https://thesweetsetup.com/wp-content/plugins/download-manager/assets/bootstrap/css/bootstrap.min.css?ver=6.6.9' type='text/css' media='all' /> 381<link rel='stylesheet' id='wpdm-front-css' href='https://thesweetsetup.com/wp-content/plugins/download-manager/assets/css/front.css?ver=6.6.9' type='text/css' media='all' /> 382<link rel='stylesheet' id='woocommerce-layout-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/css/woocommerce-layout.css?ver=9.3.6' type='text/css' media='all' /> 383<link rel='stylesheet' id='woocommerce-smallscreen-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/css/woocommerce-smallscreen.css?ver=9.3.6' type='text/css' media='only screen and (max-width: 768px)' /> 384<link rel='stylesheet' id='woocommerce-general-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/css/woocommerce.css?ver=9.3.6' type='text/css' media='all' /> 385<style id='woocommerce-inline-inline-css' type='text/css'> 386.woocommerce form .form-row .required { visibility: visible; } 387</style> 388<link rel='stylesheet' id='ppress-frontend-css' href='https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/css/frontend.min.css?ver=4.15.17' type='text/css' media='all' /> 389<link rel='stylesheet' id='ppress-flatpickr-css' href='https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/flatpickr/flatpickr.min.css?ver=4.15.17' type='text/css' media='all' /> 390<link rel='stylesheet' id='ppress-select2-css' href='https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/select2/select2.min.css?ver=6.6.9' type='text/css' media='all' /> 391<link rel='stylesheet' id='affwp-forms-css' href='https://thesweetsetup.com/wp-content/plugins/affiliate-wp/assets/css/forms.min.css?ver=2.27.2' type='text/css' media='all' /> 392<link rel='stylesheet' id='wc-memberships-frontend-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce-memberships/assets/css/frontend/wc-memberships-frontend.min.css?ver=1.26.5' type='text/css' media='all' /> 393<link rel='stylesheet' id='the-sweet-setup-type-css' href='//cloud.typography.com/764494/665462/css/fonts.css?ver=6.6.9' type='text/css' media='all' /> 394<link rel='stylesheet' id='the-sweet-setup-css' href='https://thesweetsetup.com/wp-content/themes/thesweetsetup/style.css?ver=1.0.14' type='text/css' media='all' /> 395<link rel='stylesheet' id='ss-social-circle-css' href='https://thesweetsetup.com/wp-content/themes/thesweetsetup/webfonts/ss-social-circle.css?ver=1.0.14' type='text/css' media='all' /> 396<link rel='stylesheet' id='ss-symbolicons-block-css' href='https://thesweetsetup.com/wp-content/themes/thesweetsetup/webfonts/ss-symbolicons-block.css?ver=1.0.14' type='text/css' media='all' /> 397<link rel='stylesheet' id='wc-pb-checkout-blocks-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce-product-bundles/assets/css/frontend/checkout-blocks.css?ver=7.1.2' type='text/css' media='all' /> 398<link rel='stylesheet' id='wc-bundle-style-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce-product-bundles/assets/css/frontend/woocommerce.css?ver=7.1.2' type='text/css' media='all' />
399<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/google-analytics-premium/assets/js/frontend-gtag.min.js?ver=11.3.0" id="monsterinsights-frontend-script-js" async="async" data-wp-strategy="async"></script>
vendor: 1 bytes, line 399
399
400<script data-cfasync="false" data-wpfc-render="false" type="text/javascript" id='monsterinsights-frontend-script-js-extra'>/* <![CDATA[ */ 401var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[]","home_url":"https:\/\/thesweetsetup.com","hash_tracking":"false","v4_id":"G-D46WD7FFRZ"};/* ]]> */ 402</script>
vendor: 1 bytes, line 402
402
403<script type="text/javascript" src="https://thesweetsetup.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 403
403
404<script type="text/javascript" src="https://thesweetsetup.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 404
404
405<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/download-manager/assets/bootstrap/js/popper.min.js?ver=6.6.9" id="wpdm-poper-js"></script>
vendor: 1 bytes, line 405
405
406<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/download-manager/assets/bootstrap/js/bootstrap.min.js?ver=6.6.9" id="wpdm-frontend-js-js"></script>
vendor: 1 bytes, line 406
406
407<script type="text/javascript" id="wpdm-frontjs-js-extra"> 408/* <![CDATA[ */ 409var wpdm_url = {"home":"https:\/\/thesweetsetup.com\/","site":"https:\/\/thesweetsetup.com\/","ajax":"https:\/\/thesweetsetup.com\/wp-admin\/admin-ajax.php"}; 410var wpdm_js = {"spinner":"<i class=\"fas fa-sun fa-spin\"><\/i>","client_id":"e7679d3e292483ba2d7c5b0596f07462"}; 411var wpdm_strings = {"pass_var":"Password Verified!","pass_var_q":"Please click following button to start download.","start_dl":"Start Download"}; 412/* ]]> */ 413</script>
vendor: 1 bytes, line 413
413
414<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/download-manager/assets/js/front.js?ver=3.3.02" id="wpdm-frontjs-js"></script>
vendor: 1 bytes, line 414
414
415<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.9.3.6" id="jquery-blockui-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 415
415
416<script type="text/javascript" id="wc-add-to-cart-js-extra"> 417/* <![CDATA[ */ 418var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/thesweetsetup.com\/cart\/","is_cart":"","cart_redirect_after_add":"no"}; 419/* ]]> */ 420</script>
vendor: 1 bytes, line 420
420
421<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=9.3.6" id="wc-add-to-cart-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 421
421
422<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.9.3.6" id="js-cookie-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 422
422
423<script type="text/javascript" id="woocommerce-js-extra"> 424/* <![CDATA[ */ 425var woocommerce_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"}; 426/* ]]> */ 427</script>
vendor: 1 bytes, line 427
427
428<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=9.3.6" id="woocommerce-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 428
428
429<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/flatpickr/flatpickr.min.js?ver=4.15.17" id="ppress-flatpickr-js"></script>
vendor: 1 bytes, line 429
429
430<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/select2/select2.min.js?ver=4.15.17" id="ppress-select2-js"></script>
vendor: 1 bytes, line 430
430
431<script type="text/javascript" id="jquery-cookie-js-extra"> 432/* <![CDATA[ */ 433var affwp_scripts = {"ajaxurl":"https:\/\/thesweetsetup.com\/wp-admin\/admin-ajax.php"}; 434/* ]]> */ 435</script>
vendor: 1 bytes, line 435
435
436<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js?ver=1.4.1-wc.9.3.6" id="jquery-cookie-js" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 436
436
437<script type="text/javascript" id="affwp-tracking-js-extra"> 438/* <![CDATA[ */ 439var affwp_debug_vars = {"integrations":{"woocommerce":"WooCommerce"},"version":"2.27.2","currency":"USD","ref_cookie":"affwp_ref","visit_cookie":"affwp_ref_visit_id","campaign_cookie":"affwp_campaign"}; 440/* ]]> */ 441</script>
vendor: 1 bytes, line 441
441
442<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/affiliate-wp/assets/js/tracking.min.js?ver=2.27.2" id="affwp-tracking-js"></script>
vendor: 1 bytes, line 442
442
443<script type="text/javascript" src="https://thesweetsetup.com/wp-content/themes/thesweetsetup/theme-scripts.js?ver=6.6.9" id="tss-theme-scripts-js"></script>
443 444
444<script> 445 window.wc_ga_pro = {}; 446 447 window.wc_ga_pro.ajax_url = 'https://thesweetsetup.com/wp-admin/admin-ajax.php'; 448 449 window.wc_ga_pro.available_gateways = {"stripe":"3. Secure Checkout"}; 450 451 // interpolate json by replacing placeholders with variables (only used by UA tracking) 452 window.wc_ga_pro.interpolate_json = function( object, variables ) { 453 454 if ( ! variables ) { 455 return object; 456 } 457 458 let j = JSON.stringify( object ); 459 460 for ( let k in variables ) { 461 j = j.split( '{$' + k + '}' ).join( variables[ k ] ); 462 } 463 464 return JSON.parse( j ); 465 }; 466 467 // return the title for a payment gateway 468 window.wc_ga_pro.get_payment_method_title = function( payment_method ) { 469 return window.wc_ga_pro.available_gateways[ payment_method ] || payment_method; 470 }; 471 472 // check if an email is valid 473 window.wc_ga_pro.is_valid_email = function( email ) { 474 return /[^\s@]+@[^\s@]+\.[^\s@]+/.test( email ); 475 }; 476 </script>
476 477 <!-- Google tag (gtag.js) --> 478
478<script async src='https://www.googletagmanager.com/gtag/js?id=G-6W9ES5KL64&l=dataLayer'></script>
478 479
479<script > 480 481
vendor: 149 bytes, lines 481-489
481window.dataLayer = window.dataLayer || []; 482 483 function gtag() { 484 dataLayer.push(arguments); 485 } 486 487 gtag('js', new Date()); 488 489 gtag('config', '
489G-6W9ES5KL64
vendor: 37 bytes, lines 489-491
489', {"cookie_domain":"auto"}); 490 491
491gtag('consent', 'default', {"analytics_storage":"denied","ad_storage":"denied","ad_user_data":"denied","ad_personalization":"denied","region":["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IS","IE","IT","LV","LI","LT","LU","MT","NL","NO","PL","PT","RO","SK","SI","ES","SE","GB","CH"]}); 492 493 494 (function() { 495 496 const event = document.createEvent('Event'); 497 498 event.initEvent( 'wc_google_analytics_pro_gtag_loaded', true, true ); 499 500 document.dispatchEvent( event ); 501 })(); 502 </script>
502 503 <link rel="https://api.w.org/" href="https://thesweetsetup.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://thesweetsetup.com/xmlrpc.php?rsd" /> 504<meta name="generator" content="WordPress 6.6.9" /> 505<meta name="generator" content="WooCommerce 9.3.6" /> 506<link rel='shortlink' href='https://thesweetsetup.com/?p=8256' /> 507<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://thesweetsetup.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthesweetsetup.com%2Fapps%2Fbest-habit-tracking-app-ios%2F" /> 508<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://thesweetsetup.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fthesweetsetup.com%2Fapps%2Fbest-habit-tracking-app-ios%2F&format=xml" /> 509
509<script type="text/javascript"> 510 var AFFWP = AFFWP || {}; 511 AFFWP.referral_var = 'ref'; 512 AFFWP.expiration = 30; 513 AFFWP.debug = 0; 514 515 516 AFFWP.referral_credit_last = 1; 517 </script>
517 518<link rel="stylesheet" type="text/css" href="https://cloud.typography.com/764494/665462/css/fonts.css" /> 519 <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript> 520 521<!-- Meta Pixel Code -->
522<script type='text/javascript'> 523!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 524n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 525n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 526t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 527document,'script','https://connect.facebook.net/en_US/fbevents.js?v=next'); 528</script>
528 529<!-- End Meta Pixel Code --> 530 531
531<script type='text/javascript'> 532 var url = window.location.origin + '?ob=open-bridge'; 533 fbq('set', 'openbridge', '1547247442291447', url); 534 </script>
534 535
535<script type='text/javascript'>fbq('init', '1547247442291447', {}, { 536 "agent": "wordpress-6.6.9-4.0.1" 537})</script>
537<script type='text/javascript'> 538 fbq('track', 'PageView', []); 539 </script>
539 540<!-- Meta Pixel Code --> 541<noscript> 542<img height="1" width="1" style="display:none" alt="fbpx" 543src="https://www.facebook.com/tr?id=1547247442291447&ev=PageView&noscript=1" /> 544</noscript> 545<!-- End Meta Pixel Code --> 546
546<script type="text/javascript"> 547 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 548 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 549 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 550 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 551 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 552 </script>
552 553 <!-- WooCommerce Facebook Integration Begin --> 554
554<script type="text/javascript"> 555 556 fbq('init', '1547247442291447', {}, { 557 "agent": "woocommerce-9.3.6-3.2.10" 558}); 559 560 fbq( 'track', 'PageView', { 561 "source": "woocommerce", 562 "version": "9.3.6", 563 "pluginVersion": "3.2.10" 564} ); 565 566 document.addEventListener( 'DOMContentLoaded', function() { 567 // Insert placeholder for events injected when a product is added to the cart through AJAX. 568 document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' ); 569 }, false ); 570 571 </script>
571 572 <!-- WooCommerce Facebook Integration End --> 573 574 <!-- MonsterInsights Form Tracking --> 575
575<script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> 576 function monsterinsights_forms_record_impression(event) { 577 monsterinsights_add_bloom_forms_ids(); 578 var monsterinsights_forms = document.getElementsByTagName("form"); 579 var monsterinsights_forms_i; 580 for (monsterinsights_forms_i = 0; monsterinsights_forms_i < monsterinsights_forms.length; monsterinsights_forms_i++) { 581 var monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute("id"); 582 var skip_conversion = false; 583 /* Check to see if it's contact form 7 if the id isn't set */ 584 if (!monsterinsights_form_id) { 585 monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].parentElement.getAttribute("id"); 586 if (monsterinsights_form_id && monsterinsights_form_id.lastIndexOf('wpcf7-f', 0) === 0) { 587 /* If so, let's grab that and set it to be the form's ID*/ 588 var tokens = monsterinsights_form_id.split('-').slice(0, 2); 589 var result = tokens.join('-'); 590 monsterinsights_forms[monsterinsights_forms_i].setAttribute("id", result);/* Now we can do just what we did above */ 591 monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute("id"); 592 } else { 593 monsterinsights_form_id = false; 594 } 595 } 596 597 /* Check if it's Ninja Forms & id isn't set. */ 598 if (!monsterinsights_form_id && monsterinsights_forms[monsterinsights_forms_i].parentElement.className.indexOf('nf-form-layout') >= 0) { 599 monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].parentElement.parentElement.parentElement.getAttribute('id'); 600 if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('nf-form-', 0)) { 601 /* If so, let's grab that and set it to be the form's ID*/ 602 tokens = monsterinsights_form_id.split('-').slice(0, 3); 603 result = tokens.join('-'); 604 monsterinsights_forms[monsterinsights_forms_i].setAttribute('id', result); 605 /* Now we can do just what we did above */ 606 monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute('id'); 607 skip_conversion = true; 608 } 609 } 610 611 if (monsterinsights_form_id && monsterinsights_form_id !== 'commentform' && monsterinsights_form_id !== 'adminbar-search' && monsterinsights_form_id !== 'goog-gt-votingForm') { 612 __gtagTracker('event', 'impression', { 613 event_category: 'form', 614 event_label: monsterinsights_form_id, 615 value: 1, 616 non_interaction: true 617 }); 618 619 /* If a WPForms Form, we can use custom tracking */ 620 if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('wpforms-form-', 0)) { 621 continue; 622 } 623 624 /* Formiddable Forms, use custom tracking */ 625 if (monsterinsights_forms_has_class(monsterinsights_forms[monsterinsights_forms_i], 'frm-show-form')) { 626 continue; 627 } 628 629 /* If a Gravity Form, we can use custom tracking */ 630 if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('gform_', 0)) { 631 continue; 632 } 633 634 /* If Ninja forms, we use custom conversion tracking */ 635 if (skip_conversion) { 636 continue; 637 } 638 639 var custom_conversion_mi_forms = false; 640 if (custom_conversion_mi_forms) { 641 continue; 642 } 643 644 if (window.jQuery) { 645 (function (form_id) { 646 jQuery(document).ready(function () { 647 jQuery('#' + form_id).on('submit', monsterinsights_forms_record_conversion); 648 }); 649 })(monsterinsights_form_id); 650 } else { 651 var __gaFormsTrackerWindow = window; 652 if (__gaFormsTrackerWindow.addEventListener) { 653 document.getElementById(monsterinsights_form_id).addEventListener("submit", monsterinsights_forms_record_conversion, false); 654 } else { 655 if (__gaFormsTrackerWindow.attachEvent) { 656 document.getElementById(monsterinsights_form_id).attachEvent("onsubmit", monsterinsights_forms_record_conversion); 657 } 658 } 659 } 660 661 } else { 662 continue; 663 } 664 } 665 } 666 667 function monsterinsights_forms_has_class(element, className) { 668 return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; 669 } 670 671 function monsterinsights_forms_record_conversion(event) { 672 var monsterinsights_form_conversion_id = event.target.id; 673 var monsterinsights_form_action = event.target.getAttribute("miforms-action"); 674 if (monsterinsights_form_conversion_id && !monsterinsights_form_action) { 675 document.getElementById(monsterinsights_form_conversion_id).setAttribute("miforms-action", "submitted"); 676 __gtagTracker('event', 'conversion', { 677 event_category: 'form', 678 event_label: monsterinsights_form_conversion_id, 679 value: 1, 680 }); 681 } 682 } 683 684 /* Attach the events to all clicks in the document after page and GA has loaded */ 685 function monsterinsights_forms_load() { 686 if (typeof (__gtagTracker) !== 'undefined' && __gtagTracker) { 687 var __gtagFormsTrackerWindow = window; 688 if (__gtagFormsTrackerWindow.addEventListener) { 689 __gtagFormsTrackerWindow.addEventListener("load", monsterinsights_forms_record_impression, false); 690 } else { 691 if (__gtagFormsTrackerWindow.attachEvent) { 692 __gtagFormsTrackerWindow.attachEvent("onload", monsterinsights_forms_record_impression); 693 } 694 } 695 } else { 696 setTimeout(monsterinsights_forms_load, 200); 697 } 698 } 699 700 /* Custom Ninja Forms impression tracking */ 701 if (window.jQuery) { 702 jQuery(document).on('nfFormReady', function (e, layoutView) { 703 var label = layoutView.el; 704 label = label.substring(1, label.length); 705 label = label.split('-').slice(0, 3).join('-'); 706 __gtagTracker('event', 'impression', { 707 event_category: 'form', 708 event_label: label, 709 value: 1, 710 non_interaction: true 711 }); 712 }); 713 } 714 715 /* Custom Bloom Form tracker */ 716 function monsterinsights_add_bloom_forms_ids() { 717 var bloom_forms = document.querySelectorAll('.et_bloom_form_content form'); 718 if (bloom_forms.length > 0) { 719 for (var i = 0; i < bloom_forms.length; i++) { 720 if ('' === bloom_forms[i].id) { 721 var form_parent_root = monsterinsights_find_parent_with_class(bloom_forms[i], 'et_bloom_optin'); 722 if (form_parent_root) { 723 var classes = form_parent_root.className.split(' '); 724 for (var j = 0; j < classes.length; ++j) { 725 if (0 === classes[j].indexOf('et_bloom_optin')) { 726 bloom_forms[i].id = classes[j]; 727 } 728 } 729 } 730 } 731 } 732 } 733 } 734 735 function monsterinsights_find_parent_with_class(element, className) { 736 if (element.parentNode && '' !== className) { 737 if (element.parentNode.className.indexOf(className) >= 0) { 738 return element.parentNode; 739 } else { 740 return monsterinsights_find_parent_with_class(element.parentNode, className); 741 } 742 } 743 return false;
744 } 745 746 monsterinsights_forms_load(); 747 </script>
747 748 <!-- End MonsterInsights Form Tracking --> 749 750
750<script> 751 var head = document.head; 752 var script = document.createElement("script"); 753 script.type = "text/javascript"; 754 script.src = "https://216426.t.hyros.com/v1/lst/universal-script?ph=ad2317e5cc8b9a82decfc259b915ceacb9521b706b0f2e0826e9167671ef50df&tag=!clicked&ref_url=" + encodeURI(document.URL); 755 head.appendChild(script); 756 </script>
756 757 <style id='wp-fonts-local' type='text/css'> 758@font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} 759@font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/fonts/cardo_normal_400.woff2') format('woff2');} 760</style> 761<meta name="generator" content="WordPress Download Manager 3.3.02" /> 762 <style> 763 /* WPDM Link Template Styles */ </style> 764 <style> 765 766 :root { 767 --color-primary: #4a8eff; 768 --color-primary-rgb: 74, 142, 255; 769 --color-primary-hover: #4a8eff; 770 --color-primary-active: #4a8eff; 771 --color-secondary: #6c757d; 772 --color-secondary-rgb: 108, 117, 125; 773 --color-secondary-hover: #6c757d; 774 --color-secondary-active: #6c757d; 775 --color-success: #18ce0f; 776 --color-success-rgb: 24, 206, 15; 777 --color-success-hover: #18ce0f; 778 --color-success-active: #18ce0f; 779 --color-info: #2CA8FF; 780 --color-info-rgb: 44, 168, 255; 781 --color-info-hover: #2CA8FF; 782 --color-info-active: #2CA8FF; 783 --color-warning: #FFB236; 784 --color-warning-rgb: 255, 178, 54; 785 --color-warning-hover: #FFB236; 786 --color-warning-active: #FFB236; 787 --color-danger: #ff5062; 788 --color-danger-rgb: 255, 80, 98; 789 --color-danger-hover: #ff5062; 790 --color-danger-active: #ff5062; 791 --color-green: #30b570; 792 --color-blue: #0073ff; 793 --color-purple: #8557D3;
794 --color-red: #ff5062; 795 --color-muted: rgba(69, 89, 122, 0.6); 796 --wpdm-font: "Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 797 } 798 799 .wpdm-download-link.btn.btn-link { 800 border-radius: 4px; 801 } 802 803 804 </style> 805 806 <!-- Google Tag Manager - thesweetsetup.com container -->
807<script>
vendor: 327 bytes, lines 807-811
807(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 808new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 809j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 810'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 811})(window,document,'script','dataLayer','
811GTM-PS7L89F
vendor: 3 bytes, line 811
811');
811</script>
811 812<!-- End Google Tag Manager --> 813 814</head> 815 816 817 818<body id="review-page" class="app-template-default single single-app postid-8256 theme-thesweetsetup woocommerce-no-js"> 819 820<!-- Google Tag Manager (noscript) -->
vendor: 67 bytes, line 820
820<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
820GTM-PS7L89F
vendor: 81 bytes, line 820
820"height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
820<!-- End Google Tag Manager (noscript) --> 821 822 823<!-- Focus Quiz Hellobar 824 <div id="hellobar"> 825 <p><strong>ð FREE FOCUS ASSESSMENT</strong><span class="mobile">: All-New </span> → <a target="_blank" class="hello_button" href="https://thefocuscourse.com/quiz/?utm_source=thesweetsetup&utm_medium=tss_banner&utm_campaign=tss_hello_bar">Get Started!</a></p> 826 </div> 827--> 828 829<!-- 830<div id="hellobar"> // Ulysses hellobar 831<p><strong>Capture Your Ideas</strong><span class="mobile">: Learn Ulysses </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/ulysses/?ref=46">Brand New Course!</a></p> 832</div> --> 833 834 835<!-- Calm Inbox Hellobar 836<div id="hellobar"> 837<p><strong>ð NEW: Calm Inbox<span class="mobile">: Less Email, More Focus </span> → </strong><a target="_blank" class="hello_button" href="https://thesweetsetup.com/calm/?ref=46">Get Access</a></p> 838</div> 839--> 840 841 842<!-- Planner Hellobar 843<div id="hellobar"> 844<p><strong>ð NEW: 2023 Digital Planner</strong><span class="mobile">: Made for iPad </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/planner/?ref=46">Yes, Please!</a></p> 845</div> 846 847 --> 848 849<!-- Lead Magnet: All the Things workshop and template Hellobar --> 850<div id="hellobar"> 851 <p><strong>FREE! Plan Your Ideal Week</strong><span class="mobile">: Bonus Workshop + Planner </span> → <a class="hello_button" data-rm-show="wdg_yb0sir9h" >Get the Workshop</a></p> 852 </div> 853 854 855<!-- All the Things Hellobar 856<div id="hellobar"> 857<p><strong>NEW! All the Things</strong><span class="mobile">: Productivity Course </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/things/?ref=46">Check it Out</a></p> 858</div> 859--> 860 861<!-- Productivity Workshop 862<div id="hellobar"> 863 <p><strong>Productivity Workshop</strong><span class="mobile">: The 4-Part Flywheel </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/productivity-power-hour/?ref=46">GET ACCESS!</a></p> 864</div> 865--> 866 867<!-- Complete Bundle 868 <div id="hellobar"> 869 <p><strong>Bundle Up and Save</strong><span class="mobile">: 25% discount on all app courses </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/bundle/?ref=46">Learn More</a></p> 870 </div> --> 871 872 873<!-- Simplified Time Management 874 <div id="hellobar"> 875 <p><strong>Simplify Your Time Management</strong><span class="mobile">: New Course </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/time/?ref=46">Finally!</a></p> 876 </div> 877 --> 878 879<!-- To Obsidian and Beyond 880 <div id="hellobar"> 881 <p><strong>ð§ To Obsidian and Beyond</strong><span class="mobile">: All-New Course </span> → <a target="_blank" class="hello_button" href="https://thesweetsetup.com/obsidian/?ref=46">GET ACCESS</a></p> 882 </div> 883--> 884 885<div id="header-wrap"> 886 <header id="header"> 887 <a href="https://thesweetsetup.com"><img src="https://thesweetsetup.com/wp-content/themes/thesweetsetup/img/tss_logo.png" alt="The Sweet Setup" id="logo"/></a> 888 <div id="about"> 889 <span><strong><a href="/colophon/">ABOUT</a> <a href="/training/">COURSES</a> <a href="/blog/">BLOG</a></strong></span> 890 891 </div> 892 893 <!-- ### NEW HEADER TEXT, BUT NEEDS THE CSS FOR THE ABOUT DIV TO BE UPDATED SO IT DOESN'T LOOK UGLY ### 894 <span>Productivity and creativity for Apple Power Users.</span> <a href="/blog/">Reviews and workflows</a> published every week. Over 14,000 customers to our <a href="/training/"online courses</a>. 895 896 #### Original Header Text #### 897 <span>We recommend the best apps for your iPhone, iPad, and Mac.</span> Get in-depth training for our most popular app picks. are sorted within <a href="https://thesweetsetup.com">app categories</a>. You can read all <a href="https://thesweetsetup.com/about/">about us</a>, subscribe via <a href="/feed">RSS</a>, or follow us on <a href="https://twitter.com/thesweetsetup">Twitter</a>. 898 --> 899 900 901
902 <a class="tss-dashboard-link" href="https://thesweetsetup.com/my-account">Sign In</a> 903 <nav class="menu-main-menu-container"><ul id="main-nav" class="menu"><li id="menu-item-131604" class="main-nav menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-131604"><a href="#">Categories</a> 904<ul class="sub-menu"> 905 <li id="menu-item-131612" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-131612"><a href="https://thesweetsetup.com/category/mindfulness/" class="ss-compass">Mindfulness</a></li> 906 <li id="menu-item-131611" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-131611"><a href="https://thesweetsetup.com/category/workflows/" class="ss-rulerpencil">Workflows</a></li> 907 <li id="menu-item-131610" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-131610"><a href="https://thesweetsetup.com/category/sweet-setup-interview/" class="ss-ellipsischat">Setups</a></li> 908 <li id="menu-item-131609" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-131609"><a href="https://thesweetsetup.com/category/quick-tip/" class="ss-hammerscrewdriver">Quick Tips</a></li> 909</ul> 910</li> 911</ul></nav> 912 <div id="search-icon"><a class="ss-search" href="#"></a></div> 913 914 <div id="search"> 915 <form action="https://thesweetsetup.com" > 916 <input id="search-input" name="s" value="" maxlength="200" placeholder="Search…"/> 917 <input type="submit" value="Go" style="visibility: hidden;" /> 918 </form> 919 </div><!-- /#search --> 920 921 </header><!-- /#header --> 922</div><!-- /#header-wrap --> 923 924 925<div id="content-wrap"> 926 927<article id="main-content"> 928 929 <div id="article-hero"> 930 <img src="https://thesweetsetup.com/wp-content/uploads/2019/10/Best-Habit-Tracker-Hero.jpg" alt="Streaks" id="appherofull" /> 931 932 933 </div><!-- /#article-hero --> 934 935 <header class="article-header"> 936 937 938 <div class="categories"> 939 <a href="https://thesweetsetup.com/apps/category/home-life/" class="ss-home">Home Life</a> 940 <a href="https://thesweetsetup.com/apps/category/productivity/" class="ss-check">Productivity</a> 941 <a href="https://thesweetsetup.com/apps/category/to-do-reminders/" class="ss-check">To-do & Reminders</a> 942 <a href="https://thesweetsetup.com/platform/ipad/" class="ss-tablet">iPad</a> 943 <a href="https://thesweetsetup.com/platform/iphone/" class="ss-cell">iPhone</a> 944 <a href="https://thesweetsetup.com/platform/mac/" class="ss-desktop">Mac</a> 945 <a href="https://thesweetsetup.com/platform/watch/" class="">Watch</a> 946 </div><!-- /.categories --> 947 948 <h1 class="review-title">The Best Habit Tracking App for iOS</h1> 949 <h2 class="app-name">Streaks</h2> 950 951 952 <!-- article-buttons DIV goes here. If you add it back in, move the php for the $buyText variable and the additional pricing logic back up to this div, and out of the footer pricing table div so that the top buy button can have access to that code first. --> 953 954 955 <br /> 956 <div class="post-date">March 7, 2024</div> 957 <div class="framed">by <a href="https://thesweetsetup.com/author/mikeschmitz/">Mike Schmitz</a></div> 958 959 </header><!-- /#article-header --> 960 961 <div class="article"> 962 <p>The best habit tracking app for iOS (or any platform, for that matter) is <a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss">Streaks</a>. It offers everything you need to create good habits or break bad ones, features a great design that is very customizable, has some useful widgets, integrates directly with the Apple Health app for automatic tracking, and offers great support for Shortcuts. At only $4.99 on the iOS App Store, it's also a bargain. </p> 963<h2 id="habits-the-real-driver-of-productivity">Habits: The Real Driver of Productivity</h2> 964<p>Every year, people set New Year's resolutions. This will be the year they get in shape, pick up yoga, run a marathon, give up junk food, eat more vegetables, etc. </p> 965<p>But without daily habits and routines to support those goals, they are likely unlikely to stick. In fact, research at Scranton University says that 92% of New Yearâs resolutions will fail. In his book <a href="https://www.amazon.com/Atomic-Habits-Proven-Build-Break/dp/0735211299?tag=sweetsetup-20">Atomic Habits</a>, author James Clear tells us why:</p> 966<blockquote> 967<p>You do not rise to the level of your goals. You fall to the level of your systems.</p> 968</blockquote> 969<p>If you really want to achieve a big goal this year, the way to do it is to create a system, or <em>habit</em>, that makes success inevitable. Want to lose weight? Donât chase a goal â make a habit of going to the gym. Want to write a book? Make a habit of writing every day. Build these small actions into your daily routine if you really want to move the needle this year.</p> 970<p>We've got <a href="https://thesweetsetup.com/habits/">a whole course on building better habits</a> if you really want to dive into the mechanics of how they work, but you donât have to know everything before you can start making positive changes in your own life. The secret to behavioral change is <em>consistency.</em> If you can make a habit of doing the right thing and repeat it every day, success becomes inevitable. With the right habits, this can be the year that you join the 8% who actually achieve their goals. </p> 971<p>And the right habit tracker might be just the support you need to make it happen.</p> 972<div class="rm-area-notion-habit-tracker-template"></div> 973
974<h2 id="why-not-just-use-a-to-do-list-">Why Not Just Use a To-Do List?</h2> 975<p>The short answer is that we all have too much to do. And if you're like most people, the list keeps getting longer.</p> 976<p>Emails, Slack messages, phone calls â the list of inputs continues to grow. As it does, we need to make tough choices about what's going to get done and what isn't.</p> 977<p>But that's not the case with habits.</p> 978<p>Your tasks and projects may help you decide what you <em>do</em>, but your habits make you <em>who you are</em>. </p> 979<blockquote> 980<p>People do not decide their futures, they decide their habits, and their habits decide their futures. â FM Alexander</p> 981</blockquote> 982<p>Your task list contains everything you may or may not do, but we view habits as on another level. Tasks and projects are optional, but habits are non-negotiable. The problem is that habits are often important but not urgent, so without being intentional it's easy to let them slip and develop bad habits in their place.</p> 983<p>The truth is that we all have habits and routines already. We all have things we do every day, either by design or by default. The moment you decide to be intentional about choosing your habits is the day you start changing your future. </p> 984<p>And using a habit tracker is a great way to prioritize these little things that add up to big results.</p> 985<h2 id="criteria-for-the-best-habit-tracking-app">Criteria for the Best Habit Tracking App</h2> 986<p>In wading through the hundreds of habit-tracking apps available for iOS, we used the following criteria to select the winner:</p> 987<ul> 988<li><strong>Overall Design & Ease of Use</strong> â The best habit tracker apps are well-designed, providing a user-friendly interface that makes it easy to add habits and track them regularly.</li> 989<li><strong>Reports & Statistics</strong> â The habit tracking app you decide to use should give you easy-to-understand information in the form of stats, graphs, and charts that make it easy track your progress.</li> 990<li><strong>Scheduling & Reminders</strong> â When youâre trying to create new habits, you might need a little help getting started. The best habit-tracker apps allow you to set reminders, making it easier to follow through and take consistent action as the habits become part of your daily routines.</li> 991<li><strong>Shortcuts Support & Automation</strong> â Forgetting to record a habit when you've actually completed it can be frustrating, causing your streak to be reset and undermining your motivation. The best habit trackers allow you to automate this process using Shortcuts.</li> 992<li><strong>Widgets</strong> â Widgets are a great way to view your habit progress without having to open up the app. While adding support for widgets takes time and the feature is relatively new, we feel it's fair to expect at least basic widget support from your habit tracker.</li> 993<li><strong>Update Schedule</strong> â The habit tracking app you use should have a track record of being well-supported to minimize the risk of it suddenly disappearing, forcing you to figure out a new tool (and possibly losing all your data).</li> 994<li><strong>Sync</strong> â Thereâs no shortage of habit apps available for your smartphone, but you should consider how your data will be synced if you want to track your habits from the web or your Mac.</li> 995<li><strong>Cost</strong> â Whatâs a few bucks when compared to the positive impact the right habits in your life will make? But with so many options available, you can afford to be a little picky when it comes to price. </li> 996</ul> 997<h2 id="the-best-habit-tracking-app-streaks">The Best Habit Tracking App: Streaks</h2> 998<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streamshero.jpeg" alt="Streaks hero"></p> 999<p><a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss">Streaks</a> is a great looking app that makes it easy and fun to track your habits, offers a lot of automation-friendly features to help you do so effortlessly, and gives you the data you need to document and measure success on your personal growth journey.</p> 1000<h2 id="design">Design</h2> 1001<p>The first thing you'll notice about Streaks is that it is absolutely beautiful. The design is to
1001p-notch, and there are a <em>ton</em> of options available that all share the same simple interface. I counted 25 different color themes to pick from, and each one has multiple states. Here's an example of the different versions of the default orange theme:</p> 1002<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks1.jpg" alt=""></p> 1003<p>There are also a ton of different home screen icons available that you can pick from to get Streaks looking just the way you like it. I personally like the blue icons on the black background (which I think looks amazing on OLED screens).</p> 1004<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks2.jpg" alt=""></p> 1005<h2 id="how-it-works">How it Works</h2> 1006<p>Streaks is built around a philosophy of creating behavioral change by repeatedly doing the right things (or repeatedly avoiding the wrong things). This âDonât Break the Chainâ strategy is based on a motivational technique that is popularly attributed to comedian Jerry Seinfeld. The story goes that a young comedian once asked Seinfeld after a standup routine how to become great, and Seinfeld told the aspiring comic to get a big wall calendar and put a big red X on the calendar for every day that he wrote new material. Each day that he was able to put another X on the calendar, the longer the chain would become. The longer the chain became, the more motivated he would be to <em>not break the chain</em>. </p> 1007<p>The brilliance in the design of Streaks is in how it reinforces this principle throughout the app, providing motivation to keep your habit streak going with your desired behavior change. Each habit you track in the app shows the number of days in your current streak. To mark a habit as complete, tap and hold the task icon. The circle will animate, you'll hear a sound effect play, and you'll get a little haptic feedback for positive reinforcement.</p> 1008<p>There are 3 different types of tasks you can track in Streaks, giving you all the tools you need for habit formation:</p> 1009<ol> 1010<li><em>Positive Task</em> (habit you want to create, i.e. Take vitamins)</li> 1011<li><em>Negative Task</em> (habit you want to break, i.e. No junk food)</li> 1012<li><em>Timed task</em> (habit you do for a minimum period of time, i.e. 10 minutes of yoga)</li> 1013</ol> 1014<p>Positive tasks are the default, and Streaks uses a small icon next to the task name to denote either a negative or timed task. Timed tasks can also be repeated, so if you want to create a habit of completing four 25-minute pomodoro timers per day, you can set that up as a habit in Streaks. You can also choose if and when you want to receive reminders if incomplete for each habit that you track. </p> 1015<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks3.jpg" alt=""> </p> 1016<p>Each task or habit also has the ability to open a URL through a feature it calls the <em>Action Button</em>. This allows you to open an external URL by tapping the button on top of the task icon in Streaks. Here's an example that shows an action for reading <em>The Sweet Setup</em> blog that opens the URL in Safari:</p> 1017<p>What's really cool about this is that it works with callback URLs as well. So for example, you could go into Ulysses and use the Share Sheet to copy the callback identifier for a specific sheet, then put that in the Action Button for a task like <em>Write my NaNoWriMo novel</em> and tap the button in Streaks to go straight to your novel and start writing.</p> 1018<p>You can track up to 24 habits at a time in Streaks (6 per page x 4 pages that can be toggled by the button in the middle of the bar on the bottom). This is an increase from the previous 12 habit limit, but keeping the limit to 6 habits per page feels like an intentional design choice that helps you focus on the behaviors you want to change. For example, you could use the first page to help build a solid morning routine and the second page to help with your evening routine. Instead of trying to track your entire life, Streaks forces you to identify what parts of your daily routine are important to concentrate on <em>right now</em>. Overall, I think the subtle forced constraints in Streaks are a good thing.</p> 1019<p>Tapping on a habit cycles through a couple of different available views. The first is a view of the current month, with solid dots for the previous days you've completed the habit and a circle to indicate the current day, giving you a visual representation of your progress. The next view shows a couple of progress bars, showing your best streak for the habit so far and a completion percentage during the last week and the last 30 days.</p> 1020<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks4.jpg" alt=""></p> 1021<p>Streaks also lets you see an overall view of all your habit data. Tap the star icon in the lower-right and you'll see a stats overview screen that shows you your best streak, all-time completion percentage, total number of completions, and a couple of charts to show you your habit history. The default view shows you stats for all habits on that page, but you can swipe from right-to-left to see the same data for individual habits as well.</p> 1022<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks5.jpg" alt=""> </p> 1023<h2 id="widgets">Widgets</h2> 1024<p>Widget support has been slow to be implemented overall on iOS, which is a shame. Widgets are a great way to see the progress of your habits without having to open the application itself, and Streaks has by far the best widgets of any habit tracker we looked.</p> 1025<p>Streaks offers four different widget types:</p> 1026<ul> 1027<li><em>App Icon</em>, which shows the streaks app icon with a colored ring showing your current progress. </li> 1028<li><em>Statistics</em>, which shows the stats for a particular habit in a variety of ways.</li> 1029<li><em>Dots</em>, which shows the tasks from a specific page.</li> 1030<li><em>Tasks</em>, which displays up to four tasks.</li> 1031</ul> 1032<p>All the widgets are available in all three sizes except for <em>App icon</em> & <em>Stats</em>, which are only available in small and large (since it's square in shape).</p> 1033<p>They all look fantastic, and there is some <em>really</em> cool stuff you can do with these widgets. The combination of habit progress and statistics makes it possible to build your own habit tracking dashboard, right on your iPhone Home Screen:</p> 1034<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks6.jpg" alt=""></p> 1035<p>The tasks widget is even interactive, allowing you to mark off habits from your Home Screen without having to open the app.</p> 1036<h2 id="making-habit-tracking-easy">Making Habit Tracking Easy</h2> 1037<p>One of the key features in Streaks is the phenomenal automation support that makes tracking your habits a breeze.</p> 1038<p>First is the built-in integration with Apple's Health app. This allows Streaks to look at your Health data and mark tasks as complete when the associated data is recorded. There's even a Health category when you create a new task in Streaks with a bunch of pre-made healthy habits you can choose from:</p> 1039<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks7.jpg" alt=""></p> 1040<p>This allows you to track things like whether you exercised automatically from your Apple Watch, or whether you closed all your rings today. There's a lot of cool stuff you can do here, like tracking your Mindfulness Minutes automatically when in a <a href="https://thesweetsetup.com/apps/the-best-meditation-app-iphone/">meditation app</a>, which can help you achieve a goal of spending a specific amount of time each day being mindful. I even have a habit in Streaks that tracks how much water I drink, which is updated automatically from Apple Health data that is synced automatically from my <a href="https://www.amazon.com/Hidrate-Spark-Steel-Smart-Bottle/dp/B08C1MLMJF/tag=sweetsetup-20">Hidrate Spark Steel water bottle</a> via Bluetooth.</p> 1041<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaks8.jpg" alt=""></p> 1042<p>Another powerful tool is the support for Shortcuts. While most of the other apps we looked at offer basic Shortcut support, Streaks does a great job of integrating with newer automation features available on iOS. This allows you to take action in Streaks whenever an automation is triggered, like opening a specific app or starting a workout on your Ap
1042ple Watch. For example, <a href="https://thesweetsetup.com/automating-habit-tracking-streaks-shortcuts/">I created a Shortcuts automation</a> that marks the task "Read Bible" as complete when I open up the YouVersion Bible app on my iPhone (part of my morning routine).</p> 1043<p>But that's just the tip of the automation iceberg. The Shortcuts support in Streaks goes far deeper than any other habit tracker we've looked at, giving you the ability to do things like select a task at runtime and provide output parameters for workflows. This allows you to do things like create a generic "complete task" shortcut that prompts you to select a task when you run it. You can also return information about the task you just completed. For example, you can create a shortcut that sends a message to a friend with your current streak for that task when you complete it.</p> 1044<h3 id="other-platforms">Other Platforms</h3> 1045<p>In addition to a universal iOS app, Streaks also offers a native Mac app. It's a separate $4.99 one-time purchase through the <a href="https://apps.apple.com/us/app/streaks/id1493327990?mt=12&at=11l7ja&ct=tss">Mac App Store</a>, and runs as a simple menu bar app that shows six dots and indicates your current daily progress by darkening the appropriate dots when the habits are completed. Clicking the menu bar icon opens up the full Streaks app, which looks just like the iOS version and offers full feature parity and iCloud sync between your devices.</p> 1046<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/streaksmac.jpg" alt=""></p> 1047<p>You can certainly get by with just the iOS app â and we prefer to track our habits from our iPhone â but if you want to be able to see your habit data or occasionally mark things off on your Mac, it's great that Streaks gives you that option.</p> 1048<p>Streaks is also great on the Apple Watch, allowing you to easily complete tasks from your wrist. You can even customize the look of the complication for the different watch faces or select which habits you want to show up on the Siri watch face. And if you want to use Streaks on your iPad as well, it is a universal app that allows you to do so on all your Apple devices, and all your data syncs seamlessly between devices via iCloud. At $4.99 in the App Store, this makes Streaks an incredible value.</p> 1049<h2 id="a-great-option-for-nerdy-social-habit-tracking-habitica">A great option for nerdy social habit tracking: Habitica</h2> 1050<p><a href="https://geo.itunes.apple.com/us/app/habitica/id994882113?lmt=8&at=11l7ja&ct=tss">Habitica</a> is a different approach to habit tracking that applies the concept of gamification to creating (or eliminating) habits. Itâs made to feel like you are participating in a classic role-playing game (RPG), and the design will appeal to anyone with an affinity for retro video games. Like all RPGs, the goal is to make your character as powerful as possible. This is done by repeating positive habits and avoiding negative ones.</p> 1051<p><img decoding="async" src="https://thesweetsetup.com/wp-content/uploads/2024/03/habitica.jpg" alt=""></p> 1052<p>The first thing you do when you launch Habitica is create an account and design your character. Like any good RPG, you can control the class of your character as well as customize their physical appearance. Once you have created your character, itâs time to add your habits.</p> 1053<p>Actions in Habitica are broken down into a couple of different categories: <em>Habits</em>, <em>Dailies </em>(tasks scheduled in a known, repeatable fashion)<em>, and To-Dos </em>(tasks that need to be done once or not on a regular schedule)*. Habits can be either positive or negative, with good habits giving you experience, gold, or mana for completing them and bad habits causing you to lose health or mana. Your goal is to complete habits and acquire experience points that will allow you to âLevel Upâ without running out of health points.</p> 1054<p>Habiticaâs RPG-like elements run surprisingly deep. You can even acquire gold and use it to âbuyâ rewards in the app. The app has an 8-bit style which is nostalgic to anyone who grew up playing Zelda on their NES (guilty), but itâs not nearly as pretty as Streaks. Where Habitica really shines though is the social features. Peer pressure is a great accountability tool for positive behavioral change, and Habitica uses this mechanism brilliantly. </p> 1055<p>While you can use/play Habitica solo, it gets really fun when you start collaborating, competing, and holding each other accountable. You can go to the <em>Tavern</em> if you want to chat with other Habitica users, but you can also join up with other players in a <em>Party</em> or a <em>Guild</em>. </p> 1056<p>Parties are groups of users who play Habitica together, support each other, and follow each other's activity. Once you create or join a party, you are able to communicate with other members of your party and embark on challenges where you can fight monsters and earn prizes. Itâs a great way for you to connect with your friends and hold each other accountable for creating good habits. </p> 1057<p>Another community aspect of Habitica is <em>guilds.</em> A guild is a social group within Habitica that allows users to discu
1057ss similar interests and participate in group challenges. Unlike parties, guilds are free to join, and allow you to connect with other like-minded individuals who can help keep your motivation high.</p> 1058<p>Unlike Streaks, Habitica has its roots as a web app. It is available natively on both iOS and Android, but it is also accessible on the web. That means it's not going to integrate as nicely with iOS system features or Shortcuts, but it is going to give you the ability to access it from almost anywhere via a web browser. It is also (mostly) free to use, although you can purchase Gems via an in-app purchase (which allow you to buy costumes for your avatar, backgrounds, and a few other things). There is also a subscription that allows you to buy gems with gold and gives you access to exclusive monthly items, but itâs completely optional. You can use Habitica just fine without the $4.99/month subscription.</p> 1059<h2 id="other-options">Other Options</h2> 1060<p>There are a <em>ton</em> of habit-tracking apps out there for iOS. Here's a list of (most) of the other apps we looked at when writing this review:</p> 1061<ul> 1062<li>Atoms</li> 1063<li>Awesome Habits</li> 1064<li>Daily Planner</li> 1065<li>Daylio</li> 1066<li>Done</li> 1067<li>Everyday</li> 1068<li>Habit</li> 1069<li>Habit List</li> 1070<li>HabitBull</li> 1071<li>Habitify</li> 1072<li>HabitMinder</li> 1073<li>HabitShare</li> 1074<li>HabitTracker</li> 1075<li>Henry</li> 1076<li>Momentum</li> 1077<li>(Not Boring) Habits</li> 1078<li>Productive</li> 1079<li>Routine Flow</li> 1080<li>Routinery</li> 1081<li>Strides</li> 1082<li>Tally</li> 1083<li>Tangerine</li> 1084<li>Today</li> 1085<li>Way of Life</li> 1086</ul> 1087<p>Here's a quick look at some of the more noteworthy options.</p> 1088<h3 id="-not-boring-habits">(Not Boring) Habits</h3> 1089<p><a href="https://www.andy.works/product/habits">(Not Boring) Habits</a> is easily the nicest looking habit tracker we looked at. It has a very unique artistic style that attempts to blend behavioral science with gamification, and the result is a user interface that makes using the app a joy. </p> 1090<p>Fundamentally, (Not Boring) Habits works differently than a lot of other habit trackers because instead of leaning into the streaks concept it attempts to "save your progress." For some, this can be really helpful as broken streaks can cause stress and anxiety. It's a very different type of mechanic that will work extremely well for some people.</p> 1091<p>The widgets are also great, and you can subscribe to the app itself for $14.99/year or get access to all of the other Not Boring apps as well (Vibes, Weather, Calculator, Timer) for $29.99/year.</p> 1092<h3 id="tangerine">Tangerine</h3> 1093<p><a href="https://apps.apple.com/us/app/tangerine/id1468882685">Tangerine</a> is interesting because in addition to helping you build new habits like the rest of the apps we looked at, it is also a mood tracker. Tap the button below the date and you can log how your day went, what contributed, and how you felt about it using a few simple prompts. It's really well done, and adds another dimension to habit tracking that fits really well. Tangerine also has great widget support, with a Cards widget that opens straight to the desired habit when you tap on the appropriate card.</p> 1094<p>The big drawback to Tangerine is that it's expensive ($29.99/year or $4.99/month) for the premium features. It also has a unique visual style that isn't as customizable as Streaks, and lacks the automation features and integrations that Streaks offers. </p> 1095<h3 id="strides">Strides</h3> 1096<p>If youâre looking for something that can do a bit more, <a href="https://geo.itunes.apple.com/us/app/strides-goals-habits-tracker/id672401817?lmt=8&at=11l7ja&ct=tss">Strides</a> may be for you. Strides is a very powerful habit tracking app that allows you to track things four different ways:</p> 1097<ol> 1098<li><em>Habit</em>, which allows you to track good or bad habits by swiping to log yes or no.</li> 1099<li><em>Target</em>, which lets you enter goal values by date and gives you a pace line so you can see if youâre still on track.</li> 1100<li><em>Average</em>, which shows how long you do something (like tracking how long you sleep each night).</li> 1101<li><em>Project</em>, which gives you milestones and percent complete sliders.</li> 1102</ol> 1103<p>Itâs a solid app and you do get quite a bit with the free version, but if youâre just getting started with habit tracking itâs a little too complicated. Strides Plus is available as an in-app purchase for $4.99/month, $29.99/year, and also offers a Lifetime Plan which is $79.99. All of the Strides Plus plans give you an unlimited number of habits, a web app, sync between devices, and a whole lot more.</p> 1104<h3 id="awesome-habits">Awesome Habits</h3> 1105<p><a href="https://www.awesome-habits.com/">Awesome Habits</a> is a well-designed habit tracking app, but the real reason I wanted to call it out here is that it is available on macOS & iOS with a <a href="https://setapp.sjv.io/RqOqX">SetApp</a> subscription. I've subscribed to SetApp and used it for years, and whenever I need an app for something I go to SetApp first to see if they offer something that meets my needs. Most of the time they do, and most of the time that app is pretty darn good.</p> 1106<p>While I haven't spent much time with Awesome Habits, it seems to have all the basic features that we're looking for in a habit tracking app (I particularly like how the graphs look). And if you already pay for SetApp, you should probably give this one a whirl to see if it sticks.</p>
1107<h3 id="fabulous">Fabulous</h3> 1108<p><a href="https://geo.itunes.apple.com/us/app/fabulous-motivate-me/id1203637303?mt=8&at=11l7ja&ct=tss">Fabulous</a> is a gorgeous app that was âincubated in Dukeâs Behavioral Economics lab,â promising to help you create a better you in only 19 days. Based on other research around habit building that says it takes at least 21 days and often more like 66 days to create positive habits, this seems like a bit of an outrageous claim to us. Itâs built around the concept of <em>Journeys</em>, guiding you down a path instead of selecting specific habits you want to create or eliminate. At $49.99/year, itâs also very expensive compared to the other apps we looked at. If you want a personal coach that will tell you what to do, Fabulous may be for you. But if you simply want a great habit tracker, Fabulous isn't it.</p> 1109<h3 id="productive">Productive</h3> 1110<p>At one time <a href="https://productiveapp.io/">Productive</a> was our winner for this app category. It's a well-designed app that gives you everything you need to manage and track habits effectively. Unfortunately, it's gotten really expensive ($79.99/year). We just can't justify recommending this one at that price point when Streaks is so darn good.</p> 1111<p>Interestingly, Productive is owned by a company called Bending Spoons (a name you may recognize from the sale of Evernote).</p> 1112<h3 id="atoms">Atoms</h3> 1113<p>Speaking of expensive apps, Atoms is a new app from James Clear (the author of Atomic Habits) designed to help you implement the Atomic Habits framework and track your habits in the process. The app seems well designed and forces you to craft specific intentions for when and where you are going to do your habits, but costs $16.99/month or $119.99/year after the 28 day trial period is up. That is absolutely absurd for a habit tracking app, and honestly Streaks is much better. We love Atomic Habits, but stay away from this app.</p> 1114<div class="rm-area-notion-habit-tracker-template"></div> 1115 1116<h2 id="conclusion">Conclusion</h2> 1117<p>Thereâs an abundance of riches when it comes to habit tracking apps for iOS, but our favorite is <a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss">Streaks</a>. It gives you powerful features, almost unlimited customization options, and integration with Apple features like the Health app and Shortcuts to automate much of your digital habit tracking. And if you like the idea of gamifying your habits or want something more social, check out <a href="https://geo.itunes.apple.com/us/app/habitica/id994882113?lmt=8&at=11l7ja&ct=tss">Habitica</a>.</p> 1118 </div><!-- /.article --> 1119 1120 <div class="buy-box"> 1121 1122 1123 1124 1125 <div class="app-icon"><a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss"><img src="https://thesweetsetup.com/wp-content/uploads/2019/10/Image.png" alt="Streaks" /></a></div> 1126 <h2 class="app-name"><a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss">Streaks</a></h2> 1127 <div class="price">$4.99</div> 1128 <div class="description">Streaks gives you useful widgets, integration with Apple Health, phenomenal Shortcuts support, and everything you need to build good habits (or break bad ones).</div><!-- /.description --> 1129 1130 <a href="https://geo.itunes.apple.com/us/app/streaks/id963034692?mt=8&at=11l7ja&ct=tss" class="button" >App Store <span class="price">$4.99</span></a> 1131 1132 </div><!-- /.buy-box --> 1133 1134</article><!-- /#main-content --> 1135 1136 1137<aside id="side-bar"> 1138 <div class="follow-us"> 1139 <h3 class="side-title">Follow us <a href="https://twitter.com/thesweetsetup" class="ss-social-circle ss-twitter"></a> <a href="https://thesweetsetup.com/feed" class="ss-social-circle ss-rss"></a></h3> 1140 </div><!-- /.follow-us --> 1141 1142 <div class="newsletter-sidebar"> 1143 <h3 class="side-title"><a href="https://thesweetsetup.com/newsletter/">Get App Picks, Guides, & More</a></h3> 1144 <div class="post-wrap"> 1145 <p class="post-excerpt">Get workflow tips, app recommendations, how-to guides, stories, and more delivered to your inbox. Plus we'll send you our productivity guide for free!</p> 1146 <form action='//blancmedia.activehosted.com/proc.php' method='post' id='_form_126' accept-charset='utf-8' enctype='multipart/form-data'> 1147 <input type='hidden' name='f' value='126'> 1148 <input type='hidden' name='s' value=''> 1149 <input type='hidden' name='c' value='0'> 1150 <input type='hidden' name='m' value='0'> 1151 <input type='hidden' name='act' value='sub'> 1152 <input type='hidden' name='nlbox[]' value='3'> 1153 <p class="email"> 1154 <input class="newsletter" type="email" name="email" required placeholder="Your best email" /> 1155 </p> 1156 <center> 1157 <p class="email"> 1158 <input type="submit" class="submit" value="Sweet!" /> 1159 </p> 1160 </center> 1161 </form> 1162 </div><!-- /.post-wrap --> 1163 </div><!-- /.newsletter --> 1164 1165 1166 <div class="recently"> 1167 <h3 class="side-title">Guides & Courses</h3> 1168 1169 1170 <div class="post-wrap"> 1171 <h4 class="post-title"><a href="https://thesweetsetup.com/time/">NEW: Simple Time Management</a></h4> 1172 <p class="post-excerpt">Get back hours of your life and remove the mess (and stress) from your schedule. <a href="https://thesweetsetup.com/time/">»</a></p> 1173 </div><!-- /.post-wrap --> 1174 1175 <div class="post-wrap"> 1176 <h4 class="post-title"><a href="https://thesweetsetup.com/things/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_att">All the Things</a></h4> 1177 <p class="post-excerpt">Productivity and task management training, plus in-depth video tutorials for Things 3. <a href="https://thesweetsetup.com/things/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_att">»</a></p> 1178 </div><!-- /.post-wrap --> 1179 1180 1181 <div class="post-wrap"> 1182 <h4 class="post-title"><a href="https://thesweetsetup.com/calm/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_calm">Calm Inbox</a></h4> 1183 <p class="post-excerpt">Less email, more focus. <a href="https://thesweetsetup.com/calm/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_calm">»</a></p> 1184 </div><!-- /.post-wrap --> 1185 1186 1187 <div class="post-wrap"> 1188 <h4 class="post-title"><a href="https://thesweetsetup.com/habits/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_habits">Simple Habits</a></h4> 1189 <p class="post-excerpt">Use routines to make your life a little bit more manageable, a little bit easier, and a whole lot better. <a href="https://thesweetsetup.com/habits/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_habits">»</a></p> 1190 </div><!-- /.post-wrap --> 1191 1192 1193 <div class="post-wrap"> 1194 <h4 class="post-title"><a href="https://thesweetsetup.com/mindmaps/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_mindmap">Manage and Develop Your Ideas</a></h4> 1195 <p class="post-excerpt">Improve your creative process, and save time, with a simple system for developing your ideas. Plus in-depth screencasts for MindNode. <a href="https://thesweetsetup.com/mindmaps/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_mindmaps">»</a></p> 1196 </div><!-- /.post-wrap --> 1197 1198 1199 1200 <div class="post-wrap"> 1201 <h4 class="post-title"><a href="https://thesweetsetup.com/goodnotes/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_goodnotes">GoodNotes + Templates</a></h4> 1202 <p class="post-excerpt">Custom productivity templates plus screencast tutorials for GoodNotes on iPad. <a href="https://thesweetsetup.com/goodnotes/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_goodnotes">»</a></p> 1203 </div><!-- /.post-wrap --> 1204 1205 1206 <div class="post-wrap"> 1207 <h4 class="post-title"><a href="https://thesweetsetup.com/dayone/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_dayone">Day One In Depth</a></h4> 1208 <p class="post-excerpt">The most extensive video guide to Day One available today, plus ideas and workflow examples. <a href="https://thesweetsetup.com/dayone/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_dayone">»</a></p> 1209 </div><!-- /.post-wrap --> 1210 1211 <div class="post-wrap"> 1212 <h4 class="post-title"><a href="https://thesweetsetup.com/ulysses/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_lu">Learn Ulysses</a></h4> 1213 <p class="post-excerpt">Organize your writing and capture your ideas with this video course to help you quickly learn Ulysses. <a href="https://thesweetsetup.com/ulysses/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_lu">»</a></p> 1214 </div><!-- /.post-wrap --> 1215 1216 <div class="post-wrap"> 1217 <h4 class="post-title"><a href="https://thesweetsetup.com/photos/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_mp">Mobile Photography</a></h4> 1218 <p class="post-excerpt">Extensive video tutorials and training to take your photos from average to awesome. <a href="https://thesweetsetup.com/photos/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_mp">»</a></p> 1219 </div><!-- /.post-wrap --> 1220 1221 1222 <div class="post-wrap"> 1223 <h4 class="post-title"><a href="https://thesweetsetup.com/1password/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_1p">Unlock 1Password</a></h4> 1224 <p class="post-excerpt">In-depth video tutorials to use 1Password like a pro. <a href="https://thesweetsetup.com/1password/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_1p">»</a></p> 1225 </div><!-- /.post-wrap --> 1226 1227 1228<!-- <div class="post-wrap"> 1229 <h4 class="post-title">
1229<a href="https://thesweetsetup.com/workflow-essentials/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_workflowessentials">Workflow Essentials Bundle</a></h4> 1230 <p class="post-excerpt">Our seven best productivity and workflow guides. <a href="https://thesweetsetup.com/workflow-essentials/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_workflowessentials">»</a></p> 1231 </div> /.post-wrap --> 1232 1233 <div class="post-wrap"> 1234 <h4 class="post-title"><a href="https://thesweetsetup.com/bundle/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_bundle">Bundle up and Save</a></h4> 1235 <p class="post-excerpt">Save 45% ($241 discount) when you get all ten in-depth courses to complete your library. <a href="https://thesweetsetup.com/bundle/?utm_source=training_sidebar_link&utm_medium=sidebar&utm_campaign=sidebar_bundle">»</a></p> 1236 </div><!-- /.post-wrap --> 1237 1238 1239 </div><!-- /.recently --> 1240 1241 1242 <div class="sponsor-wrapper"> 1243 <div class="sponsor"> 1244 <h3 class="side-title"><a href="https://thesweetsetup.com/?page_id=9">Sponsored by</a></h3> 1245 <div class="ad-space"> 1246 <a href=""><img class="ad-img" src="" width="130" height="100" alt=""/></a> 1247 <a href="" class="ad-text"></a> 1248 <a href="https://thesweetsetup.com/?page_id=9" class="advertise-here">Advertise Here</a> 1249 <div class="clear"></div> 1250 </div> 1251 </div><!-- /.sponsor --> 1252 </div> 1253 1254 1255 <!-- 1256 The related articles code is supposed to go here, but it's causing the sidebar not to load right now. 1257 I've saved that code as its own file in the theme folder as the file related.txt 1258 (May 23, 2017 â S.B.) 1259 --> 1260 1261 <div class="author"> 1262 <h3 class="side-title">About the Author</h3> 1263 <h4 class="author-name">Mike Schmitz</h4> 1264 <p class="author-bio">Mike Schmitz is a productivity coach and the creator of <a href="https://faithbasedproductivity.com/">Faith-Based Productivity</a> where he helps individuals connect to their calling, discover their destiny, and live the life they were created for. He also co-hosts the <em>Focused</em> and <em>Bookworm</em> podcasts, produces screencasts for <em>ScreenCastsOnline</em>, and writes for <em>The Sweet Setup</em>. Links to all of Mikeâs projects can be found at <a href="http://mikeschmitz.me/">mikeschmitz.me</a>.</p> 1265 </div> 1266 1267 1268 1269 <div class="recently"> 1270 <h3 class="side-title"><a href="https://thesweetsetup.com/blog/">Our Latest Posts</a></h3> 1271 <div class="post-wrap"> 1272 <h4 class="post-title"><a href="https://thesweetsetup.com/4-flaws-of-a-busy-calendar/">4 flaws of a busy calendar</a></h4> 1273 <p class="post-excerpt">Youâve tried the apps, time-blocking, and a dozen different routines and systems for getting your calendar under control. And you still struggle to dedicate time throughout the week to the most important stuff in your life. And so you might be wondering why The Reset Summit will help, when everything else has failed to move the needle for you. To show you, I want to tell you <strong>why productivity systems fail in the first place.</strong> <a href="https://thesweetsetup.com/4-flaws-of-a-busy-calendar/">»</a></p> 1274 </div><!-- /.post-wrap --> 1275 <div class="post-wrap"> 1276 <h4 class="post-title"><a href="https://thesweetsetup.com/from-chaos-to-calm/">From Chaos to Calm</a></h4> 1277 <p class="post-excerpt">When your schedule is organized, and your tasks are not overwhelming, it creates margin in your life, which means you have time for what is important. And also, you have time for what is awesome and fun! <strong>Margin is one of the most important metrics of health and success in your life.</strong> Margin is a sign of good health. <a href="https://thesweetsetup.com/from-chaos-to-calm/">»</a></p> 1278 </div><!-- /.post-wrap --> 1279 <div class="post-wrap"> 1280 <h4 class="post-title"><a href="https://thesweetsetup.com/now-open-the-reset-summit/">Now Open – The Reset Summit!</a></h4> 1281 <p class="post-excerpt">The Reset Summit is here! <a href="https://thesweetsetup.com/now-open-the-reset-summit/">»</a></p> 1282 </div><!-- /.post-wrap --> 1283 <div class="post-wrap"> 1284 <h4 class="post-title"><a href="https://thesweetsetup.com/did-you-outgrow-your-schedule/">Did you outgrow your schedule?</a></h4> 1285 <p class="post-excerpt">What if youâve outgrown your schedule, but you donât realize it? This is actually pretty normal. (It happens to me, too.) Why? Because life changes throughout the year. <a href="https://thesweetsetup.com/did-you-outgrow-your-schedule/">»</a></p> 1286 </div><!-- /.post-wrap --> 1287 <div class="post-wrap"> 1288 <h4 class="post-title"><a href="https://thesweetsetup.com/how-to-do-hard-things-every-day-may-focus-digest/">How to Do Hard Things Every Day (May Focus Digest)</a></h4> 1289 <p class="post-excerpt">Welcome to May! This monthly digest is for folks who want to create a more ideal schedule, get organized, and stay in control of the things that matter. If you are new to the digest…here's what to look forward to on the first Monday of every month: A short article on a single concept around focus A couple quotes that we've enjoyed thinking on Links to interesting or related articles from our corner of the internet If this sparks any ideas, Iâd love to hear from you! How to do hard things every day (like exercise, writing, deep work, etc.) […] <a href="https://thesweetsetup.com/how-to-do-hard-things-every-day-may-focus-digest/">»</a></p> 1290 </div><!-- /.post-wrap --> 1291 </div><!-- /.recently --> 1292 1293 <!-- 1294 This is where the sidebar code for the Articles, Tips and Tricks section should go. 1295 I took it out because (a) we don't update it ever and (b) I'm wondering if it distracts from the Course listings. 1296 I've saved that code as its own file in the theme folder as the file articls-tips-tricks.txt 1297 (Nov 1, 2018 - S.B.) 1298 --> 1299 1300 <div class="sponsor-full-wrapper"> 1301 <div class="sponsor-full"> 1302 <h3 class="side-title"><a href="https://thesweetsetup.com/?page_id=9">Sponsored by</a></h3> 1303 <a href=""><img class="ad-full" src="" width="300" height="250" alt="Sponsored by"/></a> 1304 </div><!-- /.sponsor --> 1305 </div> 1306 1307 1308</aside><!-- /#side-bar --> 1309 1310<div class="clear"></div> 1311
1312<script type="text/javascript"> 1313 jQuery(document).ready(function($){ 1314 $.getJSON( 'https://thesweetsetup.com?tssad=' + String( Math.random() * Math.random() ).replace('0.',''), function( data ) { 1315 $('.sponsor-wrapper').html(data[0]); 1316 $('.sponsor-full-wrapper').html(data[1]); 1317 }); 1318 }); 1319</script>
1319 1320</div><!-- /#content-wrap --> 1321 1322 1323<footer id="footer"> 1324 <nav id="footer-nav"> 1325 <ul> 1326 <li><a href="/">Home</a></li> 1327 <li><a href="https://thesweetsetup.com/colophon/">About</a></li> 1328 <li><a href="https://thesweetsetup.com/training/">Products</a></li> 1329 <li><a href="https://thesweetsetup.com/contact/">Contact</a></li> 1330 <li><a href="https://thesweetsetup.com/blog/">Blog</a></li> 1331 <!-- <li><a href="https://thesweetsetup.com/accessories/">Accessories</a></li> --> 1332 <li><a href="https://thesweetsetup.com/newsletter/">Newsletter</a></li> 1333 <li class="footer-dashboard"><a class="tss-dashboard-link" href="https://thesweetsetup.com/my-account">Sign In</a></li> 1334 </ul> 1335 </nav><!-- /#footer-nav --> 1336 1337 <div id="copyright"> 1338 <span>A website by <a href="https://shawnblanc.net">Shawn Blanc</a> and friends. See also: <a href="https://thefocuscourse.com">The Focus Course</a> | <a href="http://toolsandtoys.net">Tools & Toys</a></span> 1339 <br /> 1340 © 2026 Blanc Media, LLC 1341 <div id="props"> 1342 <a href="http://inkblotmediagroup.com" target="_blank">Design by Ink Blot Media Group</a> ⢠<a href="http://mondaybynoon.com" target="_blank">Dev by Jonathan Christopher</a> 1343 <br /> 1344 </div> 1345 </div><!-- /#copyright --> 1346 1347 <!-- Google Tag Manager (noscript) thesweetsetup.com container -->
vendor: 68 bytes, lines 1347-1348
1347 1348<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1348GTM-PS7L89F
vendor: 83 bytes, lines 1348-1349
1348" 1349height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1350<!-- End Google Tag Manager (noscript) --> 1351 1352</footer><!-- /#footer --> 1353 1354 <!-- Deadline Funnel -->
1354<script type="text/javascript" data-cfasync="false">function SendUrlToDeadlineFunnel(e){var r,t,c,a,h,n,o,A,i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=0,l=0,s="",u=[];if(!e)return e;do r=e.charCodeAt(d++),t=e.charCodeAt(d++),c=e.charCodeAt(d++),A=r<<16|t<<8|c,a=A>>18&63,h=A>>12&63,n=A>>6&63,o=63&A,u[l++]=i.charAt(a)+i.charAt(h)+i.charAt(n)+i.charAt(o);while(d<e.length);s=u.join("");var C=e.length%3;var decoded = (C?s.slice(0,C-3):s)+"===".slice(C||3);decoded = decoded.replace("+", "-");decoded = decoded.replace("/", "_");return decoded;} var url = SendUrlToDeadlineFunnel(location.href); var parentUrlValue;try {parentUrlValue = window.parent.location.href;} catch(err) {if(err.name === "SecurityError") {parentUrlValue = document.referrer;}}var parentUrl = (parent !== window) ? ("/" + SendUrlToDeadlineFunnel(parentUrlValue)) : "";(function() {var s = document.createElement("script");s.type = "text/javascript";s.async = true;s.setAttribute("data-scriptid", "dfunifiedcode");s.src ="https://a.deadlinefunnel.com/unified/reactunified.bundle.js?userIdHash=eyJpdiI6IldBVVRob0Z5OVN6NHlzeThkMHFORGc9PSIsInZhbHVlIjoidHg2aWZYTGc0anJra1U3TkF4MDVZZz09IiwibWFjIjoiYjc1MjVhZjBkM2I4NTcwNjIwYTIzYjdjM2Y0ODg4NTQ0YzAyMTBjOTM3YTYzMDg0YjJmMTQ3ZjE4ZWY2NGVlOSJ9&pageFromUrl="+url+"&parentPageFromUrl="+parentUrl;var s2 = document.getElementsByTagName("script")[0];s2.parentNode.insertBefore(s, s2);})(); </script>
1354<!-- End Deadline Funnel --> 1355
1355<script> 1356 jQuery(function($){ 1357 1358 1359 }); 1360 </script>
1360 1361 <div id="fb-root"></div> 1362
1362<script>var GoSquared={acct: "GSN-057822-Q"};(function(a){function b(){a._gstc_lt=+(new Date);var b=document;var c=b.createElement("script");c.type="text/javascript";c.async=true;c.src="//d1l6p2sc9645hc.cloudfront.net/tracker.js";var d=b.getElementsByTagName("script")[0];d.parentNode.insertBefore(c,d)}a.addEventListener?a.addEventListener("load",b,false):a.attachEvent("onload",b)})(window)</script>
1362<!-- RightMessage WP embed -->
1363<script type="text/javascript"> 1364(function(p, a, n, d, o, b) { 1365 o = n.createElement('script'); o.type = 'text/javascript'; o.async = true; o.src = 'https://tw.rightmessage.com/'+p+'.js'; 1366 b = n.getElementsByTagName('script')[0]; b.parentNode.insertBefore(o, b); 1367 d = function(h, u, i) { var o = n.createElement('style'); o.id = 'rmcloak'+i; o.type = 'text/css'; 1368 o.appendChild(n.createTextNode('.rmcloak'+h+'{visibility:hidden}.rmcloak'+u+'{display:none}')); 1369 b.parentNode.insertBefore(o, b); return o; }; o = d('', '-hidden', ''); d('-stay-invisible', '-stay-hidden', '-stay'); 1370 setTimeout(function() { o.parentNode && o.parentNode.removeChild(o); }, a); 1371})('609595396', 20000, document); 1372</script>
1372 1373 <!-- Meta Pixel Event Code --> 1374
1374<script type='text/javascript'> 1375 document.addEventListener( 'wpcf7mailsent', function( event ) { 1376 if( "fb_pxl_code" in event.detail.apiResponse){ 1377 eval(event.detail.apiResponse.fb_pxl_code); 1378 } 1379 }, false ); 1380 </script>
1380 1381 <!-- End Meta Pixel Event Code --> 1382 <!-- Start ActiveCampaign site tracking (by WP Fusion)-->
1382<script type="text/javascript">(function(e,t,o,n,p,r,i){e.visitorGlobalObjectAlias=n;e[e.visitorGlobalObjectAlias]=e[e.visitorGlobalObjectAlias]||function(){(e[e.visitorGlobalObjectAlias].q=e[e.visitorGlobalObjectAlias].q||[]).push(arguments)};e[e.visitorGlobalObjectAlias].l=(new Date).getTime();r=t.createElement("script");r.src=o;r.async=true;i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)})(window,document,"https://diffuser-cdn.app-us1.com/diffuser/diffuser.js","vgo");vgo("setAccount", "475075387");vgo("setTrackByDefault", true);vgo("process");</script>
1382<!-- End ActiveCampaign site tracking --> <!-- Facebook Pixel Code --> 1383 <noscript> 1384 <img 1385 height="1" 1386 width="1" 1387 style="display:none" 1388 alt="fbpx" 1389 src="https://www.facebook.com/tr?id=1547247442291447&ev=PageView&noscript=1" 1390 /> 1391 </noscript> 1392 <!-- End Facebook Pixel Code --> 1393
1393<script type='text/javascript'> 1394 (function () { 1395 var c = document.body.className; 1396 c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); 1397 document.body.className = c; 1398 })(); 1399 </script>
1399 1400
1400<script type="text/javascript"> 1401 /* MonsterInsights Scroll Tracking */ 1402 if ( typeof(jQuery) !== 'undefined' ) { 1403 jQuery( document ).ready(function(){ 1404 function monsterinsights_scroll_tracking_load() { 1405 if ( ( typeof(__gaTracker) !== 'undefined' && __gaTracker && __gaTracker.hasOwnProperty( "loaded" ) && __gaTracker.loaded == true ) || ( typeof(__gtagTracker) !== 'undefined' && __gtagTracker ) ) { 1406 (function(factory) { 1407 factory(jQuery); 1408 }(function($) { 1409 1410 /* Scroll Depth */ 1411 "use strict"; 1412 var defaults = { 1413 percentage: true 1414 }; 1415 1416 var $window = $(window), 1417 cache = [], 1418 scrollEventBound = false, 1419 lastPixelDepth = 0; 1420 1421 /* 1422 * Plugin 1423 */ 1424 1425 $.scrollDepth = function(options) { 1426 1427 var startTime = +new Date(); 1428 1429 options = $.extend({}, defaults, options); 1430 1431 /* 1432 * Functions 1433 */ 1434 1435 function sendEvent(action, label, scrollDistance, timing) { 1436 if ( 'undefined' === typeof MonsterInsightsObject || 'undefined' === typeof MonsterInsightsObject.sendEvent ) { 1437 return; 1438 } 1439 var paramName = action.toLowerCase(); 1440 var fieldsArray = { 1441 send_to: 'G-D46WD7FFRZ', 1442 non_interaction: true 1443 }; 1444 fieldsArray[paramName] = label; 1445 1446 if (arguments.length > 3) { 1447 fieldsArray.scroll_timing = timing 1448 MonsterInsightsObject.sendEvent('event', 'scroll_depth', fieldsArray); 1449 } else { 1450 MonsterInsightsObject.sendEvent('event', 'scroll_depth', fieldsArray); 1451 } 1452 } 1453 1454 function calculateMarks(docHeight) { 1455 return { 1456 '25%' : parseInt(docHeight * 0.25, 10), 1457 '50%' : parseInt(docHeight * 0.50, 10), 1458 '75%' : parseInt(docHeight * 0.75, 10), 1459 /* Cushion to trigger 100% event in iOS */ 1460 '100%': docHeight - 5 1461 }; 1462 } 1463 1464 function checkMarks(marks, scrollDistance, timing) { 1465 /* Check each active mark */ 1466 $.each(marks, function(key, val) { 1467 if ( $.inArray(key, cache) === -1 && scrollDistance >= val ) { 1468 sendEvent('Percentage', key, scrollDistance, timing); 1469 cache.push(key); 1470 } 1471 }); 1472 } 1473 1474 function rounded(scrollDistance) { 1475 /* Returns String */ 1476 return (Math.floor(scrollDistance/250) * 250).toString(); 1477 } 1478 1479 function init() { 1480 bindScrollDepth(); 1481 } 1482 1483 /* 1484 * Public Methods 1485 */ 1486 1487 /* Reset Scroll Depth with the originally initialized options */ 1488 $.scrollDepth.reset = function() { 1489 cache = []; 1490 lastPixelDepth = 0; 1491 $window.off('scroll.scrollDepth'); 1492 bindScrollDepth(); 1493 }; 1494 1495 /* Add DOM elements to be tracked */ 1496 $.scrollDepth.addElements = function(elems) { 1497 1498 if (typeof elems == "undefined" || !$.isArray(elems)) { 1499 return; 1500 } 1501 1502 $.merge(options.elements, elems); 1503 1504 /* If scroll event has been unbound from window, rebind */ 1505 if (!scrollEventBound) { 1506 bindScrollDepth(); 1507 } 1508 1509 }; 1510 1511 /* Remove DOM elements currently tracked */ 1512 $.scrollDepth.removeElements = function(elems) { 1513 1514 if (typeof elems == "undefined" || !$.isArray(elems)) { 1515 return; 1516 } 1517 1518 $.each(elems, function(index, elem) { 1519 1520 var inElementsArray = $.inArray(elem, options.elements); 1521 var inCacheArray = $.inArray(elem, cache); 1522 1523 if (inElementsArray != -1) { 1524 options.elements.splice(inElementsArray, 1); 1525 } 1526 1527 if (inCacheArray != -1) { 1528 cache.splice(inCacheArray, 1); 1529 } 1530 1531 }); 1532 1533 }; 1534 1535 /* 1536 * Throttle function borrowed from: 1537 * Underscore.js 1.5.2 1538 * https://underscorejs.org 1539 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 1540 * Underscore may be freely distributed under the MIT license. 1541 */ 1542 1543 function throttle(func, wait) { 1544 var context, args, result; 1545 var timeout = null; 1546 var previous = 0; 1547 var later = function() { 1548 previous = new Date; 1549 timeout = null; 1550 result = func.apply(context, args); 1551 }; 1552 return function() { 1553 var now = new Date; 1554 if (!previous) previous = now; 1555 var remaining = wait - (now - previous); 1556 context = this; 1557 args = arguments; 1558 if (remaining <= 0) { 1559 clearTimeout(timeout); 1560 timeout = null; 1561 previous = now; 1562 result = func.apply(context, args); 1563 } else if (!timeout) { 1564 timeout = setTimeout(later, remaining); 1565 } 1566 return result; 1567 }; 1568 } 1569 1570 /* 1571 * Scroll Event 1572 */ 1573 1574 function bindScrollDepth() { 1575 1576 scrollEventBound = true; 1577 1578 $window.on('scroll.scrollDepth', throttle(function() { 1579 /* 1580 * We calculate document and window height on each scroll event to 1581 * account for dynamic DOM changes. 1582 */ 1583 1584 var docHeight = $(document).height(), 1585 winHeight = window.innerHeight ? window.innerHeight : $window.height(), 1586 scrollDistance = $window.scrollTop() + winHeight, 1587 1588 /* Recalculate percentage marks */ 1589 marks = calculateMarks(docHeight),
1590 1591 /* Timing */ 1592 timing = +new Date - startTime; 1593 1594 checkMarks(marks, scrollDistance, timing); 1595 }, 500)); 1596 1597 } 1598 1599 init(); 1600 }; 1601 1602 /* UMD export */ 1603 return $.scrollDepth; 1604 1605 })); 1606 1607 jQuery.scrollDepth(); 1608 } else { 1609 setTimeout(monsterinsights_scroll_tracking_load, 200); 1610 } 1611 } 1612 monsterinsights_scroll_tracking_load(); 1613 }); 1614 } 1615 /* End MonsterInsights Scroll Tracking */ 1616 /* MonsterInsights Conversion Event */ 1617 jQuery(document).ready(function() { 1618 jQuery('a[data-mi-conversion-event]') 1619 .off('click.monsterinsightsConversion') 1620 .on('click.monsterinsightsConversion', function() { 1621 if ( typeof(__gtagTracker) !== 'undefined' && __gtagTracker ) { 1622 var $link = jQuery(this); 1623 var eventName = $link.attr('data-mi-event-name'); 1624 if ( typeof eventName === 'undefined' || ! eventName ) { 1625 // Fallback to first word of the <a> tag, lowercase, strip html 1626 var text = $link.text().trim(); 1627 text = text.replace(/(<([^>]+)>)/gi, '').toLowerCase(); 1628 var firstWord = text.split(/\s+/)[0] || ''; 1629 1630 if ( firstWord ) { 1631 eventName = 'click-' + firstWord; 1632 } else { 1633 eventName = $link.parent().hasClass('wp-block-image') ? 'image-click' : 'button-click'; 1634 } 1635 } 1636 __gtagTracker('event', 'mi-' + eventName); 1637 } 1638 }); 1639 }); 1640 /* End MonsterInsights Conversion Event */ 1641 1642</script>
1642<link rel='stylesheet' id='wc-blocks-style-css' href='https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-9.3.6' type='text/css' media='all' />
1643<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/selectWoo/selectWoo.full.min.js?ver=1.0.9-wc.9.3.6" id="selectWoo-js" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 1643
1643
1644<script type="text/javascript" id="wc-memberships-blocks-common-js-extra"> 1645/* <![CDATA[ */ 1646var wc_memberships_blocks_common = {"keywords":{"email":"Email","phone":"Phone","plan":"Plan","address":"Address","search_not_found":"We didn't find any members. Please try a different search or check for typos.","results_not_found":"No records found..."},"ajaxUrl":"https:\/\/thesweetsetup.com\/wp-admin\/admin-ajax.php","restUrl":"https:\/\/thesweetsetup.com\/wp-json\/","restNonce":"fde5a39410"}; 1647/* ]]> */ 1648</script>
vendor: 1 bytes, line 1648
1648
1649<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce-memberships/assets/js/frontend/wc-memberships-blocks-common.min.js?ver=1.26.5" id="wc-memberships-blocks-common-js"></script>
vendor: 1 bytes, line 1649
1649
1650<script type="text/javascript" src="https://thesweetsetup.com/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script>
vendor: 1 bytes, line 1650
1650
1651<script type="text/javascript" src="https://thesweetsetup.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
vendor: 1 bytes, line 1651
1651
1652<script type="text/javascript" id="wp-i18n-js-after"> 1653/* <![CDATA[ */ 1654wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 1655/* ]]> */ 1656</script>
vendor: 1 bytes, line 1656
1656
1657<script type="text/javascript" src="https://thesweetsetup.com/wp-includes/js/jquery/jquery.form.min.js?ver=4.3.0" id="jquery-form-js"></script>
vendor: 1 bytes, line 1657
1657
1658<script type="text/javascript" id="ppress-frontend-script-js-extra"> 1659/* <![CDATA[ */ 1660var pp_ajax_form = {"ajaxurl":"https:\/\/thesweetsetup.com\/wp-admin\/admin-ajax.php","confirm_delete":"Are you sure?","deleting_text":"Deleting...","deleting_error":"An error occurred. Please try again.","nonce":"f4c8f4e599","disable_ajax_form":"false","is_checkout":"0","is_checkout_tax_enabled":"0","is_checkout_autoscroll_enabled":"true"}; 1661/* ]]> */ 1662</script>
vendor: 1 bytes, line 1662
1662
1663<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/wp-user-avatar/assets/js/frontend.min.js?ver=4.15.17" id="ppress-frontend-script-js"></script>
vendor: 1 bytes, line 1663
1663
1664<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=9.3.6" id="sourcebuster-js-js"></script>
vendor: 1 bytes, line 1664
1664
1665<script type="text/javascript" id="wc-order-attribution-js-extra"> 1666/* <![CDATA[ */ 1667var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/thesweetsetup.com\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; 1668/* ]]> */ 1669</script>
vendor: 1 bytes, line 1669
1669
1670<script type="text/javascript" src="https://thesweetsetup.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=9.3.6" id="wc-order-attribution-js"></script>
1670 1671<!-- WooCommerce JavaScript -->
1672<script type="text/javascript"> 1673jQuery(function($) { 1674 ( function() { 1675 1676 function trackEvents() { 1677 1678 } 1679 1680 if ( 'undefined' !== typeof gtag ) { 1681 trackEvents(); 1682 } else { 1683 // avoid using jQuery in case it's not available when this script is loaded 1684 document.addEventListener( 'wc_google_analytics_pro_gtag_loaded', trackEvents ); 1685 } 1686 1687 1688 function trackUAEvents() { 1689 1690 ga( 'send', 'pageview' ); 1691 } 1692 1693 if ( 'undefined' !== typeof ga ) { 1694 trackUAEvents(); 1695 } else { 1696 // avoid using jQuery in case it's not available when this script is loaded 1697 document.addEventListener( 'wc_google_analytics_pro_loaded', trackUAEvents ); 1698 } 1699 1700 } ) (); 1701 1702 }); 1703</script>
1703 1704 1705 1706<!-- Active Campaign -->
1707<script type="text/javascript"> 1708 var trackcmp_email = ''; 1709 var trackcmp = document.createElement("script"); 1710 trackcmp.async = true; 1711 trackcmp.type = 'text/javascript'; 1712 trackcmp.src = '//trackcmp.net/visit?actid=475075387&e='+encodeURIComponent(trackcmp_email)+'&r='+encodeURIComponent(document.referrer)+'&u='+encodeURIComponent(window.location.href); 1713 var trackcmp_s = document.getElementsByTagName("script"); 1714 if (trackcmp_s.length) { 1715 trackcmp_s[0].parentNode.appendChild(trackcmp); 1716 } else { 1717 var trackcmp_h = document.getElementsByTagName("head"); 1718 trackcmp_h.length && trackcmp_h[0].appendChild(trackcmp); 1719 } 1720</script>
1720 1721 1722<!-- Twitter universal website tag code --> 1723
1723<script> 1724 !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); 1725 },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', 1726 a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); 1727 // Insert Twitter Pixel ID and Standard Event data below 1728 twq('init','o735w'); 1729 twq('track','PageView'); 1730 </script>
1730 1731 <!-- End Twitter universal website tag code --> 1732 1733
1734<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"a1067b489dfd42aab2d66b901fb6e427","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 1734
1734
1735<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43b7827ff31d250',t:'MTc5MDg1NzcyOQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
1735</body> 1736</html> 1737<!-- 1738Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com 1739 1740Retrieved 3730 objects (2 MB) from Redis using PhpRedis (v6.3.0). 1741-->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.