PageSourceSearch

https://thesweetsetup.com/apps/best-habit-tracking-app-ios/

html thesweetsetup.com collected 2026-10-01 12:28:50 UTC 120,881 bytes, 1,741 lines download raw bytes

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&#038;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">:&nbsp;All-New&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;Learn Ulysses&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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&nbsp;</span> &rarr;&nbsp;</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">:&nbsp;Made for iPad&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;Bonus Workshop + Planner&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;Productivity Course&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;The 4-Part Flywheel&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;25% discount on all app courses&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;New Course&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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">:&nbsp;All-New Course&nbsp;</span>&nbsp;&rarr;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;<a href="/training/">COURSES</a>&nbsp;&nbsp;&nbsp;<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&hellip;"/>
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 &amp; 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&amp;at=11l7ja&amp;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&#39;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&#39;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&#39;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&#39;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&#39;s going to get done and what isn&#39;t.</p>
977<p>But that&#39;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&#39;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 &amp; 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 &amp; 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 &amp; 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 &amp; Automation</strong> — Forgetting to record a habit when you&#39;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&#39;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&amp;at=11l7ja&amp;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&#39;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&#39;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&#39;ll hear a sound effect play, and you&#39;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&#39;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&#39;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&#39;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&#39;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> &amp; <em>Stats</em>, which are only available in small and large (since it&#39;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&#39;s Health app. This allows Streaks to look at your Health data and mark tasks as complete when the associated data is recorded. There&#39;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&#39;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 &quot;Read Bible&quot; as complete when I open up the YouVersion Bible app on my iPhone (part of my morning routine).</p>
1043<p>But that&#39;s just the tip of the automation iceberg. The Shortcuts support in Streaks goes far deeper than any other habit tracker we&#39;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 &quot;complete task&quot; 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&#39;s a separate $4.99 one-time purchase through the <a href="https://apps.apple.com/us/app/streaks/id1493327990?mt=12&amp;at=11l7ja&amp;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&#39;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&amp;at=11l7ja&amp;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&#39;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&#39;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&#39;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&#39;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 &quot;save your progress.&quot; For some, this can be really helpful as broken streaks can cause stress and anxiety. It&#39;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&#39;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&#39;s expensive ($29.99/year or $4.99/month) for the premium features. It also has a unique visual style that isn&#39;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&amp;at=11l7ja&amp;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 &amp; iOS with a <a href="https://setapp.sjv.io/RqOqX">SetApp</a> subscription. I&#39;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&#39;t spent much time with Awesome Habits, it seems to have all the basic features that we&#39;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&amp;at=11l7ja&amp;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&#39;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&#39;s a well-designed app that gives you everything you need to manage and track habits effectively. Unfortunately, it&#39;s gotten really expensive ($79.99/year). We just can&#39;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&amp;at=11l7ja&amp;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&amp;at=11l7ja&amp;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&#038;at=11l7ja&#038;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 &nbsp;<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, &amp; 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 &amp; 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/">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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">&raquo;</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/">&raquo;</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/">&raquo;</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 &#8211; 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/">&raquo;</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/">&raquo;</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&#8230;here&#39;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&#39;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.) [&hellip;] <a href="https://thesweetsetup.com/how-to-do-hard-things-every-day-may-focus-digest/">&raquo;</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>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://toolsandtoys.net">Tools &amp; Toys</a></span>
1339		<br />
1340		&copy; 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.