{"id":622,"date":"2026-05-24T16:19:16","date_gmt":"2026-05-24T16:19:16","guid":{"rendered":"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/"},"modified":"2026-07-03T20:58:56","modified_gmt":"2026-07-03T20:58:56","slug":"age-verification-creep-tracker","status":"publish","type":"post","link":"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/","title":{"rendered":"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech"},"content":{"rendered":"<p><!doctype html><html lang=\"en-US\" prefix=\"og: https:\/\/ogp.me\/ns#\" ><head><meta charset=\"UTF-8\" \/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/><title>Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech &#8211; The Thrifty Dev<\/title><meta name=\"description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"\/><meta name=\"robots\" content=\"index, follow, max-snippet:160, max-video-preview:-1, max-image-preview:large\"\/><link rel=\"canonical\" href=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\" \/><meta property=\"og:locale\" content=\"en_US\" \/><meta property=\"og:type\" content=\"article\" \/><meta property=\"og:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\" \/><meta property=\"og:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\" \/><meta property=\"og:url\" content=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\" \/><meta property=\"og:site_name\" content=\"The Thrifty Dev\" \/><meta property=\"article:tag\" content=\"age verification\" \/><meta property=\"article:tag\" content=\"anonymous speech\" \/><meta property=\"article:tag\" content=\"censorship resistance\" \/><meta property=\"article:tag\" content=\"digital identity\" \/><meta property=\"article:tag\" content=\"digital sovereignty\" \/><meta property=\"article:tag\" content=\"free speech\" \/><meta property=\"article:tag\" content=\"KOSA\" \/><meta property=\"article:tag\" content=\"privacy\" \/><meta property=\"article:section\" content=\"Blog\" \/><meta property=\"og:updated_time\" content=\"2026-06-21T15:32:29+00:00\" \/><meta property=\"og:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" \/><meta property=\"og:image:secure_url\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" \/><meta property=\"og:image:width\" content=\"1200\" \/><meta property=\"og:image:height\" content=\"630\" \/><meta property=\"og:image:alt\" content=\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\" \/><meta property=\"og:image:type\" content=\"image\/png\" \/><meta property=\"article:published_time\" content=\"2026-05-24T16:19:16+00:00\" \/><meta property=\"article:modified_time\" content=\"2026-06-21T15:32:29+00:00\" \/><meta name=\"twitter:card\" content=\"summary_large_image\" \/><meta name=\"twitter:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\" \/><meta name=\"twitter:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\" \/><meta name=\"twitter:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" \/><meta name=\"twitter:label1\" content=\"Written by\" \/><meta name=\"twitter:data1\" content=\"TheThriftyDev\" \/><meta name=\"twitter:label2\" content=\"Time to read\" \/><meta name=\"twitter:data2\" content=\"15 minutes\" \/> <script type=\"application\/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\",\"name\":\"The Thrifty Dev\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/#website\",\"url\":\"https:\/\/thethriftydev.com\/blog\",\"name\":\"The Thrifty Dev\",\"publisher\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\",\"url\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\",\"url\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\",\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"datePublished\":\"2026-05-24T16:19:16+00:00\",\"dateModified\":\"2026-06-21T15:32:29+00:00\",\"isPartOf\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"name\":\"TheThriftyDev\",\"url\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\",\"url\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\",\"caption\":\"TheThriftyDev\",\"inLanguage\":\"en-US\"},\"sameAs\":[\"https:\/\/thethriftydev.com\/blog\",\"https:\/\/thethriftydev.com\/\",\"https:\/\/thethriftydev.com\/bleach-unlimited\/\",\"https:\/\/x.com\/TheThriftyDev\",\"https:\/\/njump.me\/npub12v62v4vyjaqv92qutxjz6jxfgjjvfcz5ay3tm5ke8x236nhnztrsmcxjp5\"],\"knowsAbout\":[\"Privacy and digital sovereignty\",\"AI agents and orchestration\",\"Self-hosted infrastructure\",\"Mesh networking and <a href=\"https:\/\/thethriftydev.com\/blog\/meshtastic-build-your-own-off-grid-mesh-network\/\">off-grid communication<\/a>\",\"Workflow automation\",\"Local large language models\",\"Censorship resistance and Nostr\"]},{\"@type\":\"BlogPosting\",\"headline\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"datePublished\":\"2026-05-24T16:19:16+00:00\",\"dateModified\":\"2026-06-21T15:32:29+00:00\",\"articleSection\":\"Blog\",\"author\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"name\":\"TheThriftyDev\"},\"publisher\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\"},\"description\":\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\",\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#richSnippet\",\"isPartOf\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\"},\"image\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\"}}]}<\/script> <link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev &raquo; Feed\" href=\"https:\/\/thethriftydev.com\/blog\/feed\/\" \/><link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev &raquo; Comments Feed\" href=\"https:\/\/thethriftydev.com\/blog\/comments\/feed\/\" \/><link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev &raquo; Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech Comments Feed\" href=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/feed\/\" \/><link rel=\"me\" href=\"https:\/\/thethriftydev.com\/\" \/><link rel=\"me\" href=\"https:\/\/x.com\/TheThriftyDev\" \/><link rel=\"me\" href=\"https:\/\/njump.me\/npub12v62v4vyjaqv92qutxjz6jxfgjjvfcz5ay3tm5ke8x236nhnztrsmcxjp5\" \/><link rel=\"alternate\" title=\"oEmbed (JSON)\" type=\"application\/json+oembed\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" \/><link rel=\"alternate\" title=\"oEmbed (XML)\" type=\"text\/xml+oembed\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&#038;format=xml\" \/>\n<style id=\"ttd-blog-enh-css\">.ttd-meta-strip{display:flex;align-items:center;gap:.6em;font-size:.9em;color:var(--ttd-muted,#666);margin:0 0 1.2em;flex-wrap:wrap}.ttd-meta-sep{opacity:.6}.ttd-share-row{display:flex;flex-wrap:wrap;gap:.5em;align-items:center;margin:1em 0 1.5em;position:relative}.ttd-share-bottom{margin:2.5em 0 1.5em;padding-top:1.2em;border-top:1px solid var(--ttd-border,#e5e7eb)}.ttd-share-btn{display:inline-flex;align-items:center;gap:.4em;padding:.4em .75em;border-radius:6px;background:var(--ttd-chip-bg,#f3f4f6);color:var(--ttd-chip-fg,#111);text-decoration:none;font-size:.85em;line-height:1;transition:background .15s,transform .15s;border:1px solid #fff0}.ttd-share-btn:hover{background:var(--ttd-chip-hov,#e5e7eb);transform:translateY(-1px);text-decoration:none}.ttd-share-btn svg{width:14px;height:14px;flex:0 0 14px}.ttd-share-label{font-weight:500}.ttd-share-toast{position:absolute;right:0;top:calc(100% + .3em);background:#111;color:#fff;padding:.35em .7em;border-radius:4px;font-size:.78em;opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s;pointer-events:none}.ttd-share-toast.is-visible{opacity:1;transform:translateY(0)}@media (max-width:560px){.ttd-share-label{display:none}.ttd-share-btn{padding:.5em .6em}.ttd-share-btn svg{width:18px;height:18px;flex:0 0 18px}}.ttd-layout-with-toc{display:grid;grid-template-columns:minmax(0,1fr);gap:2em}@media (min-width:1024px){.ttd-layout-with-toc{grid-template-columns:220px minmax(0,1fr)}.ttd-toc-sidebar{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}.ttd-toc-toggle{display:none}.ttd-toc-list{display:block}}.ttd-toc{font-size:.9em;border-left:2px solid var(--ttd-border,#e5e7eb);padding-left:.9em;background:#fff0}.ttd-toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;font:inherit;background:var(--ttd-chip-bg,#f3f4f6);border:1px solid var(--ttd-border,#e5e7eb);border-radius:6px;padding:.6em .9em;cursor:pointer;margin:0 0 1em;font-weight:600;color:inherit}.ttd-toc-toggle[aria-expanded=true] .ttd-toc-chevron{transform:rotate(180deg)}.ttd-toc-chevron{transition:transform .2s}.ttd-toc-list{list-style:none;padding:0;margin:0;display:none}.ttd-toc-list.is-open{display:block}@media (min-width:1024px){.ttd-toc-list{display:block!important}}.ttd-toc-list li{margin:.35em 0;line-height:1.35}.ttd-toc-list a{color:var(--ttd-muted,#666);text-decoration:none;display:block;padding:.15em 0;border-left:2px solid #fff0;margin-left:-.9em;padding-left:.9em;transition:color .12s,border-color .12s}.ttd-toc-list a:hover{color:var(--ttd-fg,#111)}.ttd-toc-list li.is-active>a{color:var(--ttd-fg,#111);border-left-color:currentColor;font-weight:600}.ttd-toc-h3{padding-left:.9em;font-size:.92em}.ttd-read-next{margin:3em 0 1.5em;padding-top:1.5em;border-top:1px solid var(--ttd-border,#e5e7eb)}.ttd-rn-heading{margin:0 0 1em;font-size:1.4em}.ttd-rn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1em}.ttd-rn-card{display:block;border-radius:8px;overflow:hidden;border:1px solid rgb(0 255 65 \/ .35);background:#1a1a1a;color:#e5e7eb;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}.ttd-rn-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgb(0 0 0 \/ .4);border-color:rgb(0 255 65 \/ .7);text-decoration:none}.ttd-rn-img{aspect-ratio:16\/9;background-size:cover;background-position:center;background-color:#0f0f0f}.ttd-rn-img-placeholder{background-image:linear-gradient(135deg,#1a1a1a 0%,#262626 100%)}.ttd-rn-body{padding:.85em 1em 1em}.ttd-rn-title{margin:0 0 .35em;font-size:1.02em;line-height:1.3;color:#fff}.ttd-rn-excerpt{margin:0;font-size:.85em;color:silver;line-height:1.45}@media (prefers-color-scheme:dark){:root{--ttd-muted:#a3a3a3;--ttd-border:#2a2a2a;--ttd-chip-bg:#1f1f1f;--ttd-chip-hov:#2a2a2a;--ttd-chip-fg:#eee;--ttd-fg:#fafafa;--ttd-card-bg:#181818}}.ttd-nav-rss a,.ttd-nav-search a{display:inline-flex;align-items:center;gap:.4em}.ttd-nav-rss svg,.ttd-nav-search svg{width:16px;height:16px}.ttd-search-overlay{position:fixed;inset:0;background:rgb(0 0 0 \/ .55);display:flex;align-items:flex-start;justify-content:center;padding:14vh 1.2em 1.2em;z-index:99999}.ttd-search-overlay[hidden]{display:none}.ttd-search-form{display:flex;gap:.5em;width:min(640px,100%);background:var(--ttd-card-bg,#fff);padding:1em;border-radius:10px;box-shadow:0 12px 40px rgb(0 0 0 \/ .4);position:relative}.ttd-search-input{flex:1;font-size:1.1em;padding:.6em .8em;border:1px solid var(--ttd-border,#e5e7eb);border-radius:6px;background:#fff0;color:inherit}.ttd-search-submit{padding:.6em 1em;border:0;border-radius:6px;background:#111;color:#fff;cursor:pointer;font:inherit}.ttd-search-close{position:absolute;top:.4em;right:.6em;background:#fff0;border:0;font-size:1.6em;line-height:1;cursor:pointer;color:inherit;opacity:.7}.ttd-search-close:hover{opacity:1}body.wp-theme-twentytwentyone::after{content:none!important;display:none!important;animation:none!important}html body #matrix-rain{opacity:.7!important}#ttd-matrix-rain-static{position:fixed;inset:0;width:100vw;height:100vh;z-index:-2;pointer-events:none;opacity:.7}@media (prefers-reduced-motion:reduce){#ttd-matrix-rain-static{z-index:-1;opacity:.85}}<\/style>\n<style id=\"wp-img-auto-sizes-contain-inline-css\">img:is([sizes=auto i],[sizes^=\"auto,\" i]){contain-intrinsic-size:3000px 1500px}<\/style>\n<style id=\"wp-block-library-inline-css\">:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}<\/style>\n<style id=\"wp-block-archives-inline-css\">.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}<\/style>\n<style id=\"wp-block-categories-inline-css\">.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%}<\/style>\n<style id=\"wp-block-heading-inline-css\">h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}<\/style>\n<style id=\"wp-block-latest-comments-inline-css\">ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-left:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}<\/style>\n<style id=\"wp-block-latest-posts-inline-css\">.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}<\/style>\n<style id=\"wp-block-list-inline-css\">ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}<\/style>\n<style id=\"wp-block-paragraph-inline-css\">.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*=\"writing-mode:vertical-lr\"],p.has-text-align-right[style*=\"writing-mode:vertical-rl\"]{rotate:180deg}<\/style>\n<style id=\"wp-block-search-inline-css\">.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0%;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}<\/style>\n<style id=\"wp-block-search-theme-inline-css\">.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}<\/style>\n<style id=\"wp-block-group-inline-css\">.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}<\/style>\n<style id=\"wp-block-group-theme-inline-css\">:where(.wp-block-group.has-background){padding:1.25em 2.375em}<\/style>\n<style id=\"wp-block-table-inline-css\">.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}<\/style>\n<style id=\"wp-block-table-theme-inline-css\">.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}<\/style>\n<style id=\"classic-theme-styles-inline-css\">\/*! This file is auto-generated *\/\n.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}<\/style>\n<link data-optimized=\"1\" rel='stylesheet' id='twenty-twenty-one-custom-color-overrides-css' href='https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/198c44f25bb8ddf4e3788b95434e927e.css?ver=10b18' media='all' \/>\n<style id=\"global-styles-inline-css\">: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--color--dark-gray:#28303D;--wp--preset--color--gray:#39414D;--wp--preset--color--green:#D1E4DD;--wp--preset--color--blue:#D1DFE4;--wp--preset--color--purple:#D1D1E4;--wp--preset--color--red:#E4D1D1;--wp--preset--color--orange:#E4DAD1;--wp--preset--color--yellow:#EEEADD;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgb(255,105,0) 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%);--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--gradient--purple-to-yellow:linear-gradient(160deg, #D1D1E4 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-purple:linear-gradient(160deg, #EEEADD 0%, #D1D1E4 100%);--wp--preset--gradient--green-to-yellow:linear-gradient(160deg, #D1E4DD 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-green:linear-gradient(160deg, #EEEADD 0%, #D1E4DD 100%);--wp--preset--gradient--red-to-yellow:linear-gradient(160deg, #E4D1D1 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-red:linear-gradient(160deg, #EEEADD 0%, #E4D1D1 100%);--wp--preset--gradient--purple-to-red:linear-gradient(160deg, #D1D1E4 0%, #E4D1D1 100%);--wp--preset--gradient--red-to-purple:linear-gradient(160deg, #E4D1D1 0%, #D1D1E4 100%);--wp--preset--font-size--small:18px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:24px;--wp--preset--font-size--x-large:42px;--wp--preset--font-size--extra-small:16px;--wp--preset--font-size--normal:20px;--wp--preset--font-size--extra-large:40px;--wp--preset--font-size--huge:96px;--wp--preset--font-size--gigantic:144px;--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp:6px 6px 0px rgb(0, 0, 0)}:where(body){margin:0}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.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}body{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}:root :where(.wp-element-button,.wp-block-button__link){background-color:#32373c;border-width:0;color:#fff;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-top:calc(0.667em + 2px);padding-right:calc(1.333em + 2px);padding-bottom:calc(0.667em + 2px);padding-left:calc(1.333em + 2px);text-decoration:none;text-transform:inherit}.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-dark-gray-color{color:var(--wp--preset--color--dark-gray)!important}.has-gray-color{color:var(--wp--preset--color--gray)!important}.has-green-color{color:var(--wp--preset--color--green)!important}.has-blue-color{color:var(--wp--preset--color--blue)!important}.has-purple-color{color:var(--wp--preset--color--purple)!important}.has-red-color{color:var(--wp--preset--color--red)!important}.has-orange-color{color:var(--wp--preset--color--orange)!important}.has-yellow-color{color:var(--wp--preset--color--yellow)!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-dark-gray-background-color{background-color:var(--wp--preset--color--dark-gray)!important}.has-gray-background-color{background-color:var(--wp--preset--color--gray)!important}.has-green-background-color{background-color:var(--wp--preset--color--green)!important}.has-blue-background-color{background-color:var(--wp--preset--color--blue)!important}.has-purple-background-color{background-color:var(--wp--preset--color--purple)!important}.has-red-background-color{background-color:var(--wp--preset--color--red)!important}.has-orange-background-color{background-color:var(--wp--preset--color--orange)!important}.has-yellow-background-color{background-color:var(--wp--preset--color--yellow)!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-dark-gray-border-color{border-color:var(--wp--preset--color--dark-gray)!important}.has-gray-border-color{border-color:var(--wp--preset--color--gray)!important}.has-green-border-color{border-color:var(--wp--preset--color--green)!important}.has-blue-border-color{border-color:var(--wp--preset--color--blue)!important}.has-purple-border-color{border-color:var(--wp--preset--color--purple)!important}.has-red-border-color{border-color:var(--wp--preset--color--red)!important}.has-orange-border-color{border-color:var(--wp--preset--color--orange)!important}.has-yellow-border-color{border-color:var(--wp--preset--color--yellow)!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}.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-purple-to-yellow-gradient-background{background:var(--wp--preset--gradient--purple-to-yellow)!important}.has-yellow-to-purple-gradient-background{background:var(--wp--preset--gradient--yellow-to-purple)!important}.has-green-to-yellow-gradient-background{background:var(--wp--preset--gradient--green-to-yellow)!important}.has-yellow-to-green-gradient-background{background:var(--wp--preset--gradient--yellow-to-green)!important}.has-red-to-yellow-gradient-background{background:var(--wp--preset--gradient--red-to-yellow)!important}.has-yellow-to-red-gradient-background{background:var(--wp--preset--gradient--yellow-to-red)!important}.has-purple-to-red-gradient-background{background:var(--wp--preset--gradient--purple-to-red)!important}.has-red-to-purple-gradient-background{background:var(--wp--preset--gradient--red-to-purple)!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}.has-extra-small-font-size{font-size:var(--wp--preset--font-size--extra-small)!important}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)!important}.has-extra-large-font-size{font-size:var(--wp--preset--font-size--extra-large)!important}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)!important}.has-gigantic-font-size{font-size:var(--wp--preset--font-size--gigantic)!important}<\/style>\n<style id=\"ttd-abn-inline-css\">.ttd-abn{box-sizing:border-box;background:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:18px;padding:20px;box-shadow:0 18px 50px rgb(0 0 0 \/ .35);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.ttd-abn strong{display:block;font-size:22px;line-height:1.15;margin:4px 0 8px}.ttd-abn p{color:#cbd5e1;margin:0 0 14px}.ttd-abn-kicker{color:#35d3ff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.ttd-abn-form{display:flex;gap:8px;flex-wrap:wrap}.ttd-abn input[type=email]{flex:1;min-width:190px;padding:12px 14px;border-radius:12px;border:1px solid #475569;background:#020617;color:#fff}.ttd-abn button[type=submit]{padding:12px 16px;border:0;border-radius:12px;background:#34d399;color:#052e2b;font-weight:800;cursor:pointer}.ttd-abn small{display:block;color:#94a3b8;margin-top:10px}.ttd-abn-result{margin-top:10px;color:#34d399;font-weight:700}.ttd-abn-close{position:absolute;right:10px;top:8px;background:#fff0;border:0;color:#94a3b8;font-size:24px;cursor:pointer}.ttd-abn-inline{margin:28px 0}.ttd-abn-sticky{position:fixed;right:18px;bottom:18px;z-index:99999;max-width:390px}.ttd-abn-sticky.ttd-abn-hidden{display:none}@media(max-width:700px){.ttd-abn-sticky{left:10px;right:10px;bottom:10px;max-width:none}.ttd-abn-form{display:block}.ttd-abn input[type=email],.ttd-abn button[type=submit]{width:100%;margin-top:8px}}<\/style>\n<link data-optimized=\"1\" rel='stylesheet' id='hostinger-reach-subscription-block-css' href='https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/5111b8d4c914c6e8aab32635aa025705.css?ver=1c5fc' media='all' \/><link data-optimized=\"1\" rel='stylesheet' id='twenty-twenty-one-style-css' href='https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/a35f68986c6afa750cbab8f90a015e05.css?ver=e360c' media='all' \/><link data-optimized=\"1\" rel='stylesheet' id='twenty-twenty-one-print-style-css' href='https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/06fe04cd378b0c2c6657542ea198977e.css?ver=729c1' media='print' \/><link data-optimized=\"1\" rel='stylesheet' id='newsletter-css' href='https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/e8d47115c9c410ea17ddc440330fd392.css?ver=90b3f' media='all' \/><link rel=\"https:\/\/api.w.org\/\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/\" \/><link rel=\"alternate\" title=\"JSON\" type=\"application\/json\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts\/622\" \/><link rel=\"EditURI\" type=\"application\/rsd+xml\" title=\"RSD\" href=\"https:\/\/thethriftydev.com\/blog\/xmlrpc.php?rsd\" \/><meta name=\"generator\" content=\"WordPress 7.0\" \/><link rel='shortlink' href='https:\/\/thethriftydev.com\/blog\/?p=622' \/><link rel=\"pingback\" href=\"https:\/\/thethriftydev.com\/blog\/xmlrpc.php\"><canvas id=\"matrix-rain\" style=\"position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.18;\"><\/canvas><script data-optimized=\"1\" id=\"ttd-continuous-matrix-rain\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdHJpeC1yYWluIik7aWYoIWMpcmV0dXJuO3ZhciByZWR1Y2U9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7aWYocmVkdWNlKXtjLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn0KdmFyIGN0eD1jLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITB9KTt2YXIgY2hhcnM9IuOCouOCoeOCq+OCteOCv+ODiuODj+ODnuODpOODo+ODqeODr+OCrOOCtuODgOODkOODkeOCpOOCo+OCreOCt+ODgeODi+ODkuODn+ODquODsOOCruOCuOODguODk+ODlOOCpuOCpeOCr+OCueODhOODjOODleODoOODpuODpeODq+OCsOOCuuODluODheODl+OCqOOCp+OCseOCu+ODhuODjeODmOODoeODrOODseOCsuOCvOODh+ODmeODmuOCquOCqeOCs+OCveODiOODjuODm+ODouODqOODp+ODreODsuOCtOOCvuODieODnOODneODtOODg+ODszAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuc3BsaXQoIiIpO3ZhciBmcz0xOCxnYXA9MSxjb2xzPTAscm93cz0wLGNvbHVtbnM9W10sbGFzdD0wO2Z1bmN0aW9uIHJhbmRDaGFyKCl7cmV0dXJuIGNoYXJzWyhNYXRoLnJhbmRvbSgpKmNoYXJzLmxlbmd0aCl8MF19CmZ1bmN0aW9uIG1ha2VDb2x1bW4oaSxvbGQpe3ZhciBnbHlwaHM9b2xkJiZvbGQuZ2x5cGhzP29sZC5nbHlwaHM6W107dmFyIG5lZWRlZD1yb3dzKzM7d2hpbGUoZ2x5cGhzLmxlbmd0aDxuZWVkZWQpZ2x5cGhzLnB1c2gocmFuZENoYXIoKSk7aWYoZ2x5cGhzLmxlbmd0aD5uZWVkZWQpZ2x5cGhzLmxlbmd0aD1uZWVkZWQ7cmV0dXJue29mZnNldDoob2xkJiZ0eXBlb2Ygb2xkLm9mZnNldD09PSJudW1iZXIiKT9vbGQub2Zmc2V0Ok1hdGgucmFuZG9tKCkqZnMsc3BlZWQ6KG9sZCYmb2xkLnNwZWVkKXx8MjgrTWF0aC5yYW5kb20oKSozMixnbHlwaHM6Z2x5cGhzLHRpY2s6MH19CmZ1bmN0aW9uIHJlc2l6ZSgpe3ZhciBkcHI9TWF0aC5tYXgoMSxNYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSwyKSk7dmFyIHc9d2luZG93LmlubmVyV2lkdGgsaD13aW5kb3cuaW5uZXJIZWlnaHQ7Yy5zdHlsZS53aWR0aD13KyJweCI7Yy5zdHlsZS5oZWlnaHQ9aCsicHgiO2Mud2lkdGg9TWF0aC5jZWlsKHcqZHByKTtjLmhlaWdodD1NYXRoLmNlaWwoaCpkcHIpO2N0eC5zZXRUcmFuc2Zvcm0oZHByLDAsMCxkcHIsMCwwKTtjb2xzPU1hdGguY2VpbCh3LyhmcytnYXApKTtyb3dzPU1hdGguY2VpbChoL2ZzKSszO3ZhciBvbGQ9Y29sdW1ucztjb2x1bW5zPVtdO2Zvcih2YXIgaT0wO2k8Y29scztpKyspY29sdW1uc1tpXT1tYWtlQ29sdW1uKGksb2xkW2ldKTtjdHguY2xlYXJSZWN0KDAsMCx3LGgpfQpmdW5jdGlvbiBkcmF3KHRzKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhdyk7aWYoIWxhc3QpbGFzdD10cztpZih0cy1sYXN0PDMzKXJldHVybjt2YXIgZHQ9TWF0aC5taW4oMC4wNSwodHMtbGFzdCkvMTAwMCk7bGFzdD10czt2YXIgdz13aW5kb3cuaW5uZXJXaWR0aCxoPXdpbmRvdy5pbm5lckhlaWdodDtjdHguZmlsbFN0eWxlPSJyZ2JhKDAsMCwwLDAuMjIpIjtjdHguZmlsbFJlY3QoMCwwLHcsaCk7Y3R4LmZvbnQ9ZnMrInB4IG1vbm9zcGFjZSI7Y3R4LnRleHRCYXNlbGluZT0idG9wIjtjdHguc2hhZG93Qmx1cj0wO2Zvcih2YXIgaT0wO2k8Y29scztpKyspe3ZhciBjb2w9Y29sdW1uc1tpXTtjb2wub2Zmc2V0PShjb2wub2Zmc2V0K2NvbC5zcGVlZCpkdCklZnM7Y29sLnRpY2srPWR0O2lmKGNvbC50aWNrPjAuMTYpe2NvbC50aWNrPTA7Y29sLmdseXBocy51bnNoaWZ0KHJhbmRDaGFyKCkpO2NvbC5nbHlwaHMubGVuZ3RoPXJvd3MrM30KdmFyIHg9aSooZnMrZ2FwKTtmb3IodmFyIHI9LTE7cjxyb3dzO3IrKyl7dmFyIHk9cipmcytjb2wub2Zmc2V0LWZzO2lmKHk8LWZzfHx5PmgpY29udGludWU7dmFyIGdseXBoPWNvbC5nbHlwaHNbKHIrMSklY29sLmdseXBocy5sZW5ndGhdO3ZhciBwdWxzZT0ocitNYXRoLmZsb29yKGNvbC5vZmZzZXQvZnMpKSU5PT09MDtjdHguZmlsbFN0eWxlPXB1bHNlPyJyZ2JhKDE1MCwyNTUsMTcwLC43MikiOiJyZ2JhKDAsMjU1LDY1LC4zOCkiO2N0eC5maWxsVGV4dChnbHlwaCx4LHkpfX19CnJlc2l6ZSgpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJlc2l6ZSx7cGFzc2l2ZTohMH0pO3JlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3KX0pKCk=\" defer><\/script><br \/>\n<style>body{background:transparent!important;color:#c0c0c0!important}.site{background:rgb(10 10 10 \/ .85)!important}#page{background:transparent!important}.site-content{background:transparent!important}.entry-content{background:transparent!important}article.post,.hentry{background:rgb(5 5 5 \/ .9)!important;border-left:3px solid #00ff41!important;border-radius:4px!important;margin-bottom:20px!important;padding:15px!important}.entry-title,.entry-title a{color:#00ff41!important;text-shadow:0 0 7px rgb(0 255 65 \/ .72)!important;line-height:1.18!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:auto!important}h1.entry-title,.singular .entry-title{font-size:clamp(1.65rem, 5vw, 2.7rem)!important;letter-spacing:-0.025em!important;max-width:18ch!important}h2.entry-title,.blog .entry-title,.archive .entry-title{font-size:clamp(1.12rem, 3.6vw, 1.72rem)!important;max-width:28ch!important}.entry-header{max-width:100%!important}.site-title,.site-title a{color:#00ff41!important}.site-description{color:#008f11!important}.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6{color:#00ff41!important}.main-navigation a{color:#008f11!important}.main-navigation a:hover{color:#00ff41!important}.entry-content>h1:first-child{display:none!important}.post-thumbnail{margin:0 0 15px 0!important}.post-thumbnail img,.wp-post-image,.attachment-post-thumbnail{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:unset!important}a{color:#00ff41!important}a:hover{color:#66ff8a!important;text-shadow:none!important}article.post,.hentry,.entry-title,.entry-title a,.post-thumbnail img,.wp-post-image{transform:none!important;transition:color .16s ease,border-color .16s ease,background-color .16s ease!important}article.post:hover,.hentry:hover,.post-thumbnail:hover img,.wp-post-image:hover{transform:none!important;filter:none!important}#matrix-rain{opacity:.18!important;mix-blend-mode:normal!important;filter:none!important}<\/style>\n<style>figcaption,.wp-caption-text,.wp-element-caption,.wp-block-image figcaption,.attachment-caption{display:none!important}<\/style>\n<p><meta property=\"og:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\" \/><meta property=\"og:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\" \/><meta property=\"og:url\" content=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\" \/><meta property=\"og:type\" content=\"article\" \/><meta property=\"og:site_name\" content=\"The Thrifty Dev\" \/><meta property=\"og:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" \/><meta property=\"og:image:width\" content=\"1200\" \/><meta property=\"og:image:height\" content=\"630\" \/><meta name=\"twitter:card\" content=\"summary_large_image\" \/><meta name=\"twitter:site\" content=\"@TheThriftyDev\" \/><meta name=\"twitter:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\" \/><meta name=\"twitter:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\" \/><meta name=\"twitter:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" \/> <script type=\"application\/ld+json\" id=\"ttd-breadcrumb-schema\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thethriftydev.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start Here\",\"item\":\"https:\/\/thethriftydev.com\/blog\/start-here\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\",\"item\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"}]}<\/script> <\/p>\n<style id=\"ttd-blog-polish-css\">.ttd-topic-hubs,.ttd-author-trust{box-sizing:border-box;max-width:var(--responsive--aligndefault-width,960px);margin:1.5rem auto 2rem;padding:1rem;border:1px solid rgb(0 255 65 \/ .35);border-left:3px solid #00ff41;border-radius:14px;background:rgb(0 0 0 \/ .52);color:#e5e7eb}.ttd-hub-breadcrumb{display:inline-flex;align-items:baseline;gap:.35em;margin:0 0 1.5em;padding:.35em .75em;font-size:.85em;color:#d1d5db;border:1px solid rgb(0 255 65 \/ .25);border-left:3px solid #00ff41;border-radius:6px;background:rgb(0 0 0 \/ .4)}.ttd-hub-breadcrumb-label{opacity:.7}.ttd-hub-breadcrumb a{color:#00ff41;font-weight:600;text-decoration:none}.ttd-hub-breadcrumb a:hover{text-decoration:underline}a.ttd-autolink{border-bottom:1px dotted rgb(108 255 179 \/ .55)}a.ttd-autolink:hover{border-bottom-style:solid}.ttd-topic-hubs h2,.ttd-topic-hubs h3,.ttd-author-trust h2{color:#00ff41;margin-top:0}.ttd-topic-hubs__intro,.ttd-author-trust p{color:#d1d5db;line-height:1.65}.ttd-topic-hubs__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.ttd-topic-hub-group ul{list-style:none;margin:0;padding:0}.ttd-topic-hub-group li{margin:.75rem 0;padding:.75rem;border:1px solid rgb(0 255 65 \/ .18);border-radius:12px;background:rgb(255 255 255 \/ .035)}.ttd-topic-hub-group a,.ttd-topic-hubs__cta a,.ttd-author-trust a{color:#67e8f9;font-weight:800;overflow-wrap:anywhere}.ttd-topic-hub-group span{display:block;margin-top:.25rem;color:#cbd5e1;font-size:.92rem;line-height:1.5}.author-bio{display:none!important}#toc_container{display:block!important;margin:1.5rem 0 2rem!important;padding:1rem 1.1rem!important;border:1px solid rgb(0 255 65 \/ .35)!important;border-left:3px solid #00ff41!important;border-radius:14px!important;background:rgb(0 0 0 \/ .45)!important;max-width:100%!important;box-sizing:border-box!important;overflow-wrap:anywhere!important}#toc_container .toc_title{margin:0 0 .75rem!important;color:#00ff41!important;font-weight:800!important}#toc_container ul,#toc_container li{display:list-item!important;list-style-position:outside!important;line-height:1.55!important}#toc_container ul{margin:.35rem 0 .35rem 1.2rem!important;padding-left:1rem!important}#toc_container li{margin:.25rem 0!important}#toc_container li ul{margin-top:.35rem!important}#toc_container a{display:inline!important;overflow-wrap:anywhere}@media (max-width:640px){.ttd-topic-hubs,.ttd-author-trust{margin-left:.75rem;margin-right:.75rem}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}}<\/style>\n<style id=\"wp-custom-css\">@media only screen and (max-width:768px){body{font-size:14px!important;padding:0!important}.site-header{padding:10px!important;text-align:center!important}.site-title a{font-size:1.4rem!important;text-shadow:0 0 6px #00ff41!important}.site-description{font-size:.75rem!important}.main-navigation ul{flex-direction:column!important;align-items:center!important;gap:8px!important}.main-navigation li{margin:0!important}.main-navigation a{font-size:.9rem!important;padding:6px 12px!important}article.post,.hentry{padding:15px!important;margin-bottom:15px!important;border-left-width:2px!important}.entry-title a{font-size:1.2rem!important}.entry-content h1{font-size:1.5rem!important}.entry-content h2{font-size:1.25rem!important}.entry-content h3{font-size:1.1rem!important}.entry-content p{font-size:14px!important;line-height:1.7!important}.entry-content ul,.entry-content ol{padding-left:1.2em!important}.entry-content li{font-size:14px!important}.wp-block-image img{width:100%!important;height:auto!important;border-radius:4px!important}.wp-block-image{margin:15px 0!important}table{font-size:12px!important;display:block!important;overflow-x:auto!important;white-space:nowrap!important}th,td{padding:6px!important}.site-footer{padding:15px!important;text-align:center!important}.site-footer *{font-size:.7rem!important}.page-content,.entry-content{padding:0 5px!important}#page,.site-content{padding:0!important;margin:0!important}.has-global-padding{padding:10px!important}blockquote{padding:.8em 1em!important;margin:10px 0!important}pre{font-size:12px!important;padding:10px!important;overflow-x:auto!important}code{font-size:12px!important}}@media only screen and (max-width:480px){.site-title a{font-size:1.1rem!important}.entry-content h1{font-size:1.3rem!important}.entry-content h2{font-size:1.1rem!important}.entry-content p,.entry-content li{font-size:13px!important}article.post,.hentry{padding:10px!important}.wp-block-image img{border-radius:2px!important}}@media screen and (max-width:782px){.entry-content table,.site-main table,article table,.wp-block-table table{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;white-space:normal!important;table-layout:auto!important;border-collapse:collapse!important}.entry-content table th,.entry-content table td,.site-main table th,.site-main table td,article table th,article table td,.wp-block-table table th,.wp-block-table table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;min-width:9rem!important;max-width:18rem!important;vertical-align:top!important}.entry-content .wp-block-table,.site-main .wp-block-table,article .wp-block-table{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.entry-content table::after,.site-main table::after,article table::after,.wp-block-table table::after{content:\"Swipe table \u00e2\u0086\u0092\";display:block;font-size:.78rem;opacity:.75;padding:.4rem 0}}:root{--ttd-bg:#050a07;--ttd-bg2:#07130d;--ttd-panel:rgba(113,255,173,.07);--ttd-panel2:rgba(113,255,173,.12);--ttd-line:rgba(113,255,173,.28);--ttd-text:#e9ffe9;--ttd-muted:#9ad5aa;--ttd-cyan:#6cffb3;--ttd-lime:#93ffbf}body.wp-theme-twentytwentyone{color:var(--ttd-text)!important;background:radial-gradient(1000px 700px at 5% -15%,rgb(108 255 179 \/ .13),transparent 60%),radial-gradient(900px 700px at 95% 2%,rgb(147 255 191 \/ .10),transparent 60%),linear-gradient(160deg,var(--ttd-bg),var(--ttd-bg2) 55%,#0d1f15)!important}body.wp-theme-twentytwentyone::before{content:\"\";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.18;background-image:linear-gradient(rgb(108 255 179 \/ .16) 1px,transparent 1px),linear-gradient(90deg,rgb(108 255 179 \/ .16) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle at 50% 30%,black 34%,transparent 88%)}.site-header,.site-main,.widget-area,.site-footer{background:transparent!important}.site-title,.site-title a,.site-description,.entry-title,.entry-title a,.page-title,.widget-title{color:var(--ttd-text)!important}.site-title,.entry-title,h1,h2,h3,h4{font-family:\"JetBrains Mono\",\"IBM Plex Mono\",ui-monospace,SFMono-Regular,Menlo,monospace!important;letter-spacing:-.02em}.site-title a,.site-title{text-shadow:0 0 10px rgb(108 255 179 \/ .34)!important}.site-description,.entry-content,.entry-summary,.entry-content p,.entry-content li,.widget,.site-info,.posted-on,.byline,.cat-links,.tags-links{color:var(--ttd-muted)!important}a,.entry-content a,.site-footer a,.site-header a{color:var(--ttd-cyan)!important;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover,.entry-content a:hover{color:var(--ttd-lime)!important}article.post,article.page,.hentry,.widget,.comments-area,.page-header,.archive-description,.entry-content .wp-block-group{border:1px solid var(--ttd-line)!important;border-radius:22px!important;background:linear-gradient(140deg,rgb(255 255 255 \/ .08),rgb(113 255 173 \/ .045))!important;box-shadow:0 18px 45px rgb(0 0 0 \/ .32)!important;padding:clamp(16px, 3vw, 28px)!important}.entry-content img,.post-thumbnail img,.wp-block-image img{border-radius:16px!important;border:1px solid var(--ttd-line)!important;box-shadow:0 12px 32px rgb(0 0 0 \/ .35)!important}.entry-content blockquote,.entry-content pre,.entry-content code,.entry-content table{border-color:var(--ttd-line)!important;background:rgb(0 0 0 \/ .28)!important;color:var(--ttd-text)!important}.entry-content th{color:var(--ttd-text)!important;background:rgb(113 255 173 \/ .12)!important}.entry-content td{color:#d7ffe3!important}input,textarea,select{background:rgb(0 0 0 \/ .32)!important;color:var(--ttd-text)!important;border-color:var(--ttd-line)!important}button,.button,input[type=\"submit\"],.wp-block-button__link{border-radius:999px!important;border:1px solid rgb(113 255 173 \/ .65)!important;background:linear-gradient(115deg,rgb(113 255 173 \/ .28),rgb(0 0 0 \/ .25))!important;color:var(--ttd-text)!important;font-weight:800!important}.site-footer{color:#8fa4d3!important}@media (min-width:782px){.site-header,.site-main,.widget-area,.site-footer{max-width:1080px!important;margin-left:auto!important;margin-right:auto!important}}body.wp-theme-twentytwentyone{position:relative!important;overflow-x:hidden!important}body.wp-theme-twentytwentyone::after{content:\"0101101001011010010110100101101001011010010110100101101001011010\\A 1010010110100101101001011010010110100101101001011010010110\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\\A 0101101001011010010110100101101001011010010110100101101\\A 1010010110100101101001011010010110100101101001011010010\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\\A 0101101001011010010110100101101001011010010110100101101\\A 1010010110100101101001011010010110100101101001011010010\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\";position:fixed!important;inset:-40vh 0 0 0!important;z-index:0!important;pointer-events:none!important;white-space:pre!important;overflow:hidden!important;font-family:\"JetBrains Mono\",\"IBM Plex Mono\",ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:15px!important;line-height:1.45!important;letter-spacing:.18em!important;color:rgb(108 255 179 \/ .34)!important;text-shadow:0 0 10px rgb(108 255 179 \/ .42)!important;opacity:.34!important;mix-blend-mode:screen!important;animation:ttdMatrixRain 18s linear infinite!important}@keyframes ttdMatrixRain{from{transform:translateY(-18vh)}to{transform:translateY(42vh)}}#page.site{position:relative!important;z-index:1!important}.site-header,.site-main,.widget-area,.site-footer{position:relative!important;z-index:1!important}article.post,article.page,.hentry,.widget,.comments-area,.page-header,.archive-description,.entry-content .wp-block-group{background:linear-gradient(140deg,rgb(0 2 1 \/ .90),rgb(0 2 1 \/ .86))!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}.entry-content,.entry-summary,.entry-content p,.entry-content li,.entry-content td,.entry-content th{text-shadow:0 2px 12px rgb(0 0 0 \/ .95)!important}.site-header,.site-footer,.primary-navigation>div>.menu-wrapper,.primary-navigation .primary-menu-container,.menu-button-container,#masthead{background:rgb(0 2 1 \/ .90)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;border-radius:18px!important}@media (prefers-reduced-motion:reduce){body.wp-theme-twentytwentyone::after{animation:none!important;opacity:.12!important}}.entry-content pre,.entry-content pre code,article pre,article pre code,.wp-block-code,.wp-block-code code,.wp-block-preformatted{white-space:pre-wrap!important;word-wrap:break-word!important;overflow-wrap:anywhere!important;max-width:100%;box-sizing:border-box;overflow-x:auto}.entry-content code,article code{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.entry-content table,article table,.wp-block-table table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse}.entry-content table th,.entry-content table td,article table th,article table td{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.ttd-layout-with-toc p,.ttd-layout-with-toc ul,.ttd-layout-with-toc ol,.ttd-layout-with-toc blockquote,.entry-content>p,.entry-content>ul,.entry-content>ol,.entry-content>blockquote{margin-bottom:1.4em!important;line-height:1.7!important}.ttd-layout-with-toc li,.entry-content li{margin-bottom:0.35em!important;line-height:1.65!important}.ttd-layout-with-toc h2,.ttd-layout-with-toc h3,.ttd-layout-with-toc h4,.ttd-layout-with-toc h5,.ttd-layout-with-toc h6,.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-top:2.2em!important;margin-bottom:0.65em!important;line-height:1.3!important}.ttd-layout-with-toc h2+p,.ttd-layout-with-toc h3+p,.ttd-layout-with-toc h4+p,.entry-content>h2+p,.entry-content>h3+p,.entry-content>h4+p{margin-top:0.4em!important}.entry-content>*:last-child{margin-bottom:0!important}<\/style>\n<p><\/head><body class=\"wp-singular post-template-default single single-post postid-622 single-format-standard wp-embed-responsive wp-theme-twentytwentyone is-light-theme no-js singular\"><\/p>\n<div id=\"ttd-search-overlay\" class=\"ttd-search-overlay\" hidden role=\"dialog\" aria-modal=\"true\" aria-label=\"Site search\">\n<form class=\"ttd-search-form\" role=\"search\" method=\"get\" action=\"https:\/\/thethriftydev.com\/blog\/\">\n<label for=\"ttd-search-input\" class=\"screen-reader-text\">Search<\/label><br \/>\n<input id=\"ttd-search-input\" class=\"ttd-search-input\" type=\"search\" name=\"s\" placeholder=\"Search the blog\u2026\" autocomplete=\"off\" \/><br \/>\n<button type=\"submit\" class=\"ttd-search-submit\">Search<\/button><br \/>\n<button type=\"button\" class=\"ttd-search-close\" aria-label=\"Close search\">&times;<\/button><\/form>\n<\/div>\n<div id=\"page\" class=\"site\">\n<a class=\"skip-link screen-reader-text\" href=\"#content\"><br \/>\nSkip to content\t<\/a><\/p>\n<header id=\"masthead\" class=\"site-header has-title-and-tagline\">\n<div class=\"site-branding\">\n<p class=\"site-title\"><a href=\"https:\/\/thethriftydev.com\/blog\/\" rel=\"home\">The Thrifty Dev<\/a><\/p>\n<p class=\"site-description\">\nSovereign builder field notes for AI, privacy, automation, and digital rights.<\/p>\n<\/div>\n<\/header>\n<div id=\"content\" class=\"site-content\">\n<div id=\"primary\" class=\"content-area\"><main id=\"main\" class=\"site-main\"><\/p>\n<article id=\"post-622\" class=\"post-622 post type-post status-publish format-standard has-post-thumbnail hentry category-blog tag-age-verification tag-anonymous-speech tag-censorship-resistance tag-digital-identity tag-digital-sovereignty tag-free-speech tag-kosa tag-privacy entry\">\n<header class=\"entry-header alignwide\">\n<h1 class=\"entry-title\">Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech<\/h1>\n<figure class=\"post-thumbnail\">\n<img width=\"1200\" height=\"630\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\" decoding=\"async\" fetchpriority=\"high\" srcset=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png 1200w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-300x158.png 300w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-1024x538.png 1024w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-768x403.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" style=\"width:100%;height:52.5%;max-width:1200px;\" \/><\/figure>\n<\/header>\n<div class=\"entry-content\">\n<p class=\"ttd-meta-strip\"><span class=\"ttd-meta-read\">14 min read<\/span><span class=\"ttd-meta-sep\">\u00b7<\/span><span class=\"ttd-meta-date\">Updated Jun 21, 2026<\/span><\/p>\n<div class=\"ttd-share-row ttd-share-top\" role=\"group\" aria-label=\"Share this post\"><a class=\"ttd-share-btn ttd-share-nostr\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Nostr\" data-share=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech \u2014 https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/ #nostr\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.6 10.42c0 2.07-.84 3.94-2.2 5.3-1.36 1.35-3.23 2.19-5.3 2.19h-.6v3.51c0 .43-.34.78-.77.78H6.92a.78.78 0 0 1-.78-.78V10.42C6.14 6.6 9.24 3.5 13.06 3.5s5.54 3.1 5.54 6.92zm-3.6 0c0-1.83-1.05-2.92-2.94-2.92-1.9 0-2.94 1.09-2.94 2.92v3.74h.6c1.07 0 1.99-.4 2.72-1.12.74-.74 1.16-1.66 1.16-2.62z\"\/><\/svg><span class=\"ttd-share-label\">Nostr<\/span><\/a><a class=\"ttd-share-btn ttd-share-x\" href=\"https:\/\/twitter.com\/intent\/tweet?text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech&#038;url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on X\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.244 2H21l-6.51 7.44L22.5 22h-7.05l-5.52-7.06L3.6 22H.84l6.97-7.96L1.5 2h7.2l4.98 6.4L18.244 2zm-1.23 18.2h1.94L7.06 3.7H5.02l11.99 16.5z\"\/><\/svg><span class=\"ttd-share-label\">X<\/span><\/a><a class=\"ttd-share-btn ttd-share-facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Facebook\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.9 3.78-3.9 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z\"\/><\/svg><span class=\"ttd-share-label\">Facebook<\/span><\/a><a class=\"ttd-share-btn ttd-share-reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&#038;title=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Reddit\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12.06c0-1.21-.99-2.2-2.2-2.2a2.2 2.2 0 0 0-1.5.59c-1.5-1.05-3.55-1.73-5.83-1.81l1.01-4.72 3.3.7a1.55 1.55 0 1 0 .14-.6l-3.69-.79a.3.3 0 0 0-.36.23l-1.13 5.18c-2.31.06-4.4.75-5.93 1.81a2.2 2.2 0 1 0-2.42 3.55c-.05.27-.07.55-.07.83 0 3.07 3.58 5.57 8 5.57s8-2.5 8-5.57c0-.28-.02-.55-.07-.83.6-.36 1-1.02 1-1.78zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm9.05 4.06c-1.05.95-2.62 1.43-4.05 1.43-1.43 0-3-.48-4.05-1.43a.4.4 0 0 1 .55-.58c.84.76 2.18 1.15 3.5 1.15s2.66-.39 3.5-1.15a.4.4 0 0 1 .55.58zM15.5 15a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"\/><\/svg><span class=\"ttd-share-label\">Reddit<\/span><\/a><a class=\"ttd-share-btn ttd-share-telegram\" href=\"https:\/\/t.me\/share\/url?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&#038;text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Telegram\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M21.95 4.36 18.5 20.5c-.26 1.16-.94 1.45-1.9.9l-5.27-3.88-2.54 2.45c-.28.28-.52.52-1.06.52l.38-5.36 9.78-8.83c.43-.38-.09-.6-.66-.22L5.18 13.45.97 12.12c-1.13-.35-1.15-1.13.24-1.67L20.5 2.92c.94-.35 1.76.22 1.45 1.44z\"\/><\/svg><span class=\"ttd-share-label\">Telegram<\/span><\/a><a class=\"ttd-share-btn ttd-share-sms\" href=\"sms:?&#038;body=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech%20%E2%80%94%20https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F%20%23nostr\" target=\"\" rel=\"noopener noreferrer\" aria-label=\"Share on SMS\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20 2H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l4 4 4-4h4a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM7 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"\/><\/svg><span class=\"ttd-share-label\">SMS<\/span><\/a><a class=\"ttd-share-btn ttd-share-copy\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Copy\" data-share=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg><span class=\"ttd-share-label\">Copy<\/span><\/a><span class=\"ttd-share-toast\" aria-live=\"polite\"><\/span><\/div>\n<div class=\"ttd-layout-with-toc\">\n<aside class=\"ttd-toc-sidebar\">\n<nav class=\"ttd-toc\" aria-label=\"Table of contents\"><button class=\"ttd-toc-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"ttd-toc-list\">On this page<span class=\"ttd-toc-chevron\">\u25be<\/span><\/button><\/p>\n<ol id=\"ttd-toc-list\" class=\"ttd-toc-list\">\n<li class=\"ttd-toc-h2\"><a href=\"#cite-this-tracker\">Cite this tracker<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-changed-recently\">What changed recently<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#quote-this\">Quote this<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#share-this-tracker\">Share this tracker<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#why-this-tracker-exists\">Why This Tracker Exists<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-short-version\">The Short Version<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#federal-bills-to-watch\">Federal Bills To Watch<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-compliance-incentive-problem\">The Compliance Incentive Problem<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#state-age-verification-laws-to-watch\">State Age Verification Laws To Watch<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#platform-responses-are-the-early-warning-system\">Platform Responses Are The Early Warning System<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#why-anonymous-and-pseudonymous-speech-matters\">Why Anonymous And Pseudonymous Speech Matters<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-big-tech-compliance-moat\">The Big Tech Compliance Moat<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#better-child-safety-without-id-checkpoints\">Better Child Safety Without ID Checkpoints<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-to-tell-congress\">What To Tell Congress<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-privacy-minded-readers-should-do-now\">What Privacy-Minded Readers Should Do Now<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#copy-paste-this\">Copy\/Paste This<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#related-thethriftydev-reading\">Related TheThriftyDev Reading<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#sources\">Sources<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#read-next\">Read next<\/a><\/li>\n<li class=\"ttd-toc-h3\"><a href=\"#the-2026-sovereign-stack-privacy-tools-that-actually-resist-surveillance\">The 2026 Sovereign Stack: Privacy Tools That Actually Resist Surveillance<\/a><\/li>\n<li class=\"ttd-toc-h3\"><a href=\"#eu-chat-control-2026-the-deadline-every-builder-should-know\">EU Chat Control 2026: The Deadline Every Builder Should Know<\/a><\/li>\n<li class=\"ttd-toc-h3\"><a href=\"#glm-5-2-vs-local-qwen-vs-opus-which-should-you-run-in-2026\">GLM-5.2 vs Local Qwen vs Opus: Which Should You Run in 2026?<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#about-thethriftydev\">About TheThriftyDev<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#by-thethriftydev\">By TheThriftyDev<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#leave-a-comment-cancel-reply\">Leave a comment Cancel reply<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#post-navigation\">Post navigation<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#recent-posts\">Recent Posts<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#recent-comments\">Recent Comments<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#archives\">Archives<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#categories\">Categories<\/a><\/li>\n<\/ol>\n<\/nav>\n<\/aside>\n<div class=\"ttd-post-body\">\n<p class=\"ttd-hub-breadcrumb\"><span class=\"ttd-hub-breadcrumb-label\">Part of<\/span> <a href=\"https:\/\/thethriftydev.com\/blog\/start-here\/\" rel=\"bookmark\">Start Here<\/a><\/p>\n<p><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>Age Verification Creep Tracker: <a href=\"https:\/\/thethriftydev.com\/blog\/kosa-age-verification-privacy-pseudonymous-speech\/\" class=\"ttd-autolink\">KOSA<\/a>, App Store ID Laws, and the Fight for Anonymous Speech &#8211; The Thrifty Dev<\/title><meta name=\"description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"><meta name=\"robots\" content=\"index, follow, max-snippet:160, max-video-preview:-1, max-image-preview:large\"\/><link rel=\"canonical\" href=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><meta property=\"og:locale\" content=\"en_US\"><meta property=\"og:type\" content=\"article\"><meta property=\"og:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\"><meta property=\"og:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"><meta property=\"og:url\" content=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><meta property=\"og:site_name\" content=\"The Thrifty Dev\"><meta property=\"article:tag\" content=\"age verification\"><meta property=\"article:tag\" content=\"anonymous speech\"><meta property=\"article:tag\" content=\"censorship resistance\"><meta property=\"article:tag\" content=\"digital identity\"><meta property=\"article:tag\" content=\"digital sovereignty\"><meta property=\"article:tag\" content=\"free speech\"><meta property=\"article:tag\" content=\"KOSA\"><meta property=\"article:tag\" content=\"privacy\"><meta property=\"article:section\" content=\"Blog\"><meta property=\"og:updated_time\" content=\"2026-06-21T14:28:57+00:00\"><meta property=\"og:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"><meta property=\"og:image:secure_url\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"><meta property=\"og:image:width\" content=\"1200\"><meta property=\"og:image:height\" content=\"630\"><meta property=\"og:image:alt\" content=\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\"><meta property=\"og:image:type\" content=\"image\/png\"><meta property=\"article:published_time\" content=\"2026-05-24T16:19:16+00:00\"><meta property=\"article:modified_time\" content=\"2026-06-21T14:28:57+00:00\"><meta name=\"twitter:card\" content=\"summary_large_image\"><meta name=\"twitter:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\"><meta name=\"twitter:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"><meta name=\"twitter:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"><meta name=\"twitter:label1\" content=\"Written by\"><meta name=\"twitter:data1\" content=\"TheThriftyDev\"><meta name=\"twitter:label2\" content=\"Time to read\"><meta name=\"twitter:data2\" content=\"12 minutes\"> <script type=\"application\/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\",\"name\":\"The Thrifty Dev\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/#website\",\"url\":\"https:\/\/thethriftydev.com\/blog\",\"name\":\"The Thrifty Dev\",\"publisher\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\",\"url\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\",\"url\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\",\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"datePublished\":\"2026-05-24T16:19:16+00:00\",\"dateModified\":\"2026-06-21T14:28:57+00:00\",\"isPartOf\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"name\":\"TheThriftyDev\",\"url\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\",\"url\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\",\"caption\":\"TheThriftyDev\",\"inLanguage\":\"en-US\"},\"sameAs\":[\"https:\/\/thethriftydev.com\/blog\",\"https:\/\/thethriftydev.com\/\",\"https:\/\/thethriftydev.com\/bleach-unlimited\/\",\"https:\/\/x.com\/TheThriftyDev\",\"https:\/\/njump.me\/npub12v62v4vyjaqv92qutxjz6jxfgjjvfcz5ay3tm5ke8x236nhnztrsmcxjp5\"],\"knowsAbout\":[\"Privacy and digital sovereignty\",\"AI agents and orchestration\",\"Self-hosted infrastructure\",\"Mesh networking and off-grid communication\",\"Workflow automation\",\"Local large language models\",\"Censorship resistance and Nostr\"]},{\"@type\":\"BlogPosting\",\"headline\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"datePublished\":\"2026-05-24T16:19:16+00:00\",\"dateModified\":\"2026-06-21T14:28:57+00:00\",\"articleSection\":\"Blog\",\"author\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\",\"name\":\"TheThriftyDev\"},\"publisher\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/#person\"},\"description\":\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\",\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech - The Thrifty Dev\",\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#richSnippet\",\"isPartOf\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\"},\"image\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/#webpage\"}}]}<\/script> <link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev \u00bb Feed\" href=\"https:\/\/thethriftydev.com\/blog\/feed\/\"><link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev \u00bb Comments Feed\" href=\"https:\/\/thethriftydev.com\/blog\/comments\/feed\/\"><link rel=\"alternate\" type=\"application\/rss+xml\" title=\"The Thrifty Dev \u00bb Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech Comments Feed\" href=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/feed\/\"><link rel=\"me\" href=\"https:\/\/thethriftydev.com\/\"><link rel=\"me\" href=\"https:\/\/x.com\/TheThriftyDev\"><link rel=\"me\" href=\"https:\/\/njump.me\/npub12v62v4vyjaqv92qutxjz6jxfgjjvfcz5ay3tm5ke8x236nhnztrsmcxjp5\"><link rel=\"alternate\" title=\"oEmbed (JSON)\" type=\"application\/json+oembed\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\"><link rel=\"alternate\" title=\"oEmbed (XML)\" type=\"text\/xml+oembed\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/oembed\/1.0\/embed?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&amp;format=xml\">\n<style id=\"ttd-blog-enh-css\">.ttd-meta-strip{display:flex;align-items:center;gap:.6em;font-size:.9em;color:var(--ttd-muted,#666);margin:0 0 1.2em;flex-wrap:wrap}.ttd-meta-sep{opacity:.6}.ttd-share-row{display:flex;flex-wrap:wrap;gap:.5em;align-items:center;margin:1em 0 1.5em;position:relative}.ttd-share-bottom{margin:2.5em 0 1.5em;padding-top:1.2em;border-top:1px solid var(--ttd-border,#e5e7eb)}.ttd-share-btn{display:inline-flex;align-items:center;gap:.4em;padding:.4em .75em;border-radius:6px;background:var(--ttd-chip-bg,#f3f4f6);color:var(--ttd-chip-fg,#111);text-decoration:none;font-size:.85em;line-height:1;transition:background .15s,transform .15s;border:1px solid #fff0}.ttd-share-btn:hover{background:var(--ttd-chip-hov,#e5e7eb);transform:translateY(-1px);text-decoration:none}.ttd-share-btn svg{width:14px;height:14px;flex:0 0 14px}.ttd-share-label{font-weight:500}.ttd-share-toast{position:absolute;right:0;top:calc(100% + .3em);background:#111;color:#fff;padding:.35em .7em;border-radius:4px;font-size:.78em;opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s;pointer-events:none}.ttd-share-toast.is-visible{opacity:1;transform:translateY(0)}@media (max-width:560px){.ttd-share-label{display:none}.ttd-share-btn{padding:.5em .6em}.ttd-share-btn svg{width:18px;height:18px;flex:0 0 18px}}.ttd-layout-with-toc{display:grid;grid-template-columns:minmax(0,1fr);gap:2em}@media (min-width:1024px){.ttd-layout-with-toc{grid-template-columns:220px minmax(0,1fr)}.ttd-toc-sidebar{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}.ttd-toc-toggle{display:none}.ttd-toc-list{display:block}}.ttd-toc{font-size:.9em;border-left:2px solid var(--ttd-border,#e5e7eb);padding-left:.9em;background:#fff0}.ttd-toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;font:inherit;background:var(--ttd-chip-bg,#f3f4f6);border:1px solid var(--ttd-border,#e5e7eb);border-radius:6px;padding:.6em .9em;cursor:pointer;margin:0 0 1em;font-weight:600;color:inherit}.ttd-toc-toggle[aria-expanded=true] .ttd-toc-chevron{transform:rotate(180deg)}.ttd-toc-chevron{transition:transform .2s}.ttd-toc-list{list-style:none;padding:0;margin:0;display:none}.ttd-toc-list.is-open{display:block}@media (min-width:1024px){.ttd-toc-list{display:block!important}}.ttd-toc-list li{margin:.35em 0;line-height:1.35}.ttd-toc-list a{color:var(--ttd-muted,#666);text-decoration:none;display:block;padding:.15em 0;border-left:2px solid #fff0;margin-left:-.9em;padding-left:.9em;transition:color .12s,border-color .12s}.ttd-toc-list a:hover{color:var(--ttd-fg,#111)}.ttd-toc-list li.is-active>a{color:var(--ttd-fg,#111);border-left-color:currentColor;font-weight:600}.ttd-toc-h3{padding-left:.9em;font-size:.92em}.ttd-read-next{margin:3em 0 1.5em;padding-top:1.5em;border-top:1px solid var(--ttd-border,#e5e7eb)}.ttd-rn-heading{margin:0 0 1em;font-size:1.4em}.ttd-rn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1em}.ttd-rn-card{display:block;border-radius:8px;overflow:hidden;border:1px solid rgb(0 255 65 \/ .35);background:#1a1a1a;color:#e5e7eb;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}.ttd-rn-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgb(0 0 0 \/ .4);border-color:rgb(0 255 65 \/ .7);text-decoration:none}.ttd-rn-img{aspect-ratio:16\/9;background-size:cover;background-position:center;background-color:#0f0f0f}.ttd-rn-img-placeholder{background-image:linear-gradient(135deg,#1a1a1a 0%,#262626 100%)}.ttd-rn-body{padding:.85em 1em 1em}.ttd-rn-title{margin:0 0 .35em;font-size:1.02em;line-height:1.3;color:#fff}.ttd-rn-excerpt{margin:0;font-size:.85em;color:silver;line-height:1.45}@media (prefers-color-scheme:dark){:root{--ttd-muted:#a3a3a3;--ttd-border:#2a2a2a;--ttd-chip-bg:#1f1f1f;--ttd-chip-hov:#2a2a2a;--ttd-chip-fg:#eee;--ttd-fg:#fafafa;--ttd-card-bg:#181818}}.ttd-nav-rss a,.ttd-nav-search a{display:inline-flex;align-items:center;gap:.4em}.ttd-nav-rss svg,.ttd-nav-search svg{width:16px;height:16px}.ttd-search-overlay{position:fixed;inset:0;background:rgb(0 0 0 \/ .55);display:flex;align-items:flex-start;justify-content:center;padding:14vh 1.2em 1.2em;z-index:99999}.ttd-search-overlay[hidden]{display:none}.ttd-search-form{display:flex;gap:.5em;width:min(640px,100%);background:var(--ttd-card-bg,#fff);padding:1em;border-radius:10px;box-shadow:0 12px 40px rgb(0 0 0 \/ .4);position:relative}.ttd-search-input{flex:1;font-size:1.1em;padding:.6em .8em;border:1px solid var(--ttd-border,#e5e7eb);border-radius:6px;background:#fff0;color:inherit}.ttd-search-submit{padding:.6em 1em;border:0;border-radius:6px;background:#111;color:#fff;cursor:pointer;font:inherit}.ttd-search-close{position:absolute;top:.4em;right:.6em;background:#fff0;border:0;font-size:1.6em;line-height:1;cursor:pointer;color:inherit;opacity:.7}.ttd-search-close:hover{opacity:1}body.wp-theme-twentytwentyone::after{content:none!important;display:none!important;animation:none!important}html body #matrix-rain{opacity:.7!important}#ttd-matrix-rain-static{position:fixed;inset:0;width:100vw;height:100vh;z-index:-2;pointer-events:none;opacity:.7}@media (prefers-reduced-motion:reduce){#ttd-matrix-rain-static{z-index:-1;opacity:.85}}<\/style>\n<style id=\"wp-img-auto-sizes-contain-inline-css\">img:is([sizes=auto i],[sizes^=\"auto,\" i]){contain-intrinsic-size:3000px 1500px}<\/style>\n<style id=\"wp-block-library-inline-css\">:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}<\/style>\n<style id=\"wp-block-archives-inline-css\">.wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block}<\/style>\n<style id=\"wp-block-categories-inline-css\">.wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%}<\/style>\n<style id=\"wp-block-heading-inline-css\">h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}<\/style>\n<style id=\"wp-block-latest-comments-inline-css\">ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-left:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit}<\/style>\n<style id=\"wp-block-latest-posts-inline-css\">.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}<\/style>\n<style id=\"wp-block-list-inline-css\">ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}<\/style>\n<style id=\"wp-block-paragraph-inline-css\">.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*=\"writing-mode:vertical-lr\"],p.has-text-align-right[style*=\"writing-mode:vertical-rl\"]{rotate:180deg}<\/style>\n<style id=\"wp-block-search-inline-css\">.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0%;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}<\/style>\n<style id=\"wp-block-search-theme-inline-css\">.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}<\/style>\n<style id=\"wp-block-group-inline-css\">.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}<\/style>\n<style id=\"wp-block-group-theme-inline-css\">:where(.wp-block-group.has-background){padding:1.25em 2.375em}<\/style>\n<style id=\"wp-block-table-inline-css\">.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}<\/style>\n<style id=\"wp-block-table-theme-inline-css\">.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}<\/style>\n<style id=\"classic-theme-styles-inline-css\">\/*! This file is auto-generated *\/\n.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}<\/style>\n<link data-optimized=\"1\" rel=\"stylesheet\" id=\"twenty-twenty-one-custom-color-overrides-css\" href=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/198c44f25bb8ddf4e3788b95434e927e.css?ver=10b18\" media=\"all\">\n<style id=\"global-styles-inline-css\">: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--color--dark-gray:#28303D;--wp--preset--color--gray:#39414D;--wp--preset--color--green:#D1E4DD;--wp--preset--color--blue:#D1DFE4;--wp--preset--color--purple:#D1D1E4;--wp--preset--color--red:#E4D1D1;--wp--preset--color--orange:#E4DAD1;--wp--preset--color--yellow:#EEEADD;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgb(255,105,0) 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%);--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--gradient--purple-to-yellow:linear-gradient(160deg, #D1D1E4 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-purple:linear-gradient(160deg, #EEEADD 0%, #D1D1E4 100%);--wp--preset--gradient--green-to-yellow:linear-gradient(160deg, #D1E4DD 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-green:linear-gradient(160deg, #EEEADD 0%, #D1E4DD 100%);--wp--preset--gradient--red-to-yellow:linear-gradient(160deg, #E4D1D1 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-red:linear-gradient(160deg, #EEEADD 0%, #E4D1D1 100%);--wp--preset--gradient--purple-to-red:linear-gradient(160deg, #D1D1E4 0%, #E4D1D1 100%);--wp--preset--gradient--red-to-purple:linear-gradient(160deg, #E4D1D1 0%, #D1D1E4 100%);--wp--preset--font-size--small:18px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:24px;--wp--preset--font-size--x-large:42px;--wp--preset--font-size--extra-small:16px;--wp--preset--font-size--normal:20px;--wp--preset--font-size--extra-large:40px;--wp--preset--font-size--huge:96px;--wp--preset--font-size--gigantic:144px;--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp:6px 6px 0px rgb(0, 0, 0)}:where(body){margin:0}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.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}body{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}:root :where(.wp-element-button,.wp-block-button__link){background-color:#32373c;border-width:0;color:#fff;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-top:calc(0.667em + 2px);padding-right:calc(1.333em + 2px);padding-bottom:calc(0.667em + 2px);padding-left:calc(1.333em + 2px);text-decoration:none;text-transform:inherit}.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-dark-gray-color{color:var(--wp--preset--color--dark-gray)!important}.has-gray-color{color:var(--wp--preset--color--gray)!important}.has-green-color{color:var(--wp--preset--color--green)!important}.has-blue-color{color:var(--wp--preset--color--blue)!important}.has-purple-color{color:var(--wp--preset--color--purple)!important}.has-red-color{color:var(--wp--preset--color--red)!important}.has-orange-color{color:var(--wp--preset--color--orange)!important}.has-yellow-color{color:var(--wp--preset--color--yellow)!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-dark-gray-background-color{background-color:var(--wp--preset--color--dark-gray)!important}.has-gray-background-color{background-color:var(--wp--preset--color--gray)!important}.has-green-background-color{background-color:var(--wp--preset--color--green)!important}.has-blue-background-color{background-color:var(--wp--preset--color--blue)!important}.has-purple-background-color{background-color:var(--wp--preset--color--purple)!important}.has-red-background-color{background-color:var(--wp--preset--color--red)!important}.has-orange-background-color{background-color:var(--wp--preset--color--orange)!important}.has-yellow-background-color{background-color:var(--wp--preset--color--yellow)!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-dark-gray-border-color{border-color:var(--wp--preset--color--dark-gray)!important}.has-gray-border-color{border-color:var(--wp--preset--color--gray)!important}.has-green-border-color{border-color:var(--wp--preset--color--green)!important}.has-blue-border-color{border-color:var(--wp--preset--color--blue)!important}.has-purple-border-color{border-color:var(--wp--preset--color--purple)!important}.has-red-border-color{border-color:var(--wp--preset--color--red)!important}.has-orange-border-color{border-color:var(--wp--preset--color--orange)!important}.has-yellow-border-color{border-color:var(--wp--preset--color--yellow)!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}.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-purple-to-yellow-gradient-background{background:var(--wp--preset--gradient--purple-to-yellow)!important}.has-yellow-to-purple-gradient-background{background:var(--wp--preset--gradient--yellow-to-purple)!important}.has-green-to-yellow-gradient-background{background:var(--wp--preset--gradient--green-to-yellow)!important}.has-yellow-to-green-gradient-background{background:var(--wp--preset--gradient--yellow-to-green)!important}.has-red-to-yellow-gradient-background{background:var(--wp--preset--gradient--red-to-yellow)!important}.has-yellow-to-red-gradient-background{background:var(--wp--preset--gradient--yellow-to-red)!important}.has-purple-to-red-gradient-background{background:var(--wp--preset--gradient--purple-to-red)!important}.has-red-to-purple-gradient-background{background:var(--wp--preset--gradient--red-to-purple)!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}.has-extra-small-font-size{font-size:var(--wp--preset--font-size--extra-small)!important}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)!important}.has-extra-large-font-size{font-size:var(--wp--preset--font-size--extra-large)!important}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)!important}.has-gigantic-font-size{font-size:var(--wp--preset--font-size--gigantic)!important}<\/style>\n<style id=\"ttd-abn-inline-css\">.ttd-abn{box-sizing:border-box;background:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:18px;padding:20px;box-shadow:0 18px 50px rgb(0 0 0 \/ .35);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.ttd-abn strong{display:block;font-size:22px;line-height:1.15;margin:4px 0 8px}.ttd-abn p{color:#cbd5e1;margin:0 0 14px}.ttd-abn-kicker{color:#35d3ff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.ttd-abn-form{display:flex;gap:8px;flex-wrap:wrap}.ttd-abn input[type=email]{flex:1;min-width:190px;padding:12px 14px;border-radius:12px;border:1px solid #475569;background:#020617;color:#fff}.ttd-abn button[type=submit]{padding:12px 16px;border:0;border-radius:12px;background:#34d399;color:#052e2b;font-weight:800;cursor:pointer}.ttd-abn small{display:block;color:#94a3b8;margin-top:10px}.ttd-abn-result{margin-top:10px;color:#34d399;font-weight:700}.ttd-abn-close{position:absolute;right:10px;top:8px;background:#fff0;border:0;color:#94a3b8;font-size:24px;cursor:pointer}.ttd-abn-inline{margin:28px 0}.ttd-abn-sticky{position:fixed;right:18px;bottom:18px;z-index:99999;max-width:390px}.ttd-abn-sticky.ttd-abn-hidden{display:none}@media(max-width:700px){.ttd-abn-sticky{left:10px;right:10px;bottom:10px;max-width:none}.ttd-abn-form{display:block}.ttd-abn input[type=email],.ttd-abn button[type=submit]{width:100%;margin-top:8px}}<\/style>\n<link data-optimized=\"1\" rel=\"stylesheet\" id=\"hostinger-reach-subscription-block-css\" href=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/5111b8d4c914c6e8aab32635aa025705.css?ver=1c5fc\" media=\"all\"><link data-optimized=\"1\" rel=\"stylesheet\" id=\"twenty-twenty-one-style-css\" href=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/a35f68986c6afa750cbab8f90a015e05.css?ver=e360c\" media=\"all\"><link data-optimized=\"1\" rel=\"stylesheet\" id=\"twenty-twenty-one-print-style-css\" href=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/06fe04cd378b0c2c6657542ea198977e.css?ver=729c1\" media=\"print\"><link data-optimized=\"1\" rel=\"stylesheet\" id=\"newsletter-css\" href=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/css\/e8d47115c9c410ea17ddc440330fd392.css?ver=90b3f\" media=\"all\"><link rel=\"https:\/\/api.w.org\/\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/\"><link rel=\"alternate\" title=\"JSON\" type=\"application\/json\" href=\"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts\/622\"><link rel=\"EditURI\" type=\"application\/rsd+xml\" title=\"RSD\" href=\"https:\/\/thethriftydev.com\/blog\/xmlrpc.php?rsd\"><meta name=\"generator\" content=\"WordPress 7.0\"><link rel=\"shortlink\" href=\"https:\/\/thethriftydev.com\/blog\/?p=622\"><link rel=\"pingback\" href=\"https:\/\/thethriftydev.com\/blog\/xmlrpc.php\"><canvas id=\"matrix-rain\" style=\"position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.18;\"><\/canvas><script data-optimized=\"1\" id=\"ttd-continuous-matrix-rain\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdHJpeC1yYWluIik7aWYoIWMpcmV0dXJuO3ZhciByZWR1Y2U9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7aWYocmVkdWNlKXtjLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3JldHVybn0KdmFyIGN0eD1jLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITB9KTt2YXIgY2hhcnM9IuOCouOCoeOCq+OCteOCv+ODiuODj+ODnuODpOODo+ODqeODr+OCrOOCtuODgOODkOODkeOCpOOCo+OCreOCt+ODgeODi+ODkuODn+ODquODsOOCruOCuOODguODk+ODlOOCpuOCpeOCr+OCueODhOODjOODleODoOODpuODpeODq+OCsOOCuuODluODheODl+OCqOOCp+OCseOCu+ODhuODjeODmOODoeODrOODseOCsuOCvOODh+ODmeODmuOCquOCqeOCs+OCveODiOODjuODm+ODouODqOODp+ODreODsuOCtOOCvuODieODnOODneODtOODg+ODszAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuc3BsaXQoIiIpO3ZhciBmcz0xOCxnYXA9MSxjb2xzPTAscm93cz0wLGNvbHVtbnM9W10sbGFzdD0wO2Z1bmN0aW9uIHJhbmRDaGFyKCl7cmV0dXJuIGNoYXJzWyhNYXRoLnJhbmRvbSgpKmNoYXJzLmxlbmd0aCl8MF19CmZ1bmN0aW9uIG1ha2VDb2x1bW4oaSxvbGQpe3ZhciBnbHlwaHM9b2xkJiZvbGQuZ2x5cGhzP29sZC5nbHlwaHM6W107dmFyIG5lZWRlZD1yb3dzKzM7d2hpbGUoZ2x5cGhzLmxlbmd0aDxuZWVkZWQpZ2x5cGhzLnB1c2gocmFuZENoYXIoKSk7aWYoZ2x5cGhzLmxlbmd0aD5uZWVkZWQpZ2x5cGhzLmxlbmd0aD1uZWVkZWQ7cmV0dXJue29mZnNldDoob2xkJiZ0eXBlb2Ygb2xkLm9mZnNldD09PSJudW1iZXIiKT9vbGQub2Zmc2V0Ok1hdGgucmFuZG9tKCkqZnMsc3BlZWQ6KG9sZCYmb2xkLnNwZWVkKXx8MjgrTWF0aC5yYW5kb20oKSozMixnbHlwaHM6Z2x5cGhzLHRpY2s6MH19CmZ1bmN0aW9uIHJlc2l6ZSgpe3ZhciBkcHI9TWF0aC5tYXgoMSxNYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSwyKSk7dmFyIHc9d2luZG93LmlubmVyV2lkdGgsaD13aW5kb3cuaW5uZXJIZWlnaHQ7Yy5zdHlsZS53aWR0aD13KyJweCI7Yy5zdHlsZS5oZWlnaHQ9aCsicHgiO2Mud2lkdGg9TWF0aC5jZWlsKHcqZHByKTtjLmhlaWdodD1NYXRoLmNlaWwoaCpkcHIpO2N0eC5zZXRUcmFuc2Zvcm0oZHByLDAsMCxkcHIsMCwwKTtjb2xzPU1hdGguY2VpbCh3LyhmcytnYXApKTtyb3dzPU1hdGguY2VpbChoL2ZzKSszO3ZhciBvbGQ9Y29sdW1ucztjb2x1bW5zPVtdO2Zvcih2YXIgaT0wO2k8Y29scztpKyspY29sdW1uc1tpXT1tYWtlQ29sdW1uKGksb2xkW2ldKTtjdHguY2xlYXJSZWN0KDAsMCx3LGgpfQpmdW5jdGlvbiBkcmF3KHRzKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhdyk7aWYoIWxhc3QpbGFzdD10cztpZih0cy1sYXN0PDMzKXJldHVybjt2YXIgZHQ9TWF0aC5taW4oMC4wNSwodHMtbGFzdCkvMTAwMCk7bGFzdD10czt2YXIgdz13aW5kb3cuaW5uZXJXaWR0aCxoPXdpbmRvdy5pbm5lckhlaWdodDtjdHguZmlsbFN0eWxlPSJyZ2JhKDAsMCwwLDAuMjIpIjtjdHguZmlsbFJlY3QoMCwwLHcsaCk7Y3R4LmZvbnQ9ZnMrInB4IG1vbm9zcGFjZSI7Y3R4LnRleHRCYXNlbGluZT0idG9wIjtjdHguc2hhZG93Qmx1cj0wO2Zvcih2YXIgaT0wO2k8Y29scztpKyspe3ZhciBjb2w9Y29sdW1uc1tpXTtjb2wub2Zmc2V0PShjb2wub2Zmc2V0K2NvbC5zcGVlZCpkdCklZnM7Y29sLnRpY2srPWR0O2lmKGNvbC50aWNrPjAuMTYpe2NvbC50aWNrPTA7Y29sLmdseXBocy51bnNoaWZ0KHJhbmRDaGFyKCkpO2NvbC5nbHlwaHMubGVuZ3RoPXJvd3MrM30KdmFyIHg9aSooZnMrZ2FwKTtmb3IodmFyIHI9LTE7cjxyb3dzO3IrKyl7dmFyIHk9cipmcytjb2wub2Zmc2V0LWZzO2lmKHk8LWZzfHx5PmgpY29udGludWU7dmFyIGdseXBoPWNvbC5nbHlwaHNbKHIrMSklY29sLmdseXBocy5sZW5ndGhdO3ZhciBwdWxzZT0ocitNYXRoLmZsb29yKGNvbC5vZmZzZXQvZnMpKSU5PT09MDtjdHguZmlsbFN0eWxlPXB1bHNlPyJyZ2JhKDE1MCwyNTUsMTcwLC43MikiOiJyZ2JhKDAsMjU1LDY1LC4zOCkiO2N0eC5maWxsVGV4dChnbHlwaCx4LHkpfX19CnJlc2l6ZSgpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJlc2l6ZSx7cGFzc2l2ZTohMH0pO3JlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3KX0pKCk=\" defer><\/script><br \/>\n<style>body{background:transparent!important;color:#c0c0c0!important}.site{background:rgb(10 10 10 \/ .85)!important}#page{background:transparent!important}.site-content{background:transparent!important}.entry-content{background:transparent!important}article.post,.hentry{background:rgb(5 5 5 \/ .9)!important;border-left:3px solid #00ff41!important;border-radius:4px!important;margin-bottom:20px!important;padding:15px!important}.entry-title,.entry-title a{color:#00ff41!important;text-shadow:0 0 7px rgb(0 255 65 \/ .72)!important;line-height:1.18!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:auto!important}h1.entry-title,.singular .entry-title{font-size:clamp(1.65rem, 5vw, 2.7rem)!important;letter-spacing:-0.025em!important;max-width:18ch!important}h2.entry-title,.blog .entry-title,.archive .entry-title{font-size:clamp(1.12rem, 3.6vw, 1.72rem)!important;max-width:28ch!important}.entry-header{max-width:100%!important}.site-title,.site-title a{color:#00ff41!important}.site-description{color:#008f11!important}.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6{color:#00ff41!important}.main-navigation a{color:#008f11!important}.main-navigation a:hover{color:#00ff41!important}.entry-content>h1:first-child{display:none!important}.post-thumbnail{margin:0 0 15px 0!important}.post-thumbnail img,.wp-post-image,.attachment-post-thumbnail{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:unset!important}a{color:#00ff41!important}a:hover{color:#66ff8a!important;text-shadow:none!important}article.post,.hentry,.entry-title,.entry-title a,.post-thumbnail img,.wp-post-image{transform:none!important;transition:color .16s ease,border-color .16s ease,background-color .16s ease!important}article.post:hover,.hentry:hover,.post-thumbnail:hover img,.wp-post-image:hover{transform:none!important;filter:none!important}#matrix-rain{opacity:.18!important;mix-blend-mode:normal!important;filter:none!important}<\/style>\n<style>figcaption,.wp-caption-text,.wp-element-caption,.wp-block-image figcaption,.attachment-caption{display:none!important}<\/style>\n<p><meta property=\"og:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\"><meta property=\"og:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"><meta property=\"og:url\" content=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><meta property=\"og:type\" content=\"article\"><meta property=\"og:site_name\" content=\"The Thrifty Dev\"><meta property=\"og:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"><meta property=\"og:image:width\" content=\"1200\"><meta property=\"og:image:height\" content=\"630\"><meta name=\"twitter:card\" content=\"summary_large_image\"><meta name=\"twitter:site\" content=\"@TheThriftyDev\"><meta name=\"twitter:title\" content=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\"><meta name=\"twitter:description\" content=\"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\"><meta name=\"twitter:image\" content=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\"> <script type=\"application\/ld+json\" id=\"ttd-breadcrumb-schema\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thethriftydev.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start Here\",\"item\":\"https:\/\/thethriftydev.com\/blog\/start-here\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\",\"item\":\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"}]}<\/script> <\/p>\n<style id=\"ttd-blog-polish-css\">.ttd-topic-hubs,.ttd-author-trust{box-sizing:border-box;max-width:var(--responsive--aligndefault-width,960px);margin:1.5rem auto 2rem;padding:1rem;border:1px solid rgb(0 255 65 \/ .35);border-left:3px solid #00ff41;border-radius:14px;background:rgb(0 0 0 \/ .52);color:#e5e7eb}.ttd-hub-breadcrumb{display:inline-flex;align-items:baseline;gap:.35em;margin:0 0 1.5em;padding:.35em .75em;font-size:.85em;color:#d1d5db;border:1px solid rgb(0 255 65 \/ .25);border-left:3px solid #00ff41;border-radius:6px;background:rgb(0 0 0 \/ .4)}.ttd-hub-breadcrumb-label{opacity:.7}.ttd-hub-breadcrumb a{color:#00ff41;font-weight:600;text-decoration:none}.ttd-hub-breadcrumb a:hover{text-decoration:underline}a.ttd-autolink{border-bottom:1px dotted rgb(108 255 179 \/ .55)}a.ttd-autolink:hover{border-bottom-style:solid}.ttd-topic-hubs h2,.ttd-topic-hubs h3,.ttd-author-trust h2{color:#00ff41;margin-top:0}.ttd-topic-hubs__intro,.ttd-author-trust p{color:#d1d5db;line-height:1.65}.ttd-topic-hubs__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.ttd-topic-hub-group ul{list-style:none;margin:0;padding:0}.ttd-topic-hub-group li{margin:.75rem 0;padding:.75rem;border:1px solid rgb(0 255 65 \/ .18);border-radius:12px;background:rgb(255 255 255 \/ .035)}.ttd-topic-hub-group a,.ttd-topic-hubs__cta a,.ttd-author-trust a{color:#67e8f9;font-weight:800;overflow-wrap:anywhere}.ttd-topic-hub-group span{display:block;margin-top:.25rem;color:#cbd5e1;font-size:.92rem;line-height:1.5}.author-bio{display:none!important}#toc_container{display:block!important;margin:1.5rem 0 2rem!important;padding:1rem 1.1rem!important;border:1px solid rgb(0 255 65 \/ .35)!important;border-left:3px solid #00ff41!important;border-radius:14px!important;background:rgb(0 0 0 \/ .45)!important;max-width:100%!important;box-sizing:border-box!important;overflow-wrap:anywhere!important}#toc_container .toc_title{margin:0 0 .75rem!important;color:#00ff41!important;font-weight:800!important}#toc_container ul,#toc_container li{display:list-item!important;list-style-position:outside!important;line-height:1.55!important}#toc_container ul{margin:.35rem 0 .35rem 1.2rem!important;padding-left:1rem!important}#toc_container li{margin:.25rem 0!important}#toc_container li ul{margin-top:.35rem!important}#toc_container a{display:inline!important;overflow-wrap:anywhere}@media (max-width:640px){.ttd-topic-hubs,.ttd-author-trust{margin-left:.75rem;margin-right:.75rem}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}}<\/style>\n<style id=\"wp-custom-css\">@media only screen and (max-width:768px){body{font-size:14px!important;padding:0!important}.site-header{padding:10px!important;text-align:center!important}.site-title a{font-size:1.4rem!important;text-shadow:0 0 6px #00ff41!important}.site-description{font-size:.75rem!important}.main-navigation ul{flex-direction:column!important;align-items:center!important;gap:8px!important}.main-navigation li{margin:0!important}.main-navigation a{font-size:.9rem!important;padding:6px 12px!important}article.post,.hentry{padding:15px!important;margin-bottom:15px!important;border-left-width:2px!important}.entry-title a{font-size:1.2rem!important}.entry-content h1{font-size:1.5rem!important}.entry-content h2{font-size:1.25rem!important}.entry-content h3{font-size:1.1rem!important}.entry-content p{font-size:14px!important;line-height:1.7!important}.entry-content ul,.entry-content ol{padding-left:1.2em!important}.entry-content li{font-size:14px!important}.wp-block-image img{width:100%!important;height:auto!important;border-radius:4px!important}.wp-block-image{margin:15px 0!important}table{font-size:12px!important;display:block!important;overflow-x:auto!important;white-space:nowrap!important}th,td{padding:6px!important}.site-footer{padding:15px!important;text-align:center!important}.site-footer *{font-size:.7rem!important}.page-content,.entry-content{padding:0 5px!important}#page,.site-content{padding:0!important;margin:0!important}.has-global-padding{padding:10px!important}blockquote{padding:.8em 1em!important;margin:10px 0!important}pre{font-size:12px!important;padding:10px!important;overflow-x:auto!important}code{font-size:12px!important}}@media only screen and (max-width:480px){.site-title a{font-size:1.1rem!important}.entry-content h1{font-size:1.3rem!important}.entry-content h2{font-size:1.1rem!important}.entry-content p,.entry-content li{font-size:13px!important}article.post,.hentry{padding:10px!important}.wp-block-image img{border-radius:2px!important}}@media screen and (max-width:782px){.entry-content table,.site-main table,article table,.wp-block-table table{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;white-space:normal!important;table-layout:auto!important;border-collapse:collapse!important}.entry-content table th,.entry-content table td,.site-main table th,.site-main table td,article table th,article table td,.wp-block-table table th,.wp-block-table table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;min-width:9rem!important;max-width:18rem!important;vertical-align:top!important}.entry-content .wp-block-table,.site-main .wp-block-table,article .wp-block-table{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.entry-content table::after,.site-main table::after,article table::after,.wp-block-table table::after{content:\"Swipe table \u00e2\u0086\u0092\";display:block;font-size:.78rem;opacity:.75;padding:.4rem 0}}:root{--ttd-bg:#050a07;--ttd-bg2:#07130d;--ttd-panel:rgba(113,255,173,.07);--ttd-panel2:rgba(113,255,173,.12);--ttd-line:rgba(113,255,173,.28);--ttd-text:#e9ffe9;--ttd-muted:#9ad5aa;--ttd-cyan:#6cffb3;--ttd-lime:#93ffbf}body.wp-theme-twentytwentyone{color:var(--ttd-text)!important;background:radial-gradient(1000px 700px at 5% -15%,rgb(108 255 179 \/ .13),transparent 60%),radial-gradient(900px 700px at 95% 2%,rgb(147 255 191 \/ .10),transparent 60%),linear-gradient(160deg,var(--ttd-bg),var(--ttd-bg2) 55%,#0d1f15)!important}body.wp-theme-twentytwentyone::before{content:\"\";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.18;background-image:linear-gradient(rgb(108 255 179 \/ .16) 1px,transparent 1px),linear-gradient(90deg,rgb(108 255 179 \/ .16) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle at 50% 30%,black 34%,transparent 88%)}.site-header,.site-main,.widget-area,.site-footer{background:transparent!important}.site-title,.site-title a,.site-description,.entry-title,.entry-title a,.page-title,.widget-title{color:var(--ttd-text)!important}.site-title,.entry-title,h1,h2,h3,h4{font-family:\"JetBrains Mono\",\"IBM Plex Mono\",ui-monospace,SFMono-Regular,Menlo,monospace!important;letter-spacing:-.02em}.site-title a,.site-title{text-shadow:0 0 10px rgb(108 255 179 \/ .34)!important}.site-description,.entry-content,.entry-summary,.entry-content p,.entry-content li,.widget,.site-info,.posted-on,.byline,.cat-links,.tags-links{color:var(--ttd-muted)!important}a,.entry-content a,.site-footer a,.site-header a{color:var(--ttd-cyan)!important;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover,.entry-content a:hover{color:var(--ttd-lime)!important}article.post,article.page,.hentry,.widget,.comments-area,.page-header,.archive-description,.entry-content .wp-block-group{border:1px solid var(--ttd-line)!important;border-radius:22px!important;background:linear-gradient(140deg,rgb(255 255 255 \/ .08),rgb(113 255 173 \/ .045))!important;box-shadow:0 18px 45px rgb(0 0 0 \/ .32)!important;padding:clamp(16px, 3vw, 28px)!important}.entry-content img,.post-thumbnail img,.wp-block-image img{border-radius:16px!important;border:1px solid var(--ttd-line)!important;box-shadow:0 12px 32px rgb(0 0 0 \/ .35)!important}.entry-content blockquote,.entry-content pre,.entry-content code,.entry-content table{border-color:var(--ttd-line)!important;background:rgb(0 0 0 \/ .28)!important;color:var(--ttd-text)!important}.entry-content th{color:var(--ttd-text)!important;background:rgb(113 255 173 \/ .12)!important}.entry-content td{color:#d7ffe3!important}input,textarea,select{background:rgb(0 0 0 \/ .32)!important;color:var(--ttd-text)!important;border-color:var(--ttd-line)!important}button,.button,input[type=\"submit\"],.wp-block-button__link{border-radius:999px!important;border:1px solid rgb(113 255 173 \/ .65)!important;background:linear-gradient(115deg,rgb(113 255 173 \/ .28),rgb(0 0 0 \/ .25))!important;color:var(--ttd-text)!important;font-weight:800!important}.site-footer{color:#8fa4d3!important}@media (min-width:782px){.site-header,.site-main,.widget-area,.site-footer{max-width:1080px!important;margin-left:auto!important;margin-right:auto!important}}body.wp-theme-twentytwentyone{position:relative!important;overflow-x:hidden!important}body.wp-theme-twentytwentyone::after{content:\"0101101001011010010110100101101001011010010110100101101001011010\\A 1010010110100101101001011010010110100101101001011010010110\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\\A 0101101001011010010110100101101001011010010110100101101\\A 1010010110100101101001011010010110100101101001011010010\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\\A 0101101001011010010110100101101001011010010110100101101\\A 1010010110100101101001011010010110100101101001011010010\\A 0010110100101101001011010010110100101101001011010010110\\A 1101001011010010110100101101001011010010110100101101001\";position:fixed!important;inset:-40vh 0 0 0!important;z-index:0!important;pointer-events:none!important;white-space:pre!important;overflow:hidden!important;font-family:\"JetBrains Mono\",\"IBM Plex Mono\",ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:15px!important;line-height:1.45!important;letter-spacing:.18em!important;color:rgb(108 255 179 \/ .34)!important;text-shadow:0 0 10px rgb(108 255 179 \/ .42)!important;opacity:.34!important;mix-blend-mode:screen!important;animation:ttdMatrixRain 18s linear infinite!important}@keyframes ttdMatrixRain{from{transform:translateY(-18vh)}to{transform:translateY(42vh)}}#page.site{position:relative!important;z-index:1!important}.site-header,.site-main,.widget-area,.site-footer{position:relative!important;z-index:1!important}article.post,article.page,.hentry,.widget,.comments-area,.page-header,.archive-description,.entry-content .wp-block-group{background:linear-gradient(140deg,rgb(0 2 1 \/ .90),rgb(0 2 1 \/ .86))!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}.entry-content,.entry-summary,.entry-content p,.entry-content li,.entry-content td,.entry-content th{text-shadow:0 2px 12px rgb(0 0 0 \/ .95)!important}.site-header,.site-footer,.primary-navigation>div>.menu-wrapper,.primary-navigation .primary-menu-container,.menu-button-container,#masthead{background:rgb(0 2 1 \/ .90)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;border-radius:18px!important}@media (prefers-reduced-motion:reduce){body.wp-theme-twentytwentyone::after{animation:none!important;opacity:.12!important}}.entry-content pre,.entry-content pre code,article pre,article pre code,.wp-block-code,.wp-block-code code,.wp-block-preformatted{white-space:pre-wrap!important;word-wrap:break-word!important;overflow-wrap:anywhere!important;max-width:100%;box-sizing:border-box;overflow-x:auto}.entry-content code,article code{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.entry-content table,article table,.wp-block-table table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse}.entry-content table th,.entry-content table td,article table th,article table td{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.ttd-layout-with-toc p,.ttd-layout-with-toc ul,.ttd-layout-with-toc ol,.ttd-layout-with-toc blockquote,.entry-content>p,.entry-content>ul,.entry-content>ol,.entry-content>blockquote{margin-bottom:1.4em!important;line-height:1.7!important}.ttd-layout-with-toc li,.entry-content li{margin-bottom:0.35em!important;line-height:1.65!important}.ttd-layout-with-toc h2,.ttd-layout-with-toc h3,.ttd-layout-with-toc h4,.ttd-layout-with-toc h5,.ttd-layout-with-toc h6,.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-top:2.2em!important;margin-bottom:0.65em!important;line-height:1.3!important}.ttd-layout-with-toc h2+p,.ttd-layout-with-toc h3+p,.ttd-layout-with-toc h4+p,.entry-content>h2+p,.entry-content>h3+p,.entry-content>h4+p{margin-top:0.4em!important}.entry-content>*:last-child{margin-bottom:0!important}<\/style>\n<p><\/head><body class=\"wp-singular post-template-default single single-post postid-622 single-format-standard wp-embed-responsive wp-theme-twentytwentyone is-light-theme no-js singular\"><\/p>\n<div id=\"ttd-search-overlay\" class=\"ttd-search-overlay\" hidden role=\"dialog\" aria-modal=\"true\" aria-label=\"Site search\">\n<form class=\"ttd-search-form\" role=\"search\" method=\"get\" action=\"https:\/\/thethriftydev.com\/blog\/\">\n<label for=\"ttd-search-input\" class=\"screen-reader-text\">Search<\/label><br \/>\n<input id=\"ttd-search-input\" class=\"ttd-search-input\" type=\"search\" name=\"s\" placeholder=\"Search the blog\u2026\" autocomplete=\"off\"><br \/>\n<button type=\"submit\" class=\"ttd-search-submit\">Search<\/button><br \/>\n<button type=\"button\" class=\"ttd-search-close\" aria-label=\"Close search\">\u00d7<\/button><\/form>\n<\/div>\n<div id=\"page\" class=\"site\">\n<a class=\"skip-link screen-reader-text\" href=\"#content\"><br \/>\nSkip to content\t<\/a><\/p>\n<header id=\"masthead\" class=\"site-header has-title-and-tagline\">\n<div class=\"site-branding\">\n<p class=\"site-title\"><a href=\"https:\/\/thethriftydev.com\/blog\/\" rel=\"home\">The Thrifty Dev<\/a><\/p>\n<p class=\"site-description\">\nSovereign builder field notes for AI, privacy, automation, and digital rights.<\/p>\n<\/div>\n<\/header>\n<div id=\"content\" class=\"site-content\">\n<div id=\"primary\" class=\"content-area\"><main id=\"main\" class=\"site-main\"><\/p>\n<article id=\"post-622\" class=\"post-622 post type-post status-publish format-standard has-post-thumbnail hentry category-blog tag-age-verification tag-anonymous-speech tag-censorship-resistance tag-digital-identity tag-digital-sovereignty tag-free-speech tag-kosa tag-privacy entry\">\n<header class=\"entry-header alignwide\">\n<h1 class=\"entry-title\">Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech<\/h1>\n<figure class=\"post-thumbnail\">\n<img width=\"1200\" height=\"630\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"Age Verification Creep Tracker: When safety becomes an ID checkpoint\" decoding=\"async\" fetchpriority=\"high\" srcset=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png 1200w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-300x158.png 300w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-1024x538.png 1024w, https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1-768x403.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" style=\"width:100%;height:52.5%;max-width:1200px;\"><\/figure>\n<\/header>\n<div class=\"entry-content\">\n<p class=\"ttd-meta-strip\"><span class=\"ttd-meta-read\">11 min read<\/span><span class=\"ttd-meta-sep\">\u00b7<\/span><span class=\"ttd-meta-date\">Updated Jun 21, 2026<\/span><\/p>\n<div class=\"ttd-share-row ttd-share-top\" role=\"group\" aria-label=\"Share this post\"><a class=\"ttd-share-btn ttd-share-nostr\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Nostr\" data-share=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech \u2014 https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/ #nostr\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.6 10.42c0 2.07-.84 3.94-2.2 5.3-1.36 1.35-3.23 2.19-5.3 2.19h-.6v3.51c0 .43-.34.78-.77.78H6.92a.78.78 0 0 1-.78-.78V10.42C6.14 6.6 9.24 3.5 13.06 3.5s5.54 3.1 5.54 6.92zm-3.6 0c0-1.83-1.05-2.92-2.94-2.92-1.9 0-2.94 1.09-2.94 2.92v3.74h.6c1.07 0 1.99-.4 2.72-1.12.74-.74 1.16-1.66 1.16-2.62z\"><\/path><\/svg><span class=\"ttd-share-label\">Nostr<\/span><\/a><a class=\"ttd-share-btn ttd-share-x\" href=\"https:\/\/twitter.com\/intent\/tweet?text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech&amp;url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on X\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.244 2H21l-6.51 7.44L22.5 22h-7.05l-5.52-7.06L3.6 22H.84l6.97-7.96L1.5 2h7.2l4.98 6.4L18.244 2zm-1.23 18.2h1.94L7.06 3.7H5.02l11.99 16.5z\"><\/path><\/svg><span class=\"ttd-share-label\">X<\/span><\/a><a class=\"ttd-share-btn ttd-share-facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Facebook\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.9 3.78-3.9 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z\"><\/path><\/svg><span class=\"ttd-share-label\">Facebook<\/span><\/a><a class=\"ttd-share-btn ttd-share-reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&amp;title=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Reddit\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12.06c0-1.21-.99-2.2-2.2-2.2a2.2 2.2 0 0 0-1.5.59c-1.5-1.05-3.55-1.73-5.83-1.81l1.01-4.72 3.3.7a1.55 1.55 0 1 0 .14-.6l-3.69-.79a.3.3 0 0 0-.36.23l-1.13 5.18c-2.31.06-4.4.75-5.93 1.81a2.2 2.2 0 1 0-2.42 3.55c-.05.27-.07.55-.07.83 0 3.07 3.58 5.57 8 5.57s8-2.5 8-5.57c0-.28-.02-.55-.07-.83.6-.36 1-1.02 1-1.78zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm9.05 4.06c-1.05.95-2.62 1.43-4.05 1.43-1.43 0-3-.48-4.05-1.43a.4.4 0 0 1 .55-.58c.84.76 2.18 1.15 3.5 1.15s2.66-.39 3.5-1.15a.4.4 0 0 1 .55.58zM15.5 15a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"><\/path><\/svg><span class=\"ttd-share-label\">Reddit<\/span><\/a><a class=\"ttd-share-btn ttd-share-telegram\" href=\"https:\/\/t.me\/share\/url?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&amp;text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Telegram\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M21.95 4.36 18.5 20.5c-.26 1.16-.94 1.45-1.9.9l-5.27-3.88-2.54 2.45c-.28.28-.52.52-1.06.52l.38-5.36 9.78-8.83c.43-.38-.09-.6-.66-.22L5.18 13.45.97 12.12c-1.13-.35-1.15-1.13.24-1.67L20.5 2.92c.94-.35 1.76.22 1.45 1.44z\"><\/path><\/svg><span class=\"ttd-share-label\">Telegram<\/span><\/a><a class=\"ttd-share-btn ttd-share-sms\" href=\"sms:?&amp;body=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech%20%E2%80%94%20https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F%20%23nostr\" target=\"\" rel=\"noopener noreferrer\" aria-label=\"Share on SMS\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20 2H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l4 4 4-4h4a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM7 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"><\/path><\/svg><span class=\"ttd-share-label\">SMS<\/span><\/a><a class=\"ttd-share-btn ttd-share-copy\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Copy\" data-share=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><span class=\"ttd-share-label\">Copy<\/span><\/a><span class=\"ttd-share-toast\" aria-live=\"polite\"><\/span><\/div>\n<div class=\"ttd-layout-with-toc\">\n<aside class=\"ttd-toc-sidebar\">\n<nav class=\"ttd-toc\" aria-label=\"Table of contents\"><button class=\"ttd-toc-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"ttd-toc-list\">On this page<span class=\"ttd-toc-chevron\">\u25be<\/span><\/button><\/p>\n<ol id=\"ttd-toc-list\" class=\"ttd-toc-list\">\n<li class=\"ttd-toc-h2\"><a href=\"#cite-this-tracker\">Cite this tracker<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-changed-recently\">What changed recently<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#quote-this\">Quote this<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#share-this-tracker\">Share this tracker<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#why-this-tracker-exists\">Why This Tracker Exists<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-short-version\">The Short Version<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#federal-bills-to-watch\">Federal Bills To Watch<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-compliance-incentive-problem\">The Compliance Incentive Problem<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#state-age-verification-laws-to-watch\">State Age Verification Laws To Watch<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#platform-responses-are-the-early-warning-system\">Platform Responses Are The Early Warning System<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#why-anonymous-and-pseudonymous-speech-matters\">Why Anonymous And Pseudonymous Speech Matters<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#the-big-tech-compliance-moat\">The Big Tech Compliance Moat<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#better-child-safety-without-id-checkpoints\">Better Child Safety Without ID Checkpoints<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-to-tell-congress\">What To Tell Congress<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#what-privacy-minded-readers-should-do-now\">What Privacy-Minded Readers Should Do Now<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#copy-paste-this\">Copy\/Paste This<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#related-thethriftydev-reading\">Related TheThriftyDev Reading<\/a><\/li>\n<li class=\"ttd-toc-h2\"><a href=\"#sources\">Sources<\/a><\/li>\n<\/ol>\n<\/nav>\n<\/aside>\n<div class=\"ttd-post-body\">\n<p class=\"ttd-hub-breadcrumb\"><span class=\"ttd-hub-breadcrumb-label\">Part of<\/span> <a href=\"https:\/\/thethriftydev.com\/blog\/start-here\/\" rel=\"bookmark\">Start Here<\/a><\/p>\n<p><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"Article\", \"headline\": \"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech\", \"description\": \"A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.\", \"author\": {\"@type\": \"Person\", \"name\": \"Bobby Hendry\"}, \"publisher\": {\"@type\": \"Organization\", \"name\": \"TheThriftyDev\"}, \"datePublished\": \"2026-05-24T16:18:59.211165+00:00\", \"dateModified\": \"2026-05-24T16:18:59.211177+00:00\", \"mainEntityOfPage\": {\"@type\": \"WebPage\", \"@id\": \"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"}, \"about\": [\"KOSA\", \"age verification\", \"anonymous speech\", \"digital identity\", \"online privacy\"]}<\/script><\/p>\n<p><strong>Age verification is being sold as child safety. The bigger pattern is internet identity control.<\/strong> This tracker follows <a href=\"https:\/\/thethriftydev.com\/blog\/kosa-age-verification-privacy-pseudonymous-speech\/\" class=\"ttd-autolink\">KOSA<\/a>, app store age checks, state ID laws, platform responses, and the policy pipeline pushing the open internet toward identity checkpoints.<\/p>\n<p><strong>Last updated:<\/strong> July 2, 2026<\/p>\n<div class=\"wp-block-group\" style=\"border:2px solid #22c55e;padding:18px;border-radius:12px;background:#07130f;color:#eafff4\">\n<p><strong>Current threat level: HIGH<\/strong><\/p>\n<ul>\n<li><strong>June 27, 2025:<\/strong> Supreme Court ruled 6-3 in <em>Free Speech Coalition v. Paxton<\/em> that state age verification for adult content is constitutional under intermediate scrutiny.<\/li>\n<li><strong>March 5, 2026:<\/strong> Senate passed COPPA 2.0 (S.836) by unanimous consent. Now heads to the House.<\/li>\n<li>KOSA (S.1748) has 76 cosponsors (42 R, 33 D, 1 I) but has not received a Senate Commerce markup.<\/li>\n<li>State age verification laws are spreading across the country.<\/li>\n<li>Some platforms already block users in certain states instead of collecting ID.<\/li>\n<li>Big Tech can absorb compliance costs. Smaller sites, forums, and open-source projects cannot.<\/li>\n<li>The core risk is not one bill. The core risk is normalizing ID checks for speech.<\/li>\n<\/ul>\n<\/div>\n<div class=\"wp-block-group ttd-citation-box\" style=\"border:2px solid #00ff41;padding:18px;border-radius:12px;background:#020806;color:#eafff4\">\n<h2 id=\"cite-this-tracker\" id=\"cite-this-tracker\">Cite this tracker<\/h2>\n<p><strong>TheThriftyDev.<\/strong> \u201cAge Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech.\u201d Last updated July 2, 2026. <a href=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\">https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/<\/a><\/p>\n<ul>\n<li><a href=\"#Sources\">Jump to sources<\/a><\/li>\n<li><a href=\"#CopyPaste_This\">Jump to share text<\/a><\/li>\n<li><a href=\"#What_changed_recently\">What changed recently<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"what-changed-recently\" id=\"what-changed-recently\">What changed recently<\/h2>\n<ul>\n<li><strong>July 1, 2026<\/strong> \u2014 Confirmed: Louisiana ASAA did <strong>not<\/strong> activate on July 1, 2026. HB 977 (signed May 15, 2026) postponed enforcement to July 1, 2027. No Apple age-check activation for Louisiana occurred on this date.<\/li>\n<li><strong>June 27, 2026<\/strong> \u2014 <strong>Correction:<\/strong> Louisiana HB 977 (signed May 15, 2026) postponed the Louisiana ASAA effective date from July 1, 2026 to <strong>July 1, 2027<\/strong>. Utah HB 498 similarly postponed Utah ASAA from May 6, 2026 to <strong>May 7, 2027<\/strong>. Apple&#8217;s Declared Age Range API enforcement for Utah and Louisiana reflects Apple&#8217;s implementation schedule, which operates on its own timeline. Tracker updated to reflect corrected legislative dates.<\/li>\n<li><strong>June 21, 2026<\/strong> \u2014 Texas SB 2420 enforcement update: Fifth Circuit lifted injunction May 28, 2026; CCIA filed emergency SCOTUS challenge June 11, 2026 (pending \u2014 most significant active development). KIDS Act (H.R.7757) markup update: passed House E&amp;C along party lines March 5, 2026; <strong>stalled on House floor<\/strong> with bipartisan talks ongoing; Democrats objected over weakened duty-of-care and broad state preemption. <strong>Louisiana postponed to July 1, 2027<\/strong> \u2014 HB 977 signed May 15, 2026 delays Louisiana ASAA by one year. <strong>Utah also postponed to May 7, 2027<\/strong> \u2014 HB 498 delayed Utah ASAA during legislative session. Apple&#8217;s Declared Age Range API enforcement for Utah (May 6) and Louisiana (originally July 1) reflects Apple&#8217;s implementation timeline, which may proceed independently of state legislative effective dates. West Virginia HB 4412 adult-site age verification law effective June 12, 2026. Massachusetts H.5295 passed House April 8, 2026 \u2014 would ban social media for under-14s and require universal age verification for all users; currently in Senate. New: <strong>Parents Decide Act (H.R.8250)<\/strong> introduced April 13, 2026 \u2014 mandates OS-level age verification with FTC enforcement, broader than app store laws. Litigation landscape updated with Texas SB 2420 SCOTUS emergency.<\/li>\n<li><strong>June 9, 2026<\/strong> \u2014 Added the June 27, 2025 SCOTUS ruling in <em>Free Speech Coalition v. Paxton<\/em>, COPPA 2.0 (S.836) Senate passage by unanimous consent on March 5, 2026, KIDS Act (H.R.7757) House Energy &amp; Commerce advancement along party lines on March 5, 2026, Apple Declared Age Range API enforcement timeline (international Feb 24, 2026; Utah May 6, 2026 \u2014 postponed to May 7, 2027 by HB 498; Louisiana July 1, 2026 \u2014 postponed to July 1, 2027 by HB 977), Google Play US state-law developer guidance, NetChoice v. Carr preliminary injunction against Georgia SB 351 (June 26, 2025), April 20, 2026 federal court block on the reworked Arkansas minor-social-media law, 76-cosponsor status for KOSA, and a litigation landscape update covering at least 8 states sued.<\/li>\n<li><strong>May 24, 2026<\/strong> \u2014 Added S.1748 status, app-store age verification risk, platform response framing, and privacy-first alternatives.<\/li>\n<\/ul>\n<h2 id=\"quote-this\" id=\"quote-this\">Quote this<\/h2>\n<blockquote>\n<p>Age verification does not stay age verification. Once platforms must prove who is a minor, adults get dragged into the identity layer too.<\/p>\n<\/blockquote>\n<blockquote>\n<p>The core risk is not one bill. The core risk is normalizing ID checks for speech.<\/p>\n<\/blockquote>\n<blockquote>\n<p>A privacy-first child safety policy should punish exploitation and data abuse, not force every lawful speaker through an identity checkpoint.<\/p>\n<\/blockquote>\n<h2 id=\"share-this-tracker\" id=\"share-this-tracker\">Share this tracker<\/h2>\n<p><strong>X \/ Twitter:<\/strong> Age verification does not stay age verification. Once platforms must prove who is a minor, adults get dragged into the identity layer too. That is how \u201cprotect kids\u201d becomes \u201cshow ID to speak.\u201d Tracker: https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/<\/p>\n<p><strong><a href=\"https:\/\/thethriftydev.com\/blog\/mandatory-id-social-media-phone-kyc-nostr\/\" class=\"ttd-autolink\">Nostr<\/a>:<\/strong> KOSA and age-verification laws are not just child-safety policy. They are building pressure toward identity checkpoints for speech. Track the pattern here: https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/<\/p>\n<p><strong>Congressional email subject:<\/strong> Oppose age verification mandates; support privacy-first child safety<\/p>\n<p><strong>Congressional email body:<\/strong> Please protect kids online without creating an ID-check internet. I oppose age verification mandates or liability schemes that pressure platforms to identify users before they can speak, search, learn, or join communities. Support privacy-first child safety instead: data minimization, limits on behavioral targeting, anti-dark-pattern rules, enforcement against predators, and protections for anonymous and pseudonymous speech.<\/p>\n<figure><img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" decoding=\"async\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" alt=\"Age verification creep tracker showing KOSA, app store ID laws, and state age-check pressure\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><noscript><img decoding=\"async\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-1.png\" alt=\"Age verification creep tracker showing KOSA, app store ID laws, and state age-check pressure\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><\/noscript><\/figure>\n<h2 id=\"why-this-tracker-exists\" id=\"why-this-tracker-exists\">Why This Tracker Exists<\/h2>\n<p>There are real online harms affecting kids. Sextortion, predatory adults, algorithmic amplification, bullying, self-harm content, addictive feeds, and data harvesting are not imaginary. Parents are right to be angry, and lawmakers are right to care.<\/p>\n<p>The problem is the tool. Age verification sounds narrow until you ask how it works at internet scale. If a platform must treat minors differently, it needs a way to know who is a minor. If it cannot reliably know who is a minor, it checks more users. If checking more users becomes the safe legal path, adult speech gets dragged into the same identity layer.<\/p>\n<p>That is age verification creep: a child safety proposal becomes a compliance system, the compliance system becomes an identity checkpoint, and the identity checkpoint becomes the default gate for speech, search, social media, communities, apps, and eventually payments.<\/p>\n<h2 id=\"the-short-version\" id=\"the-short-version\">The Short Version<\/h2>\n<ul>\n<li>Protecting kids online matters.<\/li>\n<li>Age checks sound limited.<\/li>\n<li>But platforms cannot separate minors from adults without checking users.<\/li>\n<li>That creates pressure for ID vendors, device-level age signals, app-store verification, and more intrusive account systems.<\/li>\n<li>The people hurt first are not criminals. They are abuse survivors, whistleblowers, dissidents, religious minorities, activists, journalists, LGBTQ users, and teenagers seeking help.<\/li>\n<\/ul>\n<h2 id=\"federal-bills-to-watch\" id=\"federal-bills-to-watch\">Federal Bills To Watch<\/h2>\n<table>\n<thead>\n<tr>\n<th>Bill or proposal<\/th>\n<th>Status<\/th>\n<th>Supporter framing<\/th>\n<th>Age verification risk<\/th>\n<th>Speech\/privacy risk<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>KOSA, S.1748<\/td>\n<td>76 cosponsors (42 R, 33 D, 1 I). Introduced May 14, 2025. No Senate Commerce markup to date.<\/td>\n<td>Design duties and safeguards for minors<\/td>\n<td>High<\/td>\n<td>Platforms may over-filter sensitive lawful content and seek age assurance<\/td>\n<\/tr>\n<tr>\n<td>COPPA 2.0<\/td>\n<td>Passed Senate by unanimous consent March 5, 2026 (21 cosponsors). Awaiting House action.<\/td>\n<td>Stronger protections for children and teens<\/td>\n<td>Medium<\/td>\n<td>Depends on implementation and how platforms determine age<\/td>\n<\/tr>\n<tr>\n<td>House online safety packages<\/td>\n<td>KIDS Act (H.R.7757) passed House E&amp;C along party lines March 5, 2026. Strips the Senate KOSA \u201cduty of care\u201d; adds broad federal preemption. <strong>Stalled on House floor<\/strong> \u2014 bipartisan negotiations ongoing; Democrats object over weakened knowledge standard and state law preemption. No floor vote scheduled.<\/td>\n<td>Parental controls and child safety accountability<\/td>\n<td>High<\/td>\n<td>Could shift age checks to app stores, operating systems, or device layers<\/td>\n<\/tr>\n<tr>\n<td>Parents Decide Act, H.R.8250<\/td>\n<td>Introduced April 13, 2026. Mandates OS-level age verification (Apple, Google, Microsoft) with FTC enforcement \u2014 broader than app store laws, covers every device. In House committee, no markup scheduled.<\/td>\n<td>Device-level child safety accountability<\/td>\n<td>Severe<\/td>\n<td>Shifts age checks from apps to OS layer; could affect every desktop and mobile device nationally<\/td>\n<\/tr>\n<tr>\n<td>Phone or SIM identity proposals<\/td>\n<td>Separate but related identity pressure<\/td>\n<td>Fraud, trafficking, and crime prevention<\/td>\n<td>Severe<\/td>\n<td>Turns basic communication into a permissioned identity event<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<figure><img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" decoding=\"async\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-2.png\" alt=\"Map-style overview of age verification laws spreading through states and platforms\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><noscript><img decoding=\"async\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-2.png\" alt=\"Map-style overview of age verification laws spreading through states and platforms\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><\/noscript><\/figure>\n<h2 id=\"the-compliance-incentive-problem\" id=\"the-compliance-incentive-problem\">The Compliance Incentive Problem<\/h2>\n<p>Supporters often say KOSA does not directly require every user to upload ID. That is an important distinction. But direct mandates are not the only way policy changes behavior. Liability changes incentives.<\/p>\n<p>If a platform can be punished for failing to protect minors from certain harms, the platform needs a defensible way to show which users are minors, which settings applied to them, and what content or features they were allowed to access. A small site owner, open-source developer, <a href=\"https:\/\/thethriftydev.com\/blog\/mandatory-id-social-media-phone-kyc-nostr\/\" class=\"ttd-autolink\">Nostr<\/a> client, forum admin, or indie app team does not have a legal department to litigate fine distinctions. The safe response is to block users, remove features, over-filter speech, or outsource age checks to vendors.<\/p>\n<p>That is how \u201cwe do not require ID\u201d can still become \u201cshow ID to participate.\u201d<\/p>\n<h2 id=\"state-age-verification-laws-to-watch\" id=\"state-age-verification-laws-to-watch\">State Age Verification Laws To Watch<\/h2>\n<p>State laws matter because they create the test cases. One state passes an age check. Another expands it. Courts rule on pieces of it. Platforms react by blocking regions, adding compliance vendors, or changing product design nationally.<\/p>\n<table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th>What to watch<\/th>\n<th>Why it matters<\/th>\n<th>Risk<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Adult-site age verification<\/td>\n<td>State laws requiring ID or age assurance for sexual content<\/td>\n<td>Creates legal precedent and vendor infrastructure<\/td>\n<td>High<\/td>\n<\/tr>\n<tr>\n<td>Social media minor laws<\/td>\n<td>Parental consent, account limits, and age checks for social platforms<\/td>\n<td>Pushes identity checks into general-purpose speech platforms<\/td>\n<td>Severe<\/td>\n<\/tr>\n<tr>\n<td>App store age verification<\/td>\n<td>Apple\/Google or app-store-level age signals<\/td>\n<td>Centralizes age identity at the operating-system or app-store layer<\/td>\n<td>Severe<\/td>\n<\/tr>\n<tr>\n<td>Device-level age systems<\/td>\n<td>Age signals built into phones, browsers, or operating systems<\/td>\n<td>Could follow users across apps and websites<\/td>\n<td>Severe<\/td>\n<\/tr>\n<tr>\n<td>Social media age verification (state)<\/td>\n<td>West Virginia HB 4412: adult-site age verification effective June 12, 2026. Massachusetts H.5295: House-passed April 8, 2026 \u2014 would ban social media for under-14s and require universal age verification for all social media users; currently in Massachusetts Senate.<\/td>\n<td>West Virginia creates new enforcement precedent; Massachusetts would be one of the strictest laws in the nation<\/td>\n<td>Severe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Litigation landscape (June 2026):<\/strong> At least 8 states have been sued over age verification for children. Courts have preliminarily halted laws in Arkansas (reworked law blocked April 20, 2026) and Georgia SB 351 (preliminary injunction June 26, 2025). Pending challenges remain in Florida, Louisiana, Mississippi, and Tennessee. Tennessee classifies age-verification violations as Class C felonies. New state AV bills are moving in at least 10 more states in 2026.<\/p>\n<p><strong>Texas SB 2420 \u2014 SCOTUS emergency (most significant active development):<\/strong> The Fifth Circuit lifted the district court\u2019s injunction on May 28, 2026, allowing Texas\u2019s App Store Accountability Act to take effect. <strong>CCIA filed an emergency injunction request with the U.S. Supreme Court on June 11, 2026<\/strong> \u2014 SCOTUS has not yet ruled. If SCOTUS declines to intervene, other states\u2019 app store laws (Louisiana July 1, future states) will accelerate. If SCOTUS intervenes and blocks Texas, the entire app-store-age-check pipeline faces a major setback.<\/p>\n<h2 id=\"platform-responses-are-the-early-warning-system\" id=\"platform-responses-are-the-early-warning-system\">Platform Responses Are The Early Warning System<\/h2>\n<p>App stores have started enforcing. Starting February 24, 2026, Apple began blocking users in Australia, Brazil, and Singapore from downloading apps rated 18+ unless confirmed to be adults \u2014 the same enforcement model now rolling out to US states. Apple\u2019s Declared Age Range API shares age categories with developers. New Apple\u2019s Declared Age Range API enforcement for Utah went live May 6, 2026. However, Utah\u2019s state law (ASAA) was subsequently postponed to <strong>May 7, 2027<\/strong> (HB 498). Louisiana\u2019s state law (ASAA) was postponed to <strong>July 1, 2027<\/strong> (HB 977, signed May 15, 2026). Apple\u2019s API enforcement may proceed on its own timeline independent of state legislative dates. Texas SB 2420 is now enforced following the Fifth Circuit\u2019s May 28 ruling, with CCIA\u2019s emergency SCOTUS challenge pending. Google has published US-specific developer guidance for the same wave of state app-store age-verification laws.<\/p>\n<p>When a platform blocks a state instead of collecting ID, that is not just a business decision. It is a warning signal. It means the compliance burden, liability risk, or privacy risk is too high for that platform to operate normally.<\/p>\n<p>EFF has documented how age gates can become a windfall for Big Tech and a death sentence for smaller platforms. Large companies can pay lawyers, vendors, auditors, trust and safety teams, policy teams, lobbyists, and compliance engineers. Small communities cannot. If the cost of running a forum becomes identity verification infrastructure, the open web loses.<\/p>\n<figure><img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" decoding=\"async\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-3.png\" alt=\"Compliance moat diagram showing how age checks favor Big Tech over small websites\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><noscript><img decoding=\"async\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-3.png\" alt=\"Compliance moat diagram showing how age checks favor Big Tech over small websites\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><\/noscript><\/figure>\n<h2 id=\"why-anonymous-and-pseudonymous-speech-matters\" id=\"why-anonymous-and-pseudonymous-speech-matters\">Why Anonymous And Pseudonymous Speech Matters<\/h2>\n<p>Pseudonymous speech is not a loophole. It is a safety feature.<\/p>\n<p>People use pseudonyms to report abuse, talk about addiction, explore religion, research health issues, organize politically, question powerful institutions, build communities, and separate public speech from private life. Teenagers may need access to information they cannot safely ask for at home. Abuse survivors may need resources without alerting an abuser. Whistleblowers may need to speak without attaching their legal name to every sentence.<\/p>\n<p>An ID-check internet chills all of that. Even if the government never reads the database, the database exists. It can be breached, sold, subpoenaed, misused, shared, or quietly normalized until refusal itself looks suspicious.<\/p>\n<h2 id=\"the-big-tech-compliance-moat\" id=\"the-big-tech-compliance-moat\">The Big Tech Compliance Moat<\/h2>\n<p>Regulation sold as anti-Big-Tech can accidentally entrench Big Tech. That is the compliance moat.<\/p>\n<p>Meta, Google, Apple, TikTok, and other giants can absorb age assurance vendors, policy audits, legal challenges, and reporting requirements. A small Mastodon instance, Nostr client, indie forum, hobby project, or privacy-first tool cannot. The likely result is less competition, more centralization, and fewer escape routes from the platforms lawmakers claim to be disciplining.<\/p>\n<p>That matters for builders. A sovereign web needs small services, open protocols, self-hosted tools, and low-friction publishing. Identity compliance moves the web in the opposite direction.<\/p>\n<figure><img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" decoding=\"async\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-4.png\" alt=\"Anonymous speech risk path from child safety rules to identity checkpoints\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><noscript><img decoding=\"async\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-4.png\" alt=\"Anonymous speech risk path from child safety rules to identity checkpoints\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><\/noscript><\/figure>\n<h2 id=\"better-child-safety-without-id-checkpoints\" id=\"better-child-safety-without-id-checkpoints\">Better Child Safety Without ID Checkpoints<\/h2>\n<p>The choice is not \u201cdo nothing\u201d or \u201cverify everyone.\u201d Better options exist:<\/p>\n<ul>\n<li>Ban behavioral advertising to minors.<\/li>\n<li>Enforce data minimization for all users.<\/li>\n<li>Ban manipulative dark patterns and addictive product loops.<\/li>\n<li>Require simple chronological feed options.<\/li>\n<li>Improve reporting, takedown, and appeals systems.<\/li>\n<li>Fund investigations and enforcement against predators and extortion networks.<\/li>\n<li>Support family-level tools that do not require every website to collect ID.<\/li>\n<li>Require privacy-preserving age signals only if they are voluntary, minimal, audited, open, and not tied to browsing history.<\/li>\n<\/ul>\n<h2 id=\"what-to-tell-congress\" id=\"what-to-tell-congress\">What To Tell Congress<\/h2>\n<p>Here is the clean message:<\/p>\n<blockquote>\n<p>Protect kids online, but do not create an ID-check internet. Oppose age verification mandates and any bill that pressures platforms to identify users before they can speak, search, learn, or join communities. Pass privacy-first child safety instead: data minimization, limits on behavioral targeting, anti-dark-pattern rules, better enforcement against predators, and protections for anonymous and pseudonymous speech.<\/p>\n<\/blockquote>\n<h2 id=\"what-privacy-minded-readers-should-do-now\" id=\"what-privacy-minded-readers-should-do-now\">What Privacy-Minded Readers Should Do Now<\/h2>\n<ol>\n<li>Contact your senators and representatives. Ask whether they support age verification mandates or privacy-first child safety.<\/li>\n<li>Use pseudonymous accounts where appropriate. Do not attach your legal identity to every public opinion.<\/li>\n<li>Support decentralized and smaller platforms before the compliance moat gets worse.<\/li>\n<li>Move some social activity to Nostr and other exit-ramp systems.<\/li>\n<li>Reduce dependence on identity-linked accounts where possible.<\/li>\n<li>Share this tracker when someone says, \u201cIt is only about protecting kids.\u201d<\/li>\n<\/ol>\n<figure><img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" decoding=\"async\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-5.png\" alt=\"Privacy-first child safety alternatives without mandatory ID checks\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><noscript><img decoding=\"async\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/av-tracker-5.png\" alt=\"Privacy-first child safety alternatives without mandatory ID checks\" loading=\"lazy\" style=\"max-width:100%;height:auto;\" width=\"1200\" height=\"630\"><\/noscript><\/figure>\n<h2 id=\"copy-paste-this\" id=\"copy-paste-this\">Copy\/Paste This<\/h2>\n<p>If you want to explain the issue fast, use this:<\/p>\n<pre>Age verification does not stay age verification.\n\nOnce platforms must prove who is a minor, adults get dragged into the identity layer too.\n\nThat is how \u201cprotect kids\u201d becomes \u201cshow ID to speak.\u201d\n\nTracker: https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/<\/pre>\n<h2 id=\"related-thethriftydev-reading\" id=\"related-thethriftydev-reading\">Related TheThriftyDev Reading<\/h2>\n<ul>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/kosa-age-verification-privacy-pseudonymous-speech\/\">KOSA Is Not Just a Kids Safety Bill. It Is an Age Verification Creep Bill<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/mandatory-id-social-media-phone-kyc-nostr\/\">Mandatory ID Is Coming for Phones and Social Media. Here\u2019s How to Move to Nostr Before the Gate Closes<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/google-ai-search-privacy-alternatives\/\">Google AI Search Privacy: Better Alternatives to Protect Your Searches<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/what-is-the-sovereign-builder-protocol\/\">What Is the Sovereign Builder Protocol?<\/a><\/li>\n<\/ul>\n<h2 id=\"sources\" id=\"sources\">Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.govtrack.us\/congress\/bills\/119\/s1748\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">GovTrack: S.1748 Kids Online Safety Act<\/a><\/li>\n<li><a href=\"https:\/\/www.govinfo.gov\/content\/pkg\/BILLS-119s1748is\/html\/BILLS-119s1748is.htm\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">GovInfo: S.1748 bill text<\/a><\/li>\n<li><a href=\"https:\/\/www.blackburn.senate.gov\/2025\/5\/technology\/blackburn-blumenthal-thune-and-schumer-introduce-the-kids-online-safety-act\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Sen. Blackburn release on KOSA reintroduction<\/a><\/li>\n<li><a href=\"https:\/\/www.aclu.org\/news\/privacy-technology\/lawmakers-renew-push-to-regulate-kids-speech-online-despite-speech-protections\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">ACLU on kids online safety bills and speech protections<\/a><\/li>\n<li><a href=\"https:\/\/www.eff.org\/pages\/age-gates-are-windfall-big-tech-and-death-sentence-smaller-platforms\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">EFF: age gates, Big Tech, and smaller platforms<\/a><\/li>\n<li><a href=\"https:\/\/www.rstreet.org\/commentary\/the-fundamental-problems-with-social-media-age-verification-legislation\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">R Street on social media age verification problems<\/a><\/li>\n<li><a href=\"https:\/\/theintercept.com\/2026\/03\/05\/kosa-online-age-verification-free-speech-privacy\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">The Intercept on anonymity, KOSA, and age verification<\/a><\/li>\n<li><a href=\"https:\/\/www.supremecourt.gov\/opinions\/24pdf\/23-1122_3e04.pdf\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">SCOTUS: <em>Free Speech Coalition v. Paxton<\/em> opinion (June 27, 2025)<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Free_Speech_Coalition_v._Paxton\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Wikipedia: <em>FSC v. Paxton<\/em> case background<\/a><\/li>\n<li><a href=\"https:\/\/www.eff.org\/pages\/supreme-courts-decision-age-verification-tramples-free-speech-and-undermines-privacy\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">EFF on the SCOTUS age-verification decision<\/a><\/li>\n<li><a href=\"https:\/\/www.eff.org\/deeplinks\/2025\/12\/congresss-crusade-age-gate-internet-2025-review\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">EFF: 2025 in review \u2014 Congress\u2019s crusade to age-gate the internet<\/a><\/li>\n<li><a href=\"https:\/\/www.govtrack.us\/congress\/bills\/119\/s836\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">GovTrack: COPPA 2.0 (S.836) \u2014 passed Senate March 5, 2026<\/a><\/li>\n<li><a href=\"https:\/\/www.markey.senate.gov\/news\/press-releases\/senator-markey-celebrates-unanimous-senate-passage-of-his-bipartisan-children-and-teens-online-privacy-protection-legislation\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Sen. Markey: COPPA 2.0 unanimous Senate passage<\/a><\/li>\n<li><a href=\"https:\/\/www.govtrack.us\/congress\/bills\/119\/hr7757\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">GovTrack: KIDS Act (H.R.7757)<\/a><\/li>\n<li><a href=\"https:\/\/iapp.org\/news\/a\/us-energy-and-commerce-committee-advances-kids-act-to-full-house-vote\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">IAPP: KIDS Act advances to full House vote<\/a><\/li>\n<li><a href=\"https:\/\/developer.apple.com\/news\/?id=f5zj08ey\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Apple Developer: age requirements for Brazil, Australia, Singapore, Utah, Louisiana (Feb 24, 2026)<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/googleplay\/android-developer\/answer\/16569691\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Google Play Console Help: changes for US state app store age-verification bills<\/a><\/li>\n<li><a href=\"https:\/\/netchoice.org\/netchoice-v-carr-georgia-sb-351\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">NetChoice v. Carr (Georgia SB 351)<\/a><\/li>\n<li><a href=\"https:\/\/netchoice.org\/netchoice-litigation-2025-wrapped-protecting-free-enterprise-free-expression-online-when-lawmakers-crossed-the-line\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">NetChoice 2025 Litigation Wrapped<\/a><\/li>\n<li><a href=\"https:\/\/www.ccianet.org\/2026\/06\/11\/ccia-files-emergency-petition-with-supreme-court-to-block-texas-app-store-law\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">CCIA: Emergency SCOTUS filing against Texas SB 2420 (June 11, 2026)<\/a><\/li>\n<li><a href=\"https:\/\/www.congress.gov\/bill\/119th-congress\/house-bill\/8250\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Congress.gov: Parents Decide Act (H.R.8250)<\/a><\/li>\n<li><a href=\"https:\/\/malegislature.gov\/Bills\/193\/H5295\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Massachusetts Legislature: H.5295 social media age verification<\/a><\/li>\n<li><a href=\"https:\/\/www.texastribune.org\/2026\/06\/04\/texas-age-verification-law-enforced\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">The Texas Tribune: Texas age verification law now enforced (June 4, 2026)<\/a><\/li>\n<li><a href=\"https:\/\/www.scotusblog.com\/2026\/06\/11\/supreme-court-app-store-age-verification-emergency\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">SCOTUSblog: Supreme Court app store age verification emergency (June 11, 2026)<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<section class=\"ttd-read-next\" aria-labelledby=\"ttd-rn-h\">\n<h2 id=\"read-next\" id=\"ttd-rn-h\" class=\"ttd-rn-heading\">Read next<\/h2>\n<div class=\"ttd-rn-grid\"><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/sovereign-stack-2026\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/sovereign-stack-featured-300x200.png)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 id=\"the-2026-sovereign-stack-privacy-tools-that-actually-resist-surveillance\" class=\"ttd-rn-title\">The 2026 Sovereign Stack: Privacy Tools That Actually Resist Surveillance<\/h3>\n<p class=\"ttd-rn-excerpt\">8 layers of the sovereign stack verified live in 2026 \u2014 email, DNS, VPN, hosting, search, comms, money, AI. What to use,\u2026<\/p>\n<\/div>\n<p><\/a><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/eu-chat-control-2026-deadline-builders\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/post1-eu-chat-control-featured-300x300.jpg)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 id=\"eu-chat-control-2026-the-deadline-every-builder-should-know\" class=\"ttd-rn-title\">EU Chat Control 2026: The Deadline Every Builder Should Know<\/h3>\n<p class=\"ttd-rn-excerpt\">9 min read\u00b7Published Jun 19, 2026NostrXFacebookRedditTelegramSMSCopyOn this page\u25beThe December 2026 Wallet DeadlineChat Control: From Encryption Backdoors to Identity CheckpointsThe Pipeline: When Wallets\u2026<\/p>\n<\/div>\n<p><\/a><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/glm-5-2-vs-qwen-local\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/post3-featured-300x158.png)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 id=\"glm-5-2-vs-local-qwen-vs-opus-which-should-you-run-in-2026\" class=\"ttd-rn-title\">GLM-5.2 vs Local Qwen vs Opus: Which Should You Run in 2026?<\/h3>\n<p class=\"ttd-rn-excerpt\">9 min read\u00b7Published Jun 19, 2026NostrXFacebookRedditTelegramSMSCopyOn this page\u25beThe Three Models at a GlanceBenchmark Reality CheckThe Cost Story \u2014 Cloud vs LocalWhen to\u2026<\/p>\n<\/div>\n<p><\/a><\/div>\n<\/section>\n<div class=\"ttd-share-row ttd-share-bottom\" role=\"group\" aria-label=\"Share this post\"><a class=\"ttd-share-btn ttd-share-nostr\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Nostr\" data-share=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech \u2014 https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/ #nostr\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.6 10.42c0 2.07-.84 3.94-2.2 5.3-1.36 1.35-3.23 2.19-5.3 2.19h-.6v3.51c0 .43-.34.78-.77.78H6.92a.78.78 0 0 1-.78-.78V10.42C6.14 6.6 9.24 3.5 13.06 3.5s5.54 3.1 5.54 6.92zm-3.6 0c0-1.83-1.05-2.92-2.94-2.92-1.9 0-2.94 1.09-2.94 2.92v3.74h.6c1.07 0 1.99-.4 2.72-1.12.74-.74 1.16-1.66 1.16-2.62z\"><\/path><\/svg><span class=\"ttd-share-label\">Nostr<\/span><\/a><a class=\"ttd-share-btn ttd-share-x\" href=\"https:\/\/twitter.com\/intent\/tweet?text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech&amp;url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on X\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.244 2H21l-6.51 7.44L22.5 22h-7.05l-5.52-7.06L3.6 22H.84l6.97-7.96L1.5 2h7.2l4.98 6.4L18.244 2zm-1.23 18.2h1.94L7.06 3.7H5.02l11.99 16.5z\"><\/path><\/svg><span class=\"ttd-share-label\">X<\/span><\/a><a class=\"ttd-share-btn ttd-share-facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Facebook\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.9 3.78-3.9 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z\"><\/path><\/svg><span class=\"ttd-share-label\">Facebook<\/span><\/a><a class=\"ttd-share-btn ttd-share-reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&amp;title=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Reddit\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12.06c0-1.21-.99-2.2-2.2-2.2a2.2 2.2 0 0 0-1.5.59c-1.5-1.05-3.55-1.73-5.83-1.81l1.01-4.72 3.3.7a1.55 1.55 0 1 0 .14-.6l-3.69-.79a.3.3 0 0 0-.36.23l-1.13 5.18c-2.31.06-4.4.75-5.93 1.81a2.2 2.2 0 1 0-2.42 3.55c-.05.27-.07.55-.07.83 0 3.07 3.58 5.57 8 5.57s8-2.5 8-5.57c0-.28-.02-.55-.07-.83.6-.36 1-1.02 1-1.78zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm9.05 4.06c-1.05.95-2.62 1.43-4.05 1.43-1.43 0-3-.48-4.05-1.43a.4.4 0 0 1 .55-.58c.84.76 2.18 1.15 3.5 1.15s2.66-.39 3.5-1.15a.4.4 0 0 1 .55.58zM15.5 15a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"><\/path><\/svg><span class=\"ttd-share-label\">Reddit<\/span><\/a><a class=\"ttd-share-btn ttd-share-telegram\" href=\"https:\/\/t.me\/share\/url?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&amp;text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Telegram\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M21.95 4.36 18.5 20.5c-.26 1.16-.94 1.45-1.9.9l-5.27-3.88-2.54 2.45c-.28.28-.52.52-1.06.52l.38-5.36 9.78-8.83c.43-.38-.09-.6-.66-.22L5.18 13.45.97 12.12c-1.13-.35-1.15-1.13.24-1.67L20.5 2.92c.94-.35 1.76.22 1.45 1.44z\"><\/path><\/svg><span class=\"ttd-share-label\">Telegram<\/span><\/a><a class=\"ttd-share-btn ttd-share-sms\" href=\"sms:?&amp;body=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech%20%E2%80%94%20https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F%20%23nostr\" target=\"\" rel=\"noopener noreferrer\" aria-label=\"Share on SMS\"><svg viewbox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20 2H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l4 4 4-4h4a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM7 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"><\/path><\/svg><span class=\"ttd-share-label\">SMS<\/span><\/a><a class=\"ttd-share-btn ttd-share-copy\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Copy\" data-share=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><span class=\"ttd-share-label\">Copy<\/span><\/a><span class=\"ttd-share-toast\" aria-live=\"polite\"><\/span><\/div>\n<aside class=\"ttd-author-trust\" aria-label=\"About TheThriftyDev\">\n<h2 id=\"about-thethriftydev\">About TheThriftyDev<\/h2>\n<p>I\u2019m Bobby Hendry, the builder behind TheThriftyDev. I write practical field notes on AI automation, privacy, digital rights, self-hosting, Nostr, and the <a href=\"https:\/\/thethriftydev.com\/blog\/sovereign-builder-protocol\/\" class=\"ttd-autolink\">Sovereign Builder Protocol<\/a> \u2014 with a bias toward tools people can actually use.<\/p>\n<p>This blog is the working notebook. The homepage is the author hub and project map.<\/p>\n<p><a href=\"https:\/\/thethriftydev.com\/\">Visit the TheThriftyDev homepage<\/a> \u00b7 <a href=\"https:\/\/thethriftydev.com\/blog\/start-here\/\">Start with the blog guide path<\/a> \u00b7 <a href=\"https:\/\/thethriftydev.com\/blog\/sovereign-builder-protocol\/\">Read the Sovereign Builder Protocol<\/a><\/p>\n<\/aside>\n<\/div>\n<footer class=\"entry-footer default-max-width\">\n<div class=\"posted-by\"><span class=\"posted-on\">Published <time class=\"entry-date published updated\" datetime=\"2026-05-24T16:19:16+00:00\">May 24, 2026<\/time><\/span><\/div>\n<div class=\"post-taxonomies\"><span class=\"cat-links\">Categorized as <a href=\"https:\/\/thethriftydev.com\/blog\/category\/blog\/\" rel=\"category tag\">Blog<\/a> <\/span><span class=\"tags-links\">Tagged <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/age-verification\/\" rel=\"tag\">age verification<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/anonymous-speech\/\" rel=\"tag\">anonymous speech<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/censorship-resistance\/\" rel=\"tag\">censorship resistance<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/digital-identity\/\" rel=\"tag\">digital identity<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/digital-sovereignty\/\" rel=\"tag\">digital sovereignty<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/free-speech\/\" rel=\"tag\">free speech<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/kosa\/\" rel=\"tag\">KOSA<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/privacy\/\" rel=\"tag\">privacy<\/a><\/span><\/div>\n<\/footer>\n<div class=\"author-bio show-avatars\">\n<img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" alt=\"\" data-src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\" data-srcset=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-300x300.png 2x\" class=\"avatar avatar-85 photo\" height=\"85\" width=\"85\" decoding=\"async\"><noscript><img alt=\"\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png\" srcset=\"https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-300x300.png 2x\" class=\"avatar avatar-85 photo\" height=\"85\" width=\"85\" decoding=\"async\"><\/noscript><\/p>\n<div class=\"author-bio-content\">\n<h2 id=\"by-thethriftydev\" class=\"author-title\">\nBy TheThriftyDev<\/h2>\n<p class=\"author-description\"> Building smart with AI and automation. No fluff, just results.<\/p>\n<p><a class=\"author-link\" href=\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\" rel=\"author\">View all of TheThriftyDev&#8217;s posts.<\/a><\/div>\n<\/div>\n<\/article>\n<div id=\"comments\" class=\"comments-area default-max-width show-avatars\">\n<div id=\"respond\" class=\"comment-respond\">\n<h2 id=\"leave-a-comment-cancel-reply\" id=\"reply-title\" class=\"comment-reply-title\">Leave a comment <small><a rel=\"nofollow\" id=\"cancel-comment-reply-link\" href=\"\/blog\/age-verification-creep-tracker\/#respond\" style=\"display:none;\">Cancel reply<\/a><\/small><\/h2>\n<form action=\"https:\/\/thethriftydev.com\/blog\/wp-comments-post.php\" method=\"post\" id=\"commentform\" class=\"comment-form\">\n<p class=\"comment-notes\"><span id=\"email-notes\">Your email address will not be published.<\/span> <span class=\"required-field-message\">Required fields are marked <span class=\"required\">*<\/span><\/span><\/p>\n<p class=\"comment-form-comment\"><label for=\"comment\">Comment <span class=\"required\">*<\/span><\/label><textarea autocomplete=\"new-password\" id=\"dea1085052\" name=\"dea1085052\" cols=\"45\" rows=\"5\" maxlength=\"65525\" required><\/textarea><textarea id=\"comment\" aria-label=\"hp-comment\" aria-hidden=\"true\" name=\"comment\" autocomplete=\"new-password\" style=\"padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;\" tabindex=\"-1\"><\/textarea><script data-optimized=\"1\" data-noptimize src=\"data:text\/javascript;base64,ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1lbnQiKS5zZXRBdHRyaWJ1dGUoImlkIiwiYTkyZTExMzRkOTI0ZjcwYTUxYjQ2YjA1NmJmMTdkZTUiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhMTA4NTA1MiIpLnNldEF0dHJpYnV0ZSgiaWQiLCJjb21tZW50Iik=\" defer><\/script><input type=\"hidden\" name=\"ab_init_time\" value=\"1782055591\"><\/p>\n<p class=\"comment-form-author\"><label for=\"author\">Name<\/label> <input id=\"author\" name=\"author\" type=\"text\" value=\"\" size=\"30\" maxlength=\"245\" autocomplete=\"name\"><\/p>\n<p class=\"comment-form-email\"><label for=\"email\">Email<\/label> <input id=\"email\" name=\"email\" type=\"email\" value=\"\" size=\"30\" maxlength=\"100\" aria-describedby=\"email-notes\" autocomplete=\"email\"><\/p>\n<p class=\"comment-form-url\"><label for=\"url\">Website<\/label> <input id=\"url\" name=\"url\" type=\"url\" value=\"\" size=\"30\" maxlength=\"200\" autocomplete=\"url\"><\/p>\n<p class=\"comment-form-cookies-consent\"><input id=\"wp-comment-cookies-consent\" name=\"wp-comment-cookies-consent\" type=\"checkbox\" value=\"yes\"> <label for=\"wp-comment-cookies-consent\">Save my name, email, and website in this browser for the next time I comment.<\/label><\/p>\n<p class=\"form-submit\"><input name=\"submit\" type=\"submit\" id=\"submit\" class=\"submit\" value=\"Post Comment\"> <input type=\"hidden\" name=\"comment_post_ID\" value=\"622\" id=\"comment_post_ID\"><br \/>\n<input type=\"hidden\" name=\"comment_parent\" id=\"comment_parent\" value=\"0\"><\/p>\n<\/form>\n<\/div>\n<\/div>\n<nav class=\"navigation post-navigation\" aria-label=\"Posts\">\n<h2 id=\"post-navigation\" class=\"screen-reader-text\">Post navigation<\/h2>\n<div class=\"nav-links\">\n<div class=\"nav-previous\"><a href=\"https:\/\/thethriftydev.com\/blog\/kosa-age-verification-privacy-pseudonymous-speech\/\" rel=\"prev\"><\/p>\n<p class=\"meta-nav\"><svg class=\"svg-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\" role=\"img\" focusable=\"false\" viewbox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 13v-2H8l4-4-1-2-7 7 7 7 1-2-4-4z\" fill=\"currentColor\"><\/path><\/svg>Previous post<\/p>\n<p class=\"post-title\">KOSA Is Not Just a Kids Safety Bill. It Is an Age Verification Creep Bill<\/p>\n<p><\/a><\/div>\n<div class=\"nav-next\"><a href=\"https:\/\/thethriftydev.com\/blog\/openclaw-agentic-framework-setup-guide\/\" rel=\"next\"><\/p>\n<p class=\"meta-nav\">Next post<svg class=\"svg-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\" role=\"img\" focusable=\"false\" viewbox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"m4 13v-2h12l-4-4 1-2 7 7-7 7-1-2 4-4z\" fill=\"currentColor\"><\/path><\/svg><\/p>\n<p class=\"post-title\">OpenClaw as an Agentic Framework: How I Use It, Why It Matters, and What to Consider Before You Set It Up<\/p>\n<p><\/a><\/div>\n<\/div>\n<\/nav>\n<p><\/main><\/div>\n<\/div>\n<aside class=\"widget-area\">\n<section id=\"block-2\" class=\"widget widget_block widget_search\">\n<form role=\"search\" method=\"get\" action=\"https:\/\/thethriftydev.com\/blog\/\" class=\"wp-block-search__button-outside wp-block-search__text-button wp-block-search\"><label class=\"wp-block-search__label\" for=\"wp-block-search__input-1\">Search<\/label><\/p>\n<div class=\"wp-block-search__inside-wrapper\"><input class=\"wp-block-search__input\" id=\"wp-block-search__input-1\" placeholder=\"\" value=\"\" type=\"search\" name=\"s\" required><button aria-label=\"Search\" class=\"wp-block-search__button wp-element-button\" type=\"submit\">Search<\/button><\/div>\n<\/form>\n<\/section>\n<section id=\"block-3\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 id=\"recent-posts\" class=\"wp-block-heading\">Recent Posts<\/h2>\n<ul class=\"wp-block-latest-posts__list wp-block-latest-posts\">\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/sovereign-stack-2026\/\">The 2026 Sovereign Stack: Privacy Tools That Actually Resist Surveillance<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/eu-chat-control-2026-deadline-builders\/\">EU Chat Control 2026: The Deadline Every Builder Should Know<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/glm-5-2-vs-qwen-local\/\">GLM-5.2 vs Local Qwen vs Opus: Which Should You Run in 2026?<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/delete-yourself-from-data-brokers\/\">Delete Yourself From Data Brokers Without Paying DeleteMe<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/openclaw-agentic-framework-setup-guide\/\">OpenClaw as an Agentic Framework: How I Use It, Why It Matters, and What to Consider Before You Set It Up<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-4\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 id=\"recent-comments\" class=\"wp-block-heading\">Recent Comments<\/h2>\n<div class=\"no-comments wp-block-latest-comments\">No comments to show.<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-5\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 id=\"archives\" class=\"wp-block-heading\">Archives<\/h2>\n<ul class=\"wp-block-archives-list wp-block-archives\">\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/06\/\">June 2026<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/05\/\">May 2026<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/04\/\">April 2026<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-6\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 id=\"categories\" class=\"wp-block-heading\">Categories<\/h2>\n<ul class=\"wp-block-categories-list wp-block-categories-taxonomy-category wp-block-categories\">\n<li class=\"cat-item cat-item-36\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai\/\">AI<\/a><\/li>\n<li class=\"cat-item cat-item-61\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai-news\/\">AI News<\/a><\/li>\n<li class=\"cat-item cat-item-2\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai-tools-reviews\/\">AI Tools &amp; Reviews<\/a><\/li>\n<li class=\"cat-item cat-item-60\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/automation\/\">Automation<\/a><\/li>\n<li class=\"cat-item cat-item-1\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/blog\/\">Blog<\/a><\/li>\n<li class=\"cat-item cat-item-5\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/case-studies\/\">Case Studies<\/a><\/li>\n<li class=\"cat-item cat-item-38\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/digital-rights\/\">Digital Rights<\/a><\/li>\n<li class=\"cat-item cat-item-62\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/gaming\/\">Gaming<\/a><\/li>\n<li class=\"cat-item cat-item-7\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/no-code-automation\/\">No-Code &amp; Automation<\/a><\/li>\n<li class=\"cat-item cat-item-34\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/privacy\/\">Privacy<\/a><\/li>\n<li class=\"cat-item cat-item-37\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/search-engines\/\">Search Engines<\/a><\/li>\n<li class=\"cat-item cat-item-93\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/sovereign-builder\/\">Sovereign Builder<\/a><\/li>\n<li class=\"cat-item cat-item-4\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/strategy-mindset\/\">Strategy &amp; Mindset<\/a><\/li>\n<li class=\"cat-item cat-item-35\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/technology\/\">Technology<\/a><\/li>\n<li class=\"cat-item cat-item-63\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/tutorials\/\">Tutorials<\/a><\/li>\n<li class=\"cat-item cat-item-3\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/tutorials-guides\/\">Tutorials &amp; Guides<\/a><\/li>\n<li class=\"cat-item cat-item-6\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/workflow-examples\/\">Workflow Examples<\/a><\/li>\n<li><a href=\"https:\/\/www.alstonprivacy.com\/louisiana-delays-app-store-accountability-effective-date-to-july-2027\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Alston + Bird: Louisiana delays app store accountability to July 2027<\/a><\/li>\n<li><a href=\"https:\/\/www.deseret.com\/politics\/2026\/04\/27\/apple-meta-google-drop-lawsuit-against-utah-app-store-verification-act-after-winning-lawsuit-against-similar-law-in-texas\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Deseret: Apple, Google drop suit against Utah app store age verification (April 27, 2026)<\/a><\/li>\n<li><a href=\"https:\/\/le.utah.gov\/~2026\/bills\/static\/HB0498.html\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Utah HB 498 (ASAA amendments \u2014 postponement)<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<\/aside>\n<footer id=\"colophon\" class=\"site-footer\">\n<div class=\"site-info\">\n<div class=\"site-name\">\n<a href=\"https:\/\/thethriftydev.com\/blog\/\">The Thrifty Dev<\/a><\/div>\n<div class=\"powered-by\">\nProudly powered by <a href=\"https:\/\/wordpress.org\/\" rel=\"nofollow noopener\" target=\"_blank\">WordPress<\/a>.<\/div>\n<\/div>\n<\/footer>\n<\/div>\n<p> <script type=\"speculationrules\">{\"prefetch\":[{\"source\":\"document\",\"where\":{\"and\":[{\"href_matches\":\"\/blog\/*\"},{\"not\":{\"href_matches\":[\"\/blog\/wp-*.php\",\"\/blog\/wp-admin\/*\",\"\/blog\/wp-content\/uploads\/*\",\"\/blog\/wp-content\/*\",\"\/blog\/wp-content\/plugins\/*\",\"\/blog\/wp-content\/themes\/twentytwentyone\/*\",\"\/blog\/*\\\\?(.+)\"]}},{\"not\":{\"selector_matches\":\"a[rel~=\\\"nofollow\\\"]\"}},{\"not\":{\"selector_matches\":\".no-prefetch, .no-prefetch a\"}}]},\"eagerness\":\"conservative\"}]}<\/script> <\/p>\n<div class=\"ttd-abn ttd-abn-sticky\" data-variant=\"C\">\n<button class=\"ttd-abn-close\" type=\"button\" aria-label=\"Close newsletter signup\">\u00d7<\/button><\/p>\n<div class=\"ttd-abn-kicker\">TheThriftyDev Dispatch<\/div>\n<p><strong>Don&#8217;t Wait Until Google Locks You Out<\/strong><\/p>\n<p>The escape map for search, email, cloud files, photos, browser, and phone backups \u2014 set up before you actually need it.<\/p>\n<form class=\"ttd-abn-form\">\n<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\"><br \/>\n<input type=\"hidden\" name=\"variant\" value=\"C\"><br \/>\n<button type=\"submit\">Send the escape map<\/button><\/form>\n<p><small>No spam. Practical privacy, AI, backup, and tool drops. Unsubscribe anytime.<\/small><\/p>\n<div class=\"ttd-abn-result\" role=\"status\" aria-live=\"polite\"><\/div>\n<\/div>\n<p><canvas id=\"ttd-matrix-rain-static\" aria-hidden=\"true\"><\/canvas> <script data-optimized=\"1\" src=\"data:text\/javascript;base64,ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCduby1qcycp\" defer><\/script> <script data-optimized=\"1\" src=\"data:text\/javascript;base64,aWYoLTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01TSUUnKXx8LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdUcmlkZW50LycpKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2lzLUlFJyl9\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-abn-js-extra\" src=\"data:text\/javascript;base64,dmFyIFRURF9BQk49eyJhamF4IjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWFkbWluL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiIyODM1MzE3MjM1In0=\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-abn-js-after\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcmVhZHkoZm4pe2RvY3VtZW50LnJlYWR5U3RhdGUhPT0nbG9hZGluZyc\/Zm4oKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJyxmbil9CnJlYWR5KGZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnR0ZC1hYm4nKS5mb3JFYWNoKGZ1bmN0aW9uKGJveCl7dmFyIGNsb3NlPWJveC5xdWVyeVNlbGVjdG9yKCcudHRkLWFibi1jbG9zZScpO2lmKGNsb3NlKWNsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2JveC5jbGFzc0xpc3QuYWRkKCd0dGQtYWJuLWhpZGRlbicpfSk7dmFyIGZvcm09Ym94LnF1ZXJ5U2VsZWN0b3IoJy50dGQtYWJuLWZvcm0nKTtpZighZm9ybSlyZXR1cm47Zm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgZmQ9bmV3IEZvcm1EYXRhKGZvcm0pO2ZkLmFwcGVuZCgnYWN0aW9uJywndHRkX2Fibl9zaWdudXAnKTtmZC5hcHBlbmQoJ25vbmNlJyxUVERfQUJOLm5vbmNlKTtmZXRjaChUVERfQUJOLmFqYXgse21ldGhvZDonUE9TVCcsY3JlZGVudGlhbHM6J3NhbWUtb3JpZ2luJyxib2R5OmZkfSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gci5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGope2JveC5xdWVyeVNlbGVjdG9yKCcudHRkLWFibi1yZXN1bHQnKS50ZXh0Q29udGVudD0oai5kYXRhJiZqLmRhdGEubWVzc2FnZSl8fCdTaWduZWQgdXAuJztpZihqLnN1Y2Nlc3MpZm9ybS5zdHlsZS5kaXNwbGF5PSdub25lJ30pLmNhdGNoKGZ1bmN0aW9uKCl7Ym94LnF1ZXJ5U2VsZWN0b3IoJy50dGQtYWJuLXJlc3VsdCcpLnRleHRDb250ZW50PSdTaWdudXAgZmFpbGVkLiBUcnkgYWdhaW4uJ30pfSl9KX0pfSkoKQ==\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-blog-enh-js-after\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIG92ZXJsYXk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R0ZC1zZWFyY2gtb3ZlcmxheScpO2lmKG92ZXJsYXkpe3ZhciBpbnB1dD1vdmVybGF5LnF1ZXJ5U2VsZWN0b3IoJy50dGQtc2VhcmNoLWlucHV0Jyk7dmFyIGNsb3NlQnRuPW92ZXJsYXkucXVlcnlTZWxlY3RvcignLnR0ZC1zZWFyY2gtY2xvc2UnKTt2YXIgb3Blbj1mdW5jdGlvbigpe292ZXJsYXkuaGlkZGVuPSExO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnB1dCYmaW5wdXQuZm9jdXMoKX0sMTApO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2VhcmNoLXRyaWdnZXInKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywndHJ1ZScpfSl9O3ZhciBjbG9zZT1mdW5jdGlvbigpe292ZXJsYXkuaGlkZGVuPSEwO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2VhcmNoLXRyaWdnZXInKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywnZmFsc2UnKX0pfTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudHRkLXNlYXJjaC10cmlnZ2VyJykuZm9yRWFjaChmdW5jdGlvbihidG4pe2J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZXYpe2V2LnByZXZlbnREZWZhdWx0KCk7b3BlbigpfSl9KTtpZihjbG9zZUJ0biljbG9zZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsY2xvc2UpO292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2KXtpZihldi50YXJnZXQ9PT1vdmVybGF5KWNsb3NlKCk7fSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZnVuY3Rpb24oZXYpe2lmKGV2LmtleT09PSdFc2NhcGUnJiYhb3ZlcmxheS5oaWRkZW4pY2xvc2UoKTtlbHNlIGlmKChldi5rZXk9PT0nLyd8fChldi5rZXk9PT0naycmJihldi5jdHJsS2V5fHxldi5tZXRhS2V5KSkpJiZvdmVybGF5LmhpZGRlbiYmIS9JTlBVVHxURVhUQVJFQS8udGVzdChkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUpKXtldi5wcmV2ZW50RGVmYXVsdCgpO29wZW4oKX19KX0KaWYoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50dGQtc2hhcmUtcm93JykpcmV0dXJuO2Z1bmN0aW9uIHRvYXN0KHJvdyxtc2cpe3ZhciB0PXJvdy5xdWVyeVNlbGVjdG9yKCcudHRkLXNoYXJlLXRvYXN0Jyk7aWYoIXQpcmV0dXJuO3QudGV4dENvbnRlbnQ9bXNnO3QuY2xhc3NMaXN0LmFkZCgnaXMtdmlzaWJsZScpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLXZpc2libGUnKX0sMTgwMCl9CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2hhcmUtcm93JykuZm9yRWFjaChmdW5jdGlvbihyb3cpe3Jvdy5xdWVyeVNlbGVjdG9yQWxsKCcudHRkLXNoYXJlLWNvcHksIC50dGQtc2hhcmUtbm9zdHInKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bil7YnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldil7ZXYucHJldmVudERlZmF1bHQoKTt2YXIgcGF5bG9hZD1idG4uZ2V0QXR0cmlidXRlKCdkYXRhLXNoYXJlJyl8fGxvY2F0aW9uLmhyZWY7dmFyIGNvcHk9ZnVuY3Rpb24odGV4dCl7aWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpe3JldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KX0KcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXt2YXIgdGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTt0YS52YWx1ZT10ZXh0O3RhLnN0eWxlLnBvc2l0aW9uPSdmaXhlZCc7dGEuc3R5bGUub3BhY2l0eT0nMCc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7dGEuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7cmVzb2x2ZSgpfWNhdGNoKGUpe3JlamVjdChlKX1maW5hbGx5e2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGEpfX0pfTtjb3B5KHBheWxvYWQpLnRoZW4oZnVuY3Rpb24oKXt0b2FzdChyb3csYnRuLmNsYXNzTGlzdC5jb250YWlucygndHRkLXNoYXJlLW5vc3RyJyk\/J0NvcGllZCDigJQgcGFzdGUgaW4geW91ciBOb3N0ciBjbGllbnQnOidMaW5rIGNvcGllZCcpfSkuY2F0Y2goZnVuY3Rpb24oKXt0b2FzdChyb3csJ0NvcHkgZmFpbGVkJyl9KX0pfSl9KTt2YXIgdG9jPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50dGQtdG9jJyk7aWYoIXRvYylyZXR1cm47dmFyIHRvZ2dsZT10b2MucXVlcnlTZWxlY3RvcignLnR0ZC10b2MtdG9nZ2xlJyk7dmFyIGxpc3Q9dG9jLnF1ZXJ5U2VsZWN0b3IoJy50dGQtdG9jLWxpc3QnKTtpZih0b2dnbGUmJmxpc3Qpe3RvZ2dsZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt2YXIgb3Blbj1saXN0LmNsYXNzTGlzdC50b2dnbGUoJ2lzLW9wZW4nKTt0b2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJyxvcGVuPyd0cnVlJzonZmFsc2UnKX0pfQp2YXIgbGlua3M9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbaHJlZl49IiMiXScpKTtpZighbGlua3MubGVuZ3RofHwhKCdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSlyZXR1cm47dmFyIGlkVG9MaT17fTtsaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBpZD1hLmdldEF0dHJpYnV0ZSgnaHJlZicpLnNsaWNlKDEpO2lkVG9MaVtpZF09YS5wYXJlbnROb2RlfSk7dmFyIGhlYWRpbmdzPWxpbmtzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5zbGljZSgxKSl9KS5maWx0ZXIoQm9vbGVhbik7dmFyIHZpc2libGU9bmV3IFNldCgpO3ZhciBpbz1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7ZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuaXNJbnRlcnNlY3RpbmcpdmlzaWJsZS5hZGQoZS50YXJnZXQuaWQpO2Vsc2UgdmlzaWJsZS5kZWxldGUoZS50YXJnZXQuaWQpfSk7T2JqZWN0LnZhbHVlcyhpZFRvTGkpLmZvckVhY2goZnVuY3Rpb24obGkpe2xpLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpfSk7dmFyIGZpcnN0VmlzaWJsZT1oZWFkaW5ncy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiB2aXNpYmxlLmhhcyhoLmlkKX0pO3ZhciBhY3RpdmVJZD1maXJzdFZpc2libGU\/Zmlyc3RWaXNpYmxlLmlkOihmdW5jdGlvbigpe3ZhciBwYXNzZWQ9aGVhZGluZ3MuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDwxMjB9KTtyZXR1cm4gcGFzc2VkLmxlbmd0aD9wYXNzZWRbcGFzc2VkLmxlbmd0aC0xXS5pZDpudWxsfSkoKTtpZihhY3RpdmVJZCYmaWRUb0xpW2FjdGl2ZUlkXSlpZFRvTGlbYWN0aXZlSWRdLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO30se3Jvb3RNYXJnaW46Jy04MHB4IDBweCAtNjUlIDBweCcsdGhyZXNob2xkOjB9KTtoZWFkaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lvLm9ic2VydmUoaCl9KX0pKCk7KGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R0ZC1tYXRyaXgtcmFpbi1zdGF0aWMnKTtpZighYylyZXR1cm47dmFyIGN0eD1jLmdldENvbnRleHQoJzJkJyk7aWYoIWN0eClyZXR1cm47dmFyIENIQVJTPSfjgqLjgqHjgqvjgrXjgr\/jg4rjg4\/jg57jg6Tjg6Pjg6njg6\/jgqzjgrbjg4Djg5Djg5HjgqTjgqPjgq3jgrfjg4Hjg4vjg5Ljg5\/jg6rjg7Djgq7jgrjjg4Ljg5Pjg5TjgqbjgqXjgq\/jgrnjg4Tjg4zjg5Xjg6Djg6bjg6Xjg6vjgrDjgrrjg5bjg4Xjg5fjgqjjgqfjgrHjgrvjg4bjg43jg5jjg6Hjg6zjg7HjgrLjgrzjg4fjg5njg5rjgqrjgqnjgrPjgr3jg4jjg47jg5vjg6Ljg6jjg6fjg63jg7LjgrTjgr7jg4njg5zjg53jg7Tjg4Pjg7MwMTIzNDU2Nzg5QUJDREVGOj48Lz0\/Ky0qLycuc3BsaXQoJycpO3ZhciBGT05UPTE2O2Z1bmN0aW9uIHJjKCl7cmV0dXJuIENIQVJTWyhNYXRoLnJhbmRvbSgpKkNIQVJTLmxlbmd0aCl8MF19CmZ1bmN0aW9uIHBhaW50KCl7dmFyIHc9d2luZG93LmlubmVyV2lkdGgsaD13aW5kb3cuaW5uZXJIZWlnaHQ7dmFyIGRwcj1NYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSwyKTtjLndpZHRoPU1hdGguZmxvb3IodypkcHIpO2MuaGVpZ2h0PU1hdGguZmxvb3IoaCpkcHIpO2Muc3R5bGUud2lkdGg9dysncHgnO2Muc3R5bGUuaGVpZ2h0PWgrJ3B4JztjdHguc2V0VHJhbnNmb3JtKGRwciwwLDAsZHByLDAsMCk7Y3R4LmNsZWFyUmVjdCgwLDAsdyxoKTtjdHguZm9udD1GT05UKydweCAiSmV0QnJhaW5zIE1vbm8iLCJJQk0gUGxleCBNb25vIix1aS1tb25vc3BhY2UsbW9ub3NwYWNlJzt2YXIgY29scz1NYXRoLmNlaWwody9GT05UKTtmb3IodmFyIGk9MDtpPGNvbHM7aSsrKXt2YXIgeD1pKkZPTlQ7dmFyIGhlYWRZPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooaCtGT05UKjgpKS1GT05UKjQ7dmFyIGxlbj02KygoTWF0aC5yYW5kb20oKSoyMil8MCk7Zm9yKHZhciBqPTA7ajxsZW47aisrKXt2YXIgeT1oZWFkWS1qKkZPTlQ7aWYoeTwtRk9OVHx8eT5oKWNvbnRpbnVlO3ZhciBicmlnaHQ9MS0oai9sZW4pO2lmKGo9PT0wKWN0eC5maWxsU3R5bGU9J3JnYmEoMTkwLDI1NSwyMTAsLjkyKSc7ZWxzZSBpZihicmlnaHQ+LjU1KWN0eC5maWxsU3R5bGU9J3JnYmEoMCwyNTUsNjUsJysoYnJpZ2h0Ki45KS50b0ZpeGVkKDIpKycpJztlbHNlIGN0eC5maWxsU3R5bGU9J3JnYmEoMCwyNTUsNjUsJysoYnJpZ2h0Ki40NSkudG9GaXhlZCgyKSsnKSc7Y3R4LmZpbGxUZXh0KHJjKCkseCx5KX19fQpwYWludCgpO3ZhciBydD1udWxsO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHJ0KTtydD1zZXRUaW1lb3V0KHBhaW50LDE1MCl9KX0pKCk=\" defer><\/script> <script data-optimized=\"1\" id=\"hostinger-reach-subscription-block-view-js-extra\" src=\"data:text\/javascript;base64,dmFyIGhvc3Rpbmdlcl9yZWFjaF9zdWJzY3JpcHRpb25fYmxvY2tfZGF0YT17ImVuZHBvaW50IjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWpzb24vaG9zdGluZ2VyLXJlYWNoL3YxL2NvbnRhY3QiLCJub25jZSI6IjkzYmIwN2UzYjIiLCJ0cmFuc2xhdGlvbnMiOnsidGhhbmtzIjoiVGhhbmtzIGZvciBzdWJzY3JpYmluZy4iLCJlcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiJ9fQ==\" defer><\/script> <script data-optimized=\"1\" id=\"hostinger-reach-subscription-block-view-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/ac5a690520d5552994fba7b741da85ac.js?ver=337a8\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" data-wp-strategy=\"async\" fetchpriority=\"low\" id=\"comment-reply-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/63a9de6013e28080a47ea706053479be.js?ver=05f61\" defer data-deferred=\"1\"><\/script> <script id=\"twenty-twenty-one-ie11-polyfills-js-after\" src=\"data:text\/javascript;base64,KEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMmJkVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3QmJndpbmRvdy5Ob2RlTGlzdCYmTm9kZUxpc3QucHJvdG90eXBlLmZvckVhY2gpfHxkb2N1bWVudC53cml0ZSgnPFx1MDA3M2NyaXB0IHNyYz0iaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXR3ZW50eW9uZS9hc3NldHMvanMvcG9seWZpbGxzLmpzP3Zlcj0yLjciPjwvc2NyJysnaXB0Picp\" defer><\/script> <script data-optimized=\"1\" id=\"twenty-twenty-one-responsive-embeds-script-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/0e2783160bf6fa0b0f51c4fb054530ae.js?ver=6490e\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" id=\"newsletter-js-extra\" src=\"data:text\/javascript;base64,dmFyIG5ld3NsZXR0ZXJfZGF0YT17ImFjdGlvbl91cmwiOiJodHRwczovL3RoZXRocmlmdHlkZXYuY29tL2Jsb2cvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAifQ==\" defer><\/script> <script data-optimized=\"1\" id=\"newsletter-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/7956b9b01ea213a21a59fd214701699c.js?ver=28f39\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" id=\"wp-statistics-tracker-js-extra\" src=\"data:text\/javascript;base64,dmFyIFdQX1N0YXRpc3RpY3NfVHJhY2tlcl9PYmplY3Q9eyJyZXF1ZXN0VXJsIjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nIiwiYWpheFVybCI6Imh0dHBzOi8vdGhldGhyaWZ0eWRldi5jb20vYmxvZy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImhpdFBhcmFtcyI6eyJ3cF9zdGF0aXN0aWNzX2hpdCI6MSwic291cmNlX3R5cGUiOiJwb3N0Iiwic291cmNlX2lkIjo2MjIsInNlYXJjaF9xdWVyeSI6IiIsInNpZ25hdHVyZSI6IjYxMjZkYThlNDY1N2E0OTU4MmY0YjM2YWI1YjZjZDJhIiwiYWN0aW9uIjoid3Bfc3RhdGlzdGljc19oaXRfcmVjb3JkIn0sIm9wdGlvbiI6eyJkbnRFbmFibGVkIjoiMSIsImJ5cGFzc0FkQmxvY2tlcnMiOiIxIiwiY29uc2VudEludGVncmF0aW9uIjp7Im5hbWUiOm51bGwsInN0YXR1cyI6W119LCJpc1ByZXZpZXciOiExLCJ1c2VyT25saW5lIjohMSwiaXNXcENvbnNlbnRBcGlBY3RpdmUiOiExfSwiaXNMZWdhY3lFdmVudExvYWRlZCI6IiIsImN1c3RvbUV2ZW50QWpheFVybCI6Imh0dHBzOi8vdGhldGhyaWZ0eWRldi5jb20vYmxvZy93cC1hZG1pbi9hZG1pbi1hamF4LnBocD9hY3Rpb249d3Bfc3RhdGlzdGljc19jdXN0b21fZXZlbnQmbm9uY2U9NzY3YjUzODFkOCIsIm9ubGluZVBhcmFtcyI6eyJ3cF9zdGF0aXN0aWNzX2hpdCI6MSwic291cmNlX3R5cGUiOiJwb3N0Iiwic291cmNlX2lkIjo2MjIsInNlYXJjaF9xdWVyeSI6IiIsInNpZ25hdHVyZSI6IjYxMjZkYThlNDY1N2E0OTU4MmY0YjM2YWI1YjZjZDJhIiwiYWN0aW9uIjoid3Bfc3RhdGlzdGljc19vbmxpbmVfY2hlY2sifSwianNDaGVja1RpbWUiOiI2MDAwMCJ9\" defer><\/script> <script data-optimized=\"1\" id=\"wp-statistics-tracker-js\" src=\"https:\/\/thethriftydev.com\/blog\/?200471=d4df5b5bce.js&amp;ver=14.16.8\" defer data-deferred=\"1\"><\/script> <script id=\"ttd-vitals\" data-no-optimize=\"1\">(function(){\n  if (Math.random() > 0.1) return;\n  var url = \"https:\\\/\\\/thethriftydev.com\\\/blog\\\/wp-json\\\/ttdseo\\\/v1\\\/vitals\";\n  var sent = {}, path = location.pathname;\n  function send(name, value, rating) {\n    if (sent[name]) return; sent[name] = 1;\n    var data = JSON.stringify({n:name, v:Math.round(value*100)\/100, r:rating||'', p:path,\n      d:(window.matchMedia('(hover: none)').matches?'touch':'desktop'),\n      c:(navigator.connection&&navigator.connection.effectiveType)||'',\n      t:Date.now()});\n    if (navigator.sendBeacon) navigator.sendBeacon(url, data);\n    else fetch(url, {method:'POST', keepalive:true, headers:{'Content-Type':'text\/plain'}, body:data});\n  }\n  \/\/ LCP\n  try {\n    new PerformanceObserver(function(list){\n      var entries = list.getEntries(); var last = entries[entries.length-1];\n      if (last) send('LCP', last.renderTime || last.loadTime || last.startTime, last.startTime>4000?'poor':last.startTime>2500?'needs-improvement':'good');\n    }).observe({type:'largest-contentful-paint', buffered:true});\n  } catch(e){}\n  \/\/ CLS\n  try {\n    var cls = 0, sessionValue = 0, sessionEntries = [];\n    new PerformanceObserver(function(list){\n      list.getEntries().forEach(function(e){\n        if (!e.hadRecentInput) {\n          var first = sessionEntries[0], last = sessionEntries[sessionEntries.length-1];\n          if (sessionValue && (e.startTime - last.startTime < 1000) &#038;&#038; (e.startTime - first.startTime < 5000)) {\n            sessionValue += e.value; sessionEntries.push(e);\n          } else { sessionValue = e.value; sessionEntries = [e]; }\n          if (sessionValue > cls) cls = sessionValue;\n        }\n      });\n    }).observe({type:'layout-shift', buffered:true});\n    addEventListener('visibilitychange', function(){\n      if (document.visibilityState === 'hidden') send('CLS', cls, cls>0.25?'poor':cls>0.1?'needs-improvement':'good');\n    });\n  } catch(e){}\n  \/\/ INP (approximation via Event Timing API)\n  try {\n    var maxDur = 0;\n    new PerformanceObserver(function(list){\n      list.getEntries().forEach(function(e){\n        if (e.interactionId && e.duration > maxDur) maxDur = e.duration;\n      });\n    }).observe({type:'event', buffered:true, durationThreshold:40});\n    addEventListener('visibilitychange', function(){\n      if (document.visibilityState === 'hidden' && maxDur > 0) send('INP', maxDur, maxDur>500?'poor':maxDur>200?'needs-improvement':'good');\n    });\n  } catch(e){}\n  \/\/ TTFB + FCP via Navigation\/Paint Timing\n  try {\n    var nav = performance.getEntriesByType('navigation')[0];\n    if (nav) send('TTFB', nav.responseStart - nav.requestStart, nav.responseStart>1800?'poor':nav.responseStart>800?'needs-improvement':'good');\n    var fcp = performance.getEntriesByName('first-contentful-paint')[0];\n    if (fcp) send('FCP', fcp.startTime, fcp.startTime>3000?'poor':fcp.startTime>1800?'needs-improvement':'good');\n  } catch(e){}\n})();<\/script> <script data-no-optimize=\"1\">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){\"use strict\";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&#038;&#038;(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&#038;&#038;(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?\" \":\"\")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp(\"(^|\\\\s+)\"+e+\"(\\\\s+|$)\"),\" \").replace(\/^\\s+\/,\"\").replace(\/\\s+$\/,\"\")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&#038;&#038;e.unobserve(t)}function b(t,e){t&#038;&#038;(t.loadingCount+=e)}function p(t,e){t&#038;&#038;(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)\"SOURCE\"===e.tagName&#038;&#038;n.push(e);return n}function h(t,e){(t=t.parentNode)&#038;&#038;\"PICTURE\"===t.tagName&#038;&#038;n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&#038;&#038;(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&#038;&#038;(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&#038;&#038;t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&#038;&#038;o?o:a)&#038;&#038;(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&#038;&#038;(e.unobserve_completed&#038;&#038;v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&#038;&#038;--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&#038;&#038;v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a=\"VIDEO\"===t.tagName?\"loadeddata\":\"load\";M(t,a,e),M(t,\"error\",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement(\"IMG\"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&#038;&#038;c?c:r)&#038;&#038;(a.style.backgroundImage='url(\"'.concat(r,'\")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&#038;&#038;(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute(\"loading\",\"lazy\"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&#038;&#038;e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&#038;&#038;(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&#038;&#038;(c(t)!==st||\"IMG\"===t.tagName&#038;&#038;(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,\"entered\"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&#038;&#038;v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&#038;&#038;\"loading\"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&#038;&#038;!q(e)&#038;&#038;(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+\"px\"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&#038;&#038;window.addEventListener(\"online\",function(){X(n,a)}),this.update(e)}var Y=\"undefined\"!=typeof window,Z=Y&#038;&#038;!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&#038;&#038;\/(gle|ing|ro)bot|crawl|spider\/i.test(navigator.userAgent),tt=Y&#038;&#038;\"IntersectionObserver\"in window,et=Y&#038;&#038;\"classList\"in document.createElement(\"p\"),nt=Y&#038;&#038;1<window.devicePixelRatio,at={elements_selector:\".lazy\",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"litespeed-loading\",class_loaded:\"litespeed-loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot=\"src\",it=\"srcset\",rt=\"sizes\",ct=\"poster\",lt=\"llOriginalAttrs\",st=\"loading\",ut=\"loaded\",dt=\"applied\",ft=\"error\",_t=\"native\",gt=\"data-\",vt=\"ll-status\",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=[\"IMG\",\"IFRAME\",\"VIDEO\"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=[\"IMG\",\"IFRAME\",\"VIDEO\"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&#038;&#038;tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&#038;&#038;S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&#038;&#038;this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){\"use strict\";function n(){e.body.classList.add(\"litespeed_lazyloaded\")}function a(){console.log(\"[LiteSpeed] Start Lazy Load\"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:\"[data-lazyloaded]\",callback_finish:n})),i=function(){o.update()},t.MutationObserver&#038;&#038;new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener(\"load\",a,!1):t.attachEvent(\"onload\",a)}(window,document);<\/script><script data-no-optimize=\"1\">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){\"use strict\";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&#038;&#038;(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&#038;&#038;(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?\" \":\"\")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp(\"(^|\\\\s+)\"+e+\"(\\\\s+|$)\"),\" \").replace(\/^\\s+\/,\"\").replace(\/\\s+$\/,\"\")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&#038;&#038;e.unobserve(t)}function b(t,e){t&#038;&#038;(t.loadingCount+=e)}function p(t,e){t&#038;&#038;(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)\"SOURCE\"===e.tagName&#038;&#038;n.push(e);return n}function h(t,e){(t=t.parentNode)&#038;&#038;\"PICTURE\"===t.tagName&#038;&#038;n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&#038;&#038;(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&#038;&#038;(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&#038;&#038;t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&#038;&#038;o?o:a)&#038;&#038;(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&#038;&#038;(e.unobserve_completed&#038;&#038;v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&#038;&#038;--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&#038;&#038;v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a=\"VIDEO\"===t.tagName?\"loadeddata\":\"load\";M(t,a,e),M(t,\"error\",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement(\"IMG\"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&#038;&#038;c?c:r)&#038;&#038;(a.style.backgroundImage='url(\"'.concat(r,'\")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&#038;&#038;(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute(\"loading\",\"lazy\"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&#038;&#038;e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&#038;&#038;(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&#038;&#038;(c(t)!==st||\"IMG\"===t.tagName&#038;&#038;(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,\"entered\"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&#038;&#038;v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&#038;&#038;\"loading\"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&#038;&#038;!q(e)&#038;&#038;(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+\"px\"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&#038;&#038;window.addEventListener(\"online\",function(){X(n,a)}),this.update(e)}var Y=\"undefined\"!=typeof window,Z=Y&#038;&#038;!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&#038;&#038;\/(gle|ing|ro)bot|crawl|spider\/i.test(navigator.userAgent),tt=Y&#038;&#038;\"IntersectionObserver\"in window,et=Y&#038;&#038;\"classList\"in document.createElement(\"p\"),nt=Y&#038;&#038;1<window.devicePixelRatio,at={elements_selector:\".lazy\",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"litespeed-loading\",class_loaded:\"litespeed-loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot=\"src\",it=\"srcset\",rt=\"sizes\",ct=\"poster\",lt=\"llOriginalAttrs\",st=\"loading\",ut=\"loaded\",dt=\"applied\",ft=\"error\",_t=\"native\",gt=\"data-\",vt=\"ll-status\",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=[\"IMG\",\"IFRAME\",\"VIDEO\"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=[\"IMG\",\"IFRAME\",\"VIDEO\"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&#038;&#038;tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&#038;&#038;S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&#038;&#038;this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){\"use strict\";function n(){e.body.classList.add(\"litespeed_lazyloaded\")}function a(){console.log(\"[LiteSpeed] Start Lazy Load\"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:\"[data-lazyloaded]\",callback_finish:n})),i=function(){o.update()},t.MutationObserver&#038;&#038;new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener(\"load\",a,!1):t.attachEvent(\"onload\",a)}(window,document);<\/script><\/body><\/p>\n<\/p>\n<\/div>\n<\/div>\n<section class=\"ttd-read-next\" aria-labelledby=\"ttd-rn-h\">\n<h2 id=\"ttd-rn-h\" class=\"ttd-rn-heading\">Read next<\/h2>\n<div class=\"ttd-rn-grid\"><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/sovereign-stack-2026\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/sovereign-stack-featured-300x200.png)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 class=\"ttd-rn-title\">The 2026 Sovereign Stack: Privacy Tools That Actually Resist Surveillance<\/h3>\n<p class=\"ttd-rn-excerpt\">8 layers of the sovereign stack verified live in 2026 \u2014 email, DNS, VPN, hosting, search, comms, money, AI. What to use,\u2026<\/p>\n<\/div>\n<p><\/a><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/eu-chat-control-2026-deadline-builders\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/post1-eu-chat-control-featured-300x300.jpg)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 class=\"ttd-rn-title\">EU Chat Control 2026: The Deadline Every Builder Should Know<\/h3>\n<p class=\"ttd-rn-excerpt\">9 min read\u00b7Published Jun 19, 2026NostrXFacebookRedditTelegramSMSCopyOn this page\u25beThe December 2026 Wallet DeadlineChat Control: From Encryption Backdoors to Identity CheckpointsThe Pipeline: When Wallets\u2026<\/p>\n<\/div>\n<p><\/a><a class=\"ttd-rn-card\" href=\"https:\/\/thethriftydev.com\/blog\/glm-5-2-vs-qwen-local\/\"><\/p>\n<div class=\"ttd-rn-img\" style=\"background-image:url(https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/06\/post3-featured-300x158.png)\"><\/div>\n<div class=\"ttd-rn-body\">\n<h3 class=\"ttd-rn-title\">GLM-5.2 vs Local Qwen vs Opus: Which Should You Run in 2026?<\/h3>\n<p class=\"ttd-rn-excerpt\">9 min read\u00b7Published Jun 19, 2026NostrXFacebookRedditTelegramSMSCopyOn this page\u25beThe Three Models at a GlanceBenchmark Reality CheckThe Cost Story \u2014 Cloud vs LocalWhen to\u2026<\/p>\n<\/div>\n<p><\/a><\/div>\n<\/section>\n<div class=\"ttd-share-row ttd-share-bottom\" role=\"group\" aria-label=\"Share this post\"><a class=\"ttd-share-btn ttd-share-nostr\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Nostr\" data-share=\"Age Verification Creep Tracker: KOSA, App Store ID Laws, and the Fight for Anonymous Speech \u2014 https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/ #nostr\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.6 10.42c0 2.07-.84 3.94-2.2 5.3-1.36 1.35-3.23 2.19-5.3 2.19h-.6v3.51c0 .43-.34.78-.77.78H6.92a.78.78 0 0 1-.78-.78V10.42C6.14 6.6 9.24 3.5 13.06 3.5s5.54 3.1 5.54 6.92zm-3.6 0c0-1.83-1.05-2.92-2.94-2.92-1.9 0-2.94 1.09-2.94 2.92v3.74h.6c1.07 0 1.99-.4 2.72-1.12.74-.74 1.16-1.66 1.16-2.62z\"\/><\/svg><span class=\"ttd-share-label\">Nostr<\/span><\/a><a class=\"ttd-share-btn ttd-share-x\" href=\"https:\/\/twitter.com\/intent\/tweet?text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech&#038;url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on X\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.244 2H21l-6.51 7.44L22.5 22h-7.05l-5.52-7.06L3.6 22H.84l6.97-7.96L1.5 2h7.2l4.98 6.4L18.244 2zm-1.23 18.2h1.94L7.06 3.7H5.02l11.99 16.5z\"\/><\/svg><span class=\"ttd-share-label\">X<\/span><\/a><a class=\"ttd-share-btn ttd-share-facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Facebook\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.9 3.78-3.9 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z\"\/><\/svg><span class=\"ttd-share-label\">Facebook<\/span><\/a><a class=\"ttd-share-btn ttd-share-reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&#038;title=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Reddit\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M22 12.06c0-1.21-.99-2.2-2.2-2.2a2.2 2.2 0 0 0-1.5.59c-1.5-1.05-3.55-1.73-5.83-1.81l1.01-4.72 3.3.7a1.55 1.55 0 1 0 .14-.6l-3.69-.79a.3.3 0 0 0-.36.23l-1.13 5.18c-2.31.06-4.4.75-5.93 1.81a2.2 2.2 0 1 0-2.42 3.55c-.05.27-.07.55-.07.83 0 3.07 3.58 5.57 8 5.57s8-2.5 8-5.57c0-.28-.02-.55-.07-.83.6-.36 1-1.02 1-1.78zM7 13.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0zm9.05 4.06c-1.05.95-2.62 1.43-4.05 1.43-1.43 0-3-.48-4.05-1.43a.4.4 0 0 1 .55-.58c.84.76 2.18 1.15 3.5 1.15s2.66-.39 3.5-1.15a.4.4 0 0 1 .55.58zM15.5 15a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"\/><\/svg><span class=\"ttd-share-label\">Reddit<\/span><\/a><a class=\"ttd-share-btn ttd-share-telegram\" href=\"https:\/\/t.me\/share\/url?url=https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F&#038;text=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Share on Telegram\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M21.95 4.36 18.5 20.5c-.26 1.16-.94 1.45-1.9.9l-5.27-3.88-2.54 2.45c-.28.28-.52.52-1.06.52l.38-5.36 9.78-8.83c.43-.38-.09-.6-.66-.22L5.18 13.45.97 12.12c-1.13-.35-1.15-1.13.24-1.67L20.5 2.92c.94-.35 1.76.22 1.45 1.44z\"\/><\/svg><span class=\"ttd-share-label\">Telegram<\/span><\/a><a class=\"ttd-share-btn ttd-share-sms\" href=\"sms:?&#038;body=Age%20Verification%20Creep%20Tracker%3A%20KOSA%2C%20App%20Store%20ID%20Laws%2C%20and%20the%20Fight%20for%20Anonymous%20Speech%20%E2%80%94%20https%3A%2F%2Fthethriftydev.com%2Fblog%2Fage-verification-creep-tracker%2F%20%23nostr\" target=\"\" rel=\"noopener noreferrer\" aria-label=\"Share on SMS\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20 2H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l4 4 4-4h4a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM7 11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"\/><\/svg><span class=\"ttd-share-label\">SMS<\/span><\/a><a class=\"ttd-share-btn ttd-share-copy\" href=\"#\" target=\"_blank\" rel=\"\" aria-label=\"Share on Copy\" data-share=\"https:\/\/thethriftydev.com\/blog\/age-verification-creep-tracker\/\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg><span class=\"ttd-share-label\">Copy<\/span><\/a><span class=\"ttd-share-toast\" aria-live=\"polite\"><\/span><\/div>\n<aside class=\"ttd-author-trust\" aria-label=\"About TheThriftyDev\">\n<h2>About TheThriftyDev<\/h2>\n<p>I\u2019m Bobby Hendry, the builder behind TheThriftyDev. I write practical field notes on AI automation, privacy, digital rights, self-hosting, Nostr, and the Sovereign Builder Protocol \u2014 with a bias toward tools people can actually use.<\/p>\n<p>This blog is the working notebook. The homepage is the author hub and project map.<\/p>\n<p><a href=\"https:\/\/thethriftydev.com\/\">Visit the TheThriftyDev homepage<\/a> \u00b7 <a href=\"https:\/\/thethriftydev.com\/blog\/start-here\/\">Start with the blog guide path<\/a> \u00b7 <a href=\"https:\/\/thethriftydev.com\/blog\/sovereign-builder-protocol\/\">Read the Sovereign Builder Protocol<\/a><\/p>\n<\/aside>\n<\/div>\n<footer class=\"entry-footer default-max-width\">\n<div class=\"posted-by\"><span class=\"posted-on\">Published <time class=\"entry-date published updated\" datetime=\"2026-05-24T16:19:16+00:00\">May 24, 2026<\/time><\/span><\/div>\n<div class=\"post-taxonomies\"><span class=\"cat-links\">Categorized as <a href=\"https:\/\/thethriftydev.com\/blog\/category\/blog\/\" rel=\"category tag\">Blog<\/a> <\/span><span class=\"tags-links\">Tagged <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/age-verification\/\" rel=\"tag\">age verification<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/anonymous-speech\/\" rel=\"tag\">anonymous speech<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/censorship-resistance\/\" rel=\"tag\">censorship resistance<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/digital-identity\/\" rel=\"tag\">digital identity<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/digital-sovereignty\/\" rel=\"tag\">digital sovereignty<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/free-speech\/\" rel=\"tag\">free speech<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/kosa\/\" rel=\"tag\">KOSA<\/a>, <a href=\"https:\/\/thethriftydev.com\/blog\/tag\/privacy\/\" rel=\"tag\">privacy<\/a><\/span><\/div>\n<\/footer>\n<div class=\"author-bio show-avatars\">\n<img data-lazyloaded=\"1\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=\" alt='' data-src='https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png' data-srcset='https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-300x300.png 2x' class='avatar avatar-85 photo' height='85' width='85' decoding='async'\/><noscript><img alt='' src='https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-150x150.png' srcset='https:\/\/thethriftydev.com\/blog\/wp-content\/uploads\/2026\/05\/thethriftydev-profile-logo-300x300.png 2x' class='avatar avatar-85 photo' height='85' width='85' decoding='async'\/><\/noscript><\/p>\n<div class=\"author-bio-content\">\n<h2 class=\"author-title\">\nBy TheThriftyDev<\/h2>\n<p class=\"author-description\"> Building smart with AI and automation. No fluff, just results.<\/p>\n<p><a class=\"author-link\" href=\"https:\/\/thethriftydev.com\/blog\/author\/thethriftydev\/\" rel=\"author\">View all of TheThriftyDev&#039;s posts.<\/a><\/div>\n<\/div>\n<\/article>\n<div id=\"comments\" class=\"comments-area default-max-width show-avatars\">\n<div id=\"respond\" class=\"comment-respond\">\n<h2 id=\"reply-title\" class=\"comment-reply-title\">Leave a comment <small><a rel=\"nofollow\" id=\"cancel-comment-reply-link\" href=\"\/blog\/age-verification-creep-tracker\/#respond\" style=\"display:none;\">Cancel reply<\/a><\/small><\/h2>\n<form action=\"https:\/\/thethriftydev.com\/blog\/wp-comments-post.php\" method=\"post\" id=\"commentform\" class=\"comment-form\">\n<p class=\"comment-notes\"><span id=\"email-notes\">Your email address will not be published.<\/span> <span class=\"required-field-message\">Required fields are marked <span class=\"required\">*<\/span><\/span><\/p>\n<p class=\"comment-form-comment\"><label for=\"comment\">Comment <span class=\"required\">*<\/span><\/label><textarea autocomplete=\"new-password\"  id=\"dea1085052\"  name=\"dea1085052\"   cols=\"45\" rows=\"5\" maxlength=\"65525\" required><\/textarea><textarea id=\"comment\" aria-label=\"hp-comment\" aria-hidden=\"true\" name=\"comment\" autocomplete=\"new-password\" style=\"padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;\" tabindex=\"-1\"><\/textarea><script data-optimized=\"1\" data-noptimize src=\"data:text\/javascript;base64,ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1lbnQiKS5zZXRBdHRyaWJ1dGUoImlkIiwiYWE1MmE4NWExMWJlMWIxOGM0Y2JjOTUyZDRjYTRlOGMiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhMTA4NTA1MiIpLnNldEF0dHJpYnV0ZSgiaWQiLCJjb21tZW50Iik=\" defer><\/script><input type=\"hidden\" name=\"ab_init_time\" value=\"1782055953\" \/><\/p>\n<p class=\"comment-form-author\"><label for=\"author\">Name<\/label> <input id=\"author\" name=\"author\" type=\"text\" value=\"\" size=\"30\" maxlength=\"245\" autocomplete=\"name\" \/><\/p>\n<p class=\"comment-form-email\"><label for=\"email\">Email<\/label> <input id=\"email\" name=\"email\" type=\"email\" value=\"\" size=\"30\" maxlength=\"100\" aria-describedby=\"email-notes\" autocomplete=\"email\" \/><\/p>\n<p class=\"comment-form-url\"><label for=\"url\">Website<\/label> <input id=\"url\" name=\"url\" type=\"url\" value=\"\" size=\"30\" maxlength=\"200\" autocomplete=\"url\" \/><\/p>\n<p class=\"comment-form-cookies-consent\"><input id=\"wp-comment-cookies-consent\" name=\"wp-comment-cookies-consent\" type=\"checkbox\" value=\"yes\" \/> <label for=\"wp-comment-cookies-consent\">Save my name, email, and website in this browser for the next time I comment.<\/label><\/p>\n<p class=\"form-submit\"><input name=\"submit\" type=\"submit\" id=\"submit\" class=\"submit\" value=\"Post Comment\" \/> <input type='hidden' name='comment_post_ID' value='622' id='comment_post_ID' \/><br \/>\n<input type='hidden' name='comment_parent' id='comment_parent' value='0' \/><\/p>\n<\/form>\n<\/div>\n<\/div>\n<nav class=\"navigation post-navigation\" aria-label=\"Posts\">\n<h2 class=\"screen-reader-text\">Post navigation<\/h2>\n<div class=\"nav-links\">\n<div class=\"nav-previous\"><a href=\"https:\/\/thethriftydev.com\/blog\/kosa-age-verification-privacy-pseudonymous-speech\/\" rel=\"prev\"><\/p>\n<p class=\"meta-nav\"><svg class=\"svg-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\" role=\"img\" focusable=\"false\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 13v-2H8l4-4-1-2-7 7 7 7 1-2-4-4z\" fill=\"currentColor\"\/><\/svg>Previous post<\/p>\n<p class=\"post-title\">KOSA Is Not Just a Kids Safety Bill. It Is an Age Verification Creep Bill<\/p>\n<p><\/a><\/div>\n<div class=\"nav-next\"><a href=\"https:\/\/thethriftydev.com\/blog\/openclaw-agentic-framework-setup-guide\/\" rel=\"next\"><\/p>\n<p class=\"meta-nav\">Next post<svg class=\"svg-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\" role=\"img\" focusable=\"false\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"m4 13v-2h12l-4-4 1-2 7 7-7 7-1-2 4-4z\" fill=\"currentColor\"\/><\/svg><\/p>\n<p class=\"post-title\">OpenClaw as an Agentic Framework: How I Use It, Why It Matters, and What to Consider Before You Set It Up<\/p>\n<p><\/a><\/div>\n<\/div>\n<\/nav>\n<p><\/main><\/div>\n<\/div>\n<aside class=\"widget-area\">\n<section id=\"block-2\" class=\"widget widget_block widget_search\">\n<form role=\"search\" method=\"get\" action=\"https:\/\/thethriftydev.com\/blog\/\" class=\"wp-block-search__button-outside wp-block-search__text-button wp-block-search\"    ><label class=\"wp-block-search__label\" for=\"wp-block-search__input-1\" >Search<\/label><\/p>\n<div class=\"wp-block-search__inside-wrapper\" ><input class=\"wp-block-search__input\" id=\"wp-block-search__input-1\" placeholder=\"\" value=\"\" type=\"search\" name=\"s\" required \/><button aria-label=\"Search\" class=\"wp-block-search__button wp-element-button\" type=\"submit\" >Search<\/button><\/div>\n<\/form>\n<\/section>\n<section id=\"block-3\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Recent Posts<\/h2>\n<ul class=\"wp-block-latest-posts__list wp-block-latest-posts\">\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/sovereign-stack-2026\/\">The 2026 Sovereign Stack: Privacy Tools That Actually Resist Surveillance<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/eu-chat-control-2026-deadline-builders\/\">EU Chat Control 2026: The Deadline Every Builder Should Know<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/glm-5-2-vs-qwen-local\/\">GLM-5.2 vs Local Qwen vs Opus: Which Should You Run in 2026?<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/delete-yourself-from-data-brokers\/\">Delete Yourself From Data Brokers Without Paying DeleteMe<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thethriftydev.com\/blog\/openclaw-agentic-framework-setup-guide\/\">OpenClaw as an Agentic Framework: How I Use It, Why It Matters, and What to Consider Before You Set It Up<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-4\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Recent Comments<\/h2>\n<div class=\"no-comments wp-block-latest-comments\">No comments to show.<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-5\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Archives<\/h2>\n<ul class=\"wp-block-archives-list wp-block-archives\">\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/06\/\">June 2026<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/05\/\">May 2026<\/a><\/li>\n<li><a href=\"https:\/\/thethriftydev.com\/blog\/2026\/04\/\">April 2026<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"block-6\" class=\"widget widget_block\">\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Categories<\/h2>\n<ul class=\"wp-block-categories-list wp-block-categories-taxonomy-category wp-block-categories\">\n<li class=\"cat-item cat-item-36\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai\/\">AI<\/a><\/li>\n<li class=\"cat-item cat-item-61\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai-news\/\">AI News<\/a><\/li>\n<li class=\"cat-item cat-item-2\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/ai-tools-reviews\/\">AI Tools &amp; Reviews<\/a><\/li>\n<li class=\"cat-item cat-item-60\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/automation\/\">Automation<\/a><\/li>\n<li class=\"cat-item cat-item-1\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/blog\/\">Blog<\/a><\/li>\n<li class=\"cat-item cat-item-5\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/case-studies\/\">Case Studies<\/a><\/li>\n<li class=\"cat-item cat-item-38\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/digital-rights\/\">Digital Rights<\/a><\/li>\n<li class=\"cat-item cat-item-62\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/gaming\/\">Gaming<\/a><\/li>\n<li class=\"cat-item cat-item-7\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/no-code-automation\/\">No-Code &amp; Automation<\/a><\/li>\n<li class=\"cat-item cat-item-34\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/privacy\/\">Privacy<\/a><\/li>\n<li class=\"cat-item cat-item-37\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/search-engines\/\">Search Engines<\/a><\/li>\n<li class=\"cat-item cat-item-93\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/sovereign-builder\/\">Sovereign Builder<\/a><\/li>\n<li class=\"cat-item cat-item-4\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/strategy-mindset\/\">Strategy &amp; Mindset<\/a><\/li>\n<li class=\"cat-item cat-item-35\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/technology\/\">Technology<\/a><\/li>\n<li class=\"cat-item cat-item-63\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/tutorials\/\">Tutorials<\/a><\/li>\n<li class=\"cat-item cat-item-3\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/tutorials-guides\/\">Tutorials &amp; Guides<\/a><\/li>\n<li class=\"cat-item cat-item-6\"><a href=\"https:\/\/thethriftydev.com\/blog\/category\/workflow-examples\/\">Workflow Examples<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<\/aside>\n<footer id=\"colophon\" class=\"site-footer\">\n<div class=\"site-info\">\n<div class=\"site-name\">\n<a href=\"https:\/\/thethriftydev.com\/blog\/\">The Thrifty Dev<\/a><\/div>\n<div class=\"powered-by\">\nProudly powered by <a href=\"https:\/\/wordpress.org\/\" rel=\"nofollow noopener\" target=\"_blank\">WordPress<\/a>.<\/div>\n<\/div>\n<\/footer>\n<\/div>\n<p> <script type=\"speculationrules\">{\"prefetch\":[{\"source\":\"document\",\"where\":{\"and\":[{\"href_matches\":\"\/blog\/*\"},{\"not\":{\"href_matches\":[\"\/blog\/wp-*.php\",\"\/blog\/wp-admin\/*\",\"\/blog\/wp-content\/uploads\/*\",\"\/blog\/wp-content\/*\",\"\/blog\/wp-content\/plugins\/*\",\"\/blog\/wp-content\/themes\/twentytwentyone\/*\",\"\/blog\/*\\\\?(.+)\"]}},{\"not\":{\"selector_matches\":\"a[rel~=\\\"nofollow\\\"]\"}},{\"not\":{\"selector_matches\":\".no-prefetch, .no-prefetch a\"}}]},\"eagerness\":\"conservative\"}]}<\/script> <\/p>\n<div class=\"ttd-abn ttd-abn-sticky\" data-variant=\"E\">\n<button class=\"ttd-abn-close\" type=\"button\" aria-label=\"Close newsletter signup\">\u00d7<\/button><\/p>\n<div class=\"ttd-abn-kicker\">TheThriftyDev Dispatch<\/div>\n<p><strong>De-Google Without Going Crazy<\/strong><\/p>\n<p>Get the practical escape map: search, email, cloud files, photos, browser, phone backups, and what to replace first.<\/p>\n<form class=\"ttd-abn-form\">\n<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\"><br \/>\n<input type=\"hidden\" name=\"variant\" value=\"E\"><br \/>\n<button type=\"submit\">Send the escape map<\/button><\/form>\n<p><small>No spam. Practical privacy, AI, backup, and tool drops. Unsubscribe anytime.<\/small><\/p>\n<div class=\"ttd-abn-result\" role=\"status\" aria-live=\"polite\"><\/div>\n<\/div>\n<p><canvas id=\"ttd-matrix-rain-static\" aria-hidden=\"true\"><\/canvas> <script data-optimized=\"1\" src=\"data:text\/javascript;base64,ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCduby1qcycp\" defer><\/script> <script data-optimized=\"1\" src=\"data:text\/javascript;base64,aWYoLTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01TSUUnKXx8LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdUcmlkZW50LycpKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2lzLUlFJyl9\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-abn-js-extra\" src=\"data:text\/javascript;base64,dmFyIFRURF9BQk49eyJhamF4IjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWFkbWluL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiIyODM1MzE3MjM1In0=\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-abn-js-after\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcmVhZHkoZm4pe2RvY3VtZW50LnJlYWR5U3RhdGUhPT0nbG9hZGluZyc\/Zm4oKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJyxmbil9CnJlYWR5KGZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnR0ZC1hYm4nKS5mb3JFYWNoKGZ1bmN0aW9uKGJveCl7dmFyIGNsb3NlPWJveC5xdWVyeVNlbGVjdG9yKCcudHRkLWFibi1jbG9zZScpO2lmKGNsb3NlKWNsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2JveC5jbGFzc0xpc3QuYWRkKCd0dGQtYWJuLWhpZGRlbicpfSk7dmFyIGZvcm09Ym94LnF1ZXJ5U2VsZWN0b3IoJy50dGQtYWJuLWZvcm0nKTtpZighZm9ybSlyZXR1cm47Zm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgZmQ9bmV3IEZvcm1EYXRhKGZvcm0pO2ZkLmFwcGVuZCgnYWN0aW9uJywndHRkX2Fibl9zaWdudXAnKTtmZC5hcHBlbmQoJ25vbmNlJyxUVERfQUJOLm5vbmNlKTtmZXRjaChUVERfQUJOLmFqYXgse21ldGhvZDonUE9TVCcsY3JlZGVudGlhbHM6J3NhbWUtb3JpZ2luJyxib2R5OmZkfSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gci5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGope2JveC5xdWVyeVNlbGVjdG9yKCcudHRkLWFibi1yZXN1bHQnKS50ZXh0Q29udGVudD0oai5kYXRhJiZqLmRhdGEubWVzc2FnZSl8fCdTaWduZWQgdXAuJztpZihqLnN1Y2Nlc3MpZm9ybS5zdHlsZS5kaXNwbGF5PSdub25lJ30pLmNhdGNoKGZ1bmN0aW9uKCl7Ym94LnF1ZXJ5U2VsZWN0b3IoJy50dGQtYWJuLXJlc3VsdCcpLnRleHRDb250ZW50PSdTaWdudXAgZmFpbGVkLiBUcnkgYWdhaW4uJ30pfSl9KX0pfSkoKQ==\" defer><\/script> <script data-optimized=\"1\" id=\"ttd-blog-enh-js-after\" src=\"data:text\/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIG92ZXJsYXk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R0ZC1zZWFyY2gtb3ZlcmxheScpO2lmKG92ZXJsYXkpe3ZhciBpbnB1dD1vdmVybGF5LnF1ZXJ5U2VsZWN0b3IoJy50dGQtc2VhcmNoLWlucHV0Jyk7dmFyIGNsb3NlQnRuPW92ZXJsYXkucXVlcnlTZWxlY3RvcignLnR0ZC1zZWFyY2gtY2xvc2UnKTt2YXIgb3Blbj1mdW5jdGlvbigpe292ZXJsYXkuaGlkZGVuPSExO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnB1dCYmaW5wdXQuZm9jdXMoKX0sMTApO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2VhcmNoLXRyaWdnZXInKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywndHJ1ZScpfSl9O3ZhciBjbG9zZT1mdW5jdGlvbigpe292ZXJsYXkuaGlkZGVuPSEwO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2VhcmNoLXRyaWdnZXInKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywnZmFsc2UnKX0pfTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudHRkLXNlYXJjaC10cmlnZ2VyJykuZm9yRWFjaChmdW5jdGlvbihidG4pe2J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZXYpe2V2LnByZXZlbnREZWZhdWx0KCk7b3BlbigpfSl9KTtpZihjbG9zZUJ0biljbG9zZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsY2xvc2UpO292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2KXtpZihldi50YXJnZXQ9PT1vdmVybGF5KWNsb3NlKCk7fSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZnVuY3Rpb24oZXYpe2lmKGV2LmtleT09PSdFc2NhcGUnJiYhb3ZlcmxheS5oaWRkZW4pY2xvc2UoKTtlbHNlIGlmKChldi5rZXk9PT0nLyd8fChldi5rZXk9PT0naycmJihldi5jdHJsS2V5fHxldi5tZXRhS2V5KSkpJiZvdmVybGF5LmhpZGRlbiYmIS9JTlBVVHxURVhUQVJFQS8udGVzdChkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUpKXtldi5wcmV2ZW50RGVmYXVsdCgpO29wZW4oKX19KX0KaWYoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50dGQtc2hhcmUtcm93JykpcmV0dXJuO2Z1bmN0aW9uIHRvYXN0KHJvdyxtc2cpe3ZhciB0PXJvdy5xdWVyeVNlbGVjdG9yKCcudHRkLXNoYXJlLXRvYXN0Jyk7aWYoIXQpcmV0dXJuO3QudGV4dENvbnRlbnQ9bXNnO3QuY2xhc3NMaXN0LmFkZCgnaXMtdmlzaWJsZScpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLXZpc2libGUnKX0sMTgwMCl9CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50dGQtc2hhcmUtcm93JykuZm9yRWFjaChmdW5jdGlvbihyb3cpe3Jvdy5xdWVyeVNlbGVjdG9yQWxsKCcudHRkLXNoYXJlLWNvcHksIC50dGQtc2hhcmUtbm9zdHInKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bil7YnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldil7ZXYucHJldmVudERlZmF1bHQoKTt2YXIgcGF5bG9hZD1idG4uZ2V0QXR0cmlidXRlKCdkYXRhLXNoYXJlJyl8fGxvY2F0aW9uLmhyZWY7dmFyIGNvcHk9ZnVuY3Rpb24odGV4dCl7aWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpe3JldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KX0KcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXt2YXIgdGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTt0YS52YWx1ZT10ZXh0O3RhLnN0eWxlLnBvc2l0aW9uPSdmaXhlZCc7dGEuc3R5bGUub3BhY2l0eT0nMCc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7dGEuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7cmVzb2x2ZSgpfWNhdGNoKGUpe3JlamVjdChlKX1maW5hbGx5e2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGEpfX0pfTtjb3B5KHBheWxvYWQpLnRoZW4oZnVuY3Rpb24oKXt0b2FzdChyb3csYnRuLmNsYXNzTGlzdC5jb250YWlucygndHRkLXNoYXJlLW5vc3RyJyk\/J0NvcGllZCDigJQgcGFzdGUgaW4geW91ciBOb3N0ciBjbGllbnQnOidMaW5rIGNvcGllZCcpfSkuY2F0Y2goZnVuY3Rpb24oKXt0b2FzdChyb3csJ0NvcHkgZmFpbGVkJyl9KX0pfSl9KTt2YXIgdG9jPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50dGQtdG9jJyk7aWYoIXRvYylyZXR1cm47dmFyIHRvZ2dsZT10b2MucXVlcnlTZWxlY3RvcignLnR0ZC10b2MtdG9nZ2xlJyk7dmFyIGxpc3Q9dG9jLnF1ZXJ5U2VsZWN0b3IoJy50dGQtdG9jLWxpc3QnKTtpZih0b2dnbGUmJmxpc3Qpe3RvZ2dsZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt2YXIgb3Blbj1saXN0LmNsYXNzTGlzdC50b2dnbGUoJ2lzLW9wZW4nKTt0b2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJyxvcGVuPyd0cnVlJzonZmFsc2UnKX0pfQp2YXIgbGlua3M9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbaHJlZl49IiMiXScpKTtpZighbGlua3MubGVuZ3RofHwhKCdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSlyZXR1cm47dmFyIGlkVG9MaT17fTtsaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBpZD1hLmdldEF0dHJpYnV0ZSgnaHJlZicpLnNsaWNlKDEpO2lkVG9MaVtpZF09YS5wYXJlbnROb2RlfSk7dmFyIGhlYWRpbmdzPWxpbmtzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5zbGljZSgxKSl9KS5maWx0ZXIoQm9vbGVhbik7dmFyIHZpc2libGU9bmV3IFNldCgpO3ZhciBpbz1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7ZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuaXNJbnRlcnNlY3RpbmcpdmlzaWJsZS5hZGQoZS50YXJnZXQuaWQpO2Vsc2UgdmlzaWJsZS5kZWxldGUoZS50YXJnZXQuaWQpfSk7T2JqZWN0LnZhbHVlcyhpZFRvTGkpLmZvckVhY2goZnVuY3Rpb24obGkpe2xpLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpfSk7dmFyIGZpcnN0VmlzaWJsZT1oZWFkaW5ncy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiB2aXNpYmxlLmhhcyhoLmlkKX0pO3ZhciBhY3RpdmVJZD1maXJzdFZpc2libGU\/Zmlyc3RWaXNpYmxlLmlkOihmdW5jdGlvbigpe3ZhciBwYXNzZWQ9aGVhZGluZ3MuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDwxMjB9KTtyZXR1cm4gcGFzc2VkLmxlbmd0aD9wYXNzZWRbcGFzc2VkLmxlbmd0aC0xXS5pZDpudWxsfSkoKTtpZihhY3RpdmVJZCYmaWRUb0xpW2FjdGl2ZUlkXSlpZFRvTGlbYWN0aXZlSWRdLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO30se3Jvb3RNYXJnaW46Jy04MHB4IDBweCAtNjUlIDBweCcsdGhyZXNob2xkOjB9KTtoZWFkaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lvLm9ic2VydmUoaCl9KX0pKCk7KGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R0ZC1tYXRyaXgtcmFpbi1zdGF0aWMnKTtpZighYylyZXR1cm47dmFyIGN0eD1jLmdldENvbnRleHQoJzJkJyk7aWYoIWN0eClyZXR1cm47dmFyIENIQVJTPSfjgqLjgqHjgqvjgrXjgr\/jg4rjg4\/jg57jg6Tjg6Pjg6njg6\/jgqzjgrbjg4Djg5Djg5HjgqTjgqPjgq3jgrfjg4Hjg4vjg5Ljg5\/jg6rjg7Djgq7jgrjjg4Ljg5Pjg5TjgqbjgqXjgq\/jgrnjg4Tjg4zjg5Xjg6Djg6bjg6Xjg6vjgrDjgrrjg5bjg4Xjg5fjgqjjgqfjgrHjgrvjg4bjg43jg5jjg6Hjg6zjg7HjgrLjgrzjg4fjg5njg5rjgqrjgqnjgrPjgr3jg4jjg47jg5vjg6Ljg6jjg6fjg63jg7LjgrTjgr7jg4njg5zjg53jg7Tjg4Pjg7MwMTIzNDU2Nzg5QUJDREVGOj48Lz0\/Ky0qLycuc3BsaXQoJycpO3ZhciBGT05UPTE2O2Z1bmN0aW9uIHJjKCl7cmV0dXJuIENIQVJTWyhNYXRoLnJhbmRvbSgpKkNIQVJTLmxlbmd0aCl8MF19CmZ1bmN0aW9uIHBhaW50KCl7dmFyIHc9d2luZG93LmlubmVyV2lkdGgsaD13aW5kb3cuaW5uZXJIZWlnaHQ7dmFyIGRwcj1NYXRoLm1pbih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSwyKTtjLndpZHRoPU1hdGguZmxvb3IodypkcHIpO2MuaGVpZ2h0PU1hdGguZmxvb3IoaCpkcHIpO2Muc3R5bGUud2lkdGg9dysncHgnO2Muc3R5bGUuaGVpZ2h0PWgrJ3B4JztjdHguc2V0VHJhbnNmb3JtKGRwciwwLDAsZHByLDAsMCk7Y3R4LmNsZWFyUmVjdCgwLDAsdyxoKTtjdHguZm9udD1GT05UKydweCAiSmV0QnJhaW5zIE1vbm8iLCJJQk0gUGxleCBNb25vIix1aS1tb25vc3BhY2UsbW9ub3NwYWNlJzt2YXIgY29scz1NYXRoLmNlaWwody9GT05UKTtmb3IodmFyIGk9MDtpPGNvbHM7aSsrKXt2YXIgeD1pKkZPTlQ7dmFyIGhlYWRZPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooaCtGT05UKjgpKS1GT05UKjQ7dmFyIGxlbj02KygoTWF0aC5yYW5kb20oKSoyMil8MCk7Zm9yKHZhciBqPTA7ajxsZW47aisrKXt2YXIgeT1oZWFkWS1qKkZPTlQ7aWYoeTwtRk9OVHx8eT5oKWNvbnRpbnVlO3ZhciBicmlnaHQ9MS0oai9sZW4pO2lmKGo9PT0wKWN0eC5maWxsU3R5bGU9J3JnYmEoMTkwLDI1NSwyMTAsLjkyKSc7ZWxzZSBpZihicmlnaHQ+LjU1KWN0eC5maWxsU3R5bGU9J3JnYmEoMCwyNTUsNjUsJysoYnJpZ2h0Ki45KS50b0ZpeGVkKDIpKycpJztlbHNlIGN0eC5maWxsU3R5bGU9J3JnYmEoMCwyNTUsNjUsJysoYnJpZ2h0Ki40NSkudG9GaXhlZCgyKSsnKSc7Y3R4LmZpbGxUZXh0KHJjKCkseCx5KX19fQpwYWludCgpO3ZhciBydD1udWxsO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHJ0KTtydD1zZXRUaW1lb3V0KHBhaW50LDE1MCl9KX0pKCk=\" defer><\/script> <script data-optimized=\"1\" id=\"hostinger-reach-subscription-block-view-js-extra\" src=\"data:text\/javascript;base64,dmFyIGhvc3Rpbmdlcl9yZWFjaF9zdWJzY3JpcHRpb25fYmxvY2tfZGF0YT17ImVuZHBvaW50IjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWpzb24vaG9zdGluZ2VyLXJlYWNoL3YxL2NvbnRhY3QiLCJub25jZSI6IjkzYmIwN2UzYjIiLCJ0cmFuc2xhdGlvbnMiOnsidGhhbmtzIjoiVGhhbmtzIGZvciBzdWJzY3JpYmluZy4iLCJlcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiJ9fQ==\" defer><\/script> <script data-optimized=\"1\" id=\"hostinger-reach-subscription-block-view-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/ac5a690520d5552994fba7b741da85ac.js?ver=337a8\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" data-wp-strategy=\"async\" fetchpriority=\"low\" id=\"comment-reply-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/63a9de6013e28080a47ea706053479be.js?ver=05f61\" defer data-deferred=\"1\"><\/script> <script id=\"twenty-twenty-one-ie11-polyfills-js-after\" src=\"data:text\/javascript;base64,KEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMmJkVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3QmJndpbmRvdy5Ob2RlTGlzdCYmTm9kZUxpc3QucHJvdG90eXBlLmZvckVhY2gpfHxkb2N1bWVudC53cml0ZSgnPFx1MDA3M2NyaXB0IHNyYz0iaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXR3ZW50eW9uZS9hc3NldHMvanMvcG9seWZpbGxzLmpzP3Zlcj0yLjciPjwvc2NyJysnaXB0Picp\" defer><\/script> <script data-optimized=\"1\" id=\"twenty-twenty-one-responsive-embeds-script-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/0e2783160bf6fa0b0f51c4fb054530ae.js?ver=6490e\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" id=\"newsletter-js-extra\" src=\"data:text\/javascript;base64,dmFyIG5ld3NsZXR0ZXJfZGF0YT17ImFjdGlvbl91cmwiOiJodHRwczovL3RoZXRocmlmdHlkZXYuY29tL2Jsb2cvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAifQ==\" defer><\/script> <script data-optimized=\"1\" id=\"newsletter-js\" src=\"https:\/\/thethriftydev.com\/blog\/wp-content\/litespeed\/js\/7956b9b01ea213a21a59fd214701699c.js?ver=28f39\" defer data-deferred=\"1\"><\/script> <script data-optimized=\"1\" id=\"wp-statistics-tracker-js-extra\" src=\"data:text\/javascript;base64,dmFyIFdQX1N0YXRpc3RpY3NfVHJhY2tlcl9PYmplY3Q9eyJyZXF1ZXN0VXJsIjoiaHR0cHM6Ly90aGV0aHJpZnR5ZGV2LmNvbS9ibG9nIiwiYWpheFVybCI6Imh0dHBzOi8vdGhldGhyaWZ0eWRldi5jb20vYmxvZy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImhpdFBhcmFtcyI6eyJ3cF9zdGF0aXN0aWNzX2hpdCI6MSwic291cmNlX3R5cGUiOiJwb3N0Iiwic291cmNlX2lkIjo2MjIsInNlYXJjaF9xdWVyeSI6IiIsInNpZ25hdHVyZSI6IjYxMjZkYThlNDY1N2E0OTU4MmY0YjM2YWI1YjZjZDJhIiwiYWN0aW9uIjoid3Bfc3RhdGlzdGljc19oaXRfcmVjb3JkIn0sIm9wdGlvbiI6eyJkbnRFbmFibGVkIjoiMSIsImJ5cGFzc0FkQmxvY2tlcnMiOiIxIiwiY29uc2VudEludGVncmF0aW9uIjp7Im5hbWUiOm51bGwsInN0YXR1cyI6W119LCJpc1ByZXZpZXciOiExLCJ1c2VyT25saW5lIjohMSwiaXNXcENvbnNlbnRBcGlBY3RpdmUiOiExfSwiaXNMZWdhY3lFdmVudExvYWRlZCI6IiIsImN1c3RvbUV2ZW50QWpheFVybCI6Imh0dHBzOi8vdGhldGhyaWZ0eWRldi5jb20vYmxvZy93cC1hZG1pbi9hZG1pbi1hamF4LnBocD9hY3Rpb249d3Bfc3RhdGlzdGljc19jdXN0b21fZXZlbnQmbm9uY2U9NzY3YjUzODFkOCIsIm9ubGluZVBhcmFtcyI6eyJ3cF9zdGF0aXN0aWNzX2hpdCI6MSwic291cmNlX3R5cGUiOiJwb3N0Iiwic291cmNlX2lkIjo2MjIsInNlYXJjaF9xdWVyeSI6IiIsInNpZ25hdHVyZSI6IjYxMjZkYThlNDY1N2E0OTU4MmY0YjM2YWI1YjZjZDJhIiwiYWN0aW9uIjoid3Bfc3RhdGlzdGljc19vbmxpbmVfY2hlY2sifSwianNDaGVja1RpbWUiOiI2MDAwMCJ9\" defer><\/script> <script data-optimized=\"1\" id=\"wp-statistics-tracker-js\" src=\"https:\/\/thethriftydev.com\/blog\/?200471=d4df5b5bce.js&#038;ver=14.16.8\" defer data-deferred=\"1\"><\/script> <script id=\"ttd-vitals\" data-no-optimize=\"1\">(function(){\n  if (Math.random() > 0.1) return;\n  var url = \"https:\\\/\\\/thethriftydev.com\\\/blog\\\/wp-json\\\/ttdseo\\\/v1\\\/vitals\";\n  var sent = {}, path = location.pathname;\n  function send(name, value, rating) {\n    if (sent[name]) return; sent[name] = 1;\n    var data = JSON.stringify({n:name, v:Math.round(value*100)\/100, r:rating||'', p:path,\n      d:(window.matchMedia('(hover: none)').matches?'touch':'desktop'),\n      c:(navigator.connection&&navigator.connection.effectiveType)||'',\n      t:Date.now()});\n    if (navigator.sendBeacon) navigator.sendBeacon(url, data);\n    else fetch(url, {method:'POST', keepalive:true, headers:{'Content-Type':'text\/plain'}, body:data});\n  }\n  \/\/ LCP\n  try {\n    new PerformanceObserver(function(list){\n      var entries = list.getEntries(); var last = entries[entries.length-1];\n      if (last) send('LCP', last.renderTime || last.loadTime || last.startTime, last.startTime>4000?'poor':last.startTime>2500?'needs-improvement':'good');\n    }).observe({type:'largest-contentful-paint', buffered:true});\n  } catch(e){}\n  \/\/ CLS\n  try {\n    var cls = 0, sessionValue = 0, sessionEntries = [];\n    new PerformanceObserver(function(list){\n      list.getEntries().forEach(function(e){\n        if (!e.hadRecentInput) {\n          var first = sessionEntries[0], last = sessionEntries[sessionEntries.length-1];\n          if (sessionValue && (e.startTime - last.startTime < 1000) &#038;&#038; (e.startTime - first.startTime < 5000)) {\n            sessionValue += e.value; sessionEntries.push(e);\n          } else { sessionValue = e.value; sessionEntries = [e]; }\n          if (sessionValue > cls) cls = sessionValue;\n        }\n      });\n    }).observe({type:'layout-shift', buffered:true});\n    addEventListener('visibilitychange', function(){\n      if (document.visibilityState === 'hidden') send('CLS', cls, cls>0.25?'poor':cls>0.1?'needs-improvement':'good');\n    });\n  } catch(e){}\n  \/\/ INP (approximation via Event Timing API)\n  try {\n    var maxDur = 0;\n    new PerformanceObserver(function(list){\n      list.getEntries().forEach(function(e){\n        if (e.interactionId && e.duration > maxDur) maxDur = e.duration;\n      });\n    }).observe({type:'event', buffered:true, durationThreshold:40});\n    addEventListener('visibilitychange', function(){\n      if (document.visibilityState === 'hidden' && maxDur > 0) send('INP', maxDur, maxDur>500?'poor':maxDur>200?'needs-improvement':'good');\n    });\n  } catch(e){}\n  \/\/ TTFB + FCP via Navigation\/Paint Timing\n  try {\n    var nav = performance.getEntriesByType('navigation')[0];\n    if (nav) send('TTFB', nav.responseStart - nav.requestStart, nav.responseStart>1800?'poor':nav.responseStart>800?'needs-improvement':'good');\n    var fcp = performance.getEntriesByName('first-contentful-paint')[0];\n    if (fcp) send('FCP', fcp.startTime, fcp.startTime>3000?'poor':fcp.startTime>1800?'needs-improvement':'good');\n  } catch(e){}\n})();<\/script> <script data-no-optimize=\"1\">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){\"use strict\";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&#038;&#038;(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&#038;&#038;(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?\" \":\"\")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp(\"(^|\\\\s+)\"+e+\"(\\\\s+|$)\"),\" \").replace(\/^\\s+\/,\"\").replace(\/\\s+$\/,\"\")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&#038;&#038;e.unobserve(t)}function b(t,e){t&#038;&#038;(t.loadingCount+=e)}function p(t,e){t&#038;&#038;(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)\"SOURCE\"===e.tagName&#038;&#038;n.push(e);return n}function h(t,e){(t=t.parentNode)&#038;&#038;\"PICTURE\"===t.tagName&#038;&#038;n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&#038;&#038;(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&#038;&#038;(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&#038;&#038;t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&#038;&#038;o?o:a)&#038;&#038;(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&#038;&#038;(e.unobserve_completed&#038;&#038;v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&#038;&#038;--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&#038;&#038;v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a=\"VIDEO\"===t.tagName?\"loadeddata\":\"load\";M(t,a,e),M(t,\"error\",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement(\"IMG\"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&#038;&#038;c?c:r)&#038;&#038;(a.style.backgroundImage='url(\"'.concat(r,'\")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&#038;&#038;(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute(\"loading\",\"lazy\"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&#038;&#038;e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&#038;&#038;(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&#038;&#038;(c(t)!==st||\"IMG\"===t.tagName&#038;&#038;(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,\"entered\"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&#038;&#038;v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&#038;&#038;\"loading\"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&#038;&#038;!q(e)&#038;&#038;(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+\"px\"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&#038;&#038;window.addEventListener(\"online\",function(){X(n,a)}),this.update(e)}var Y=\"undefined\"!=typeof window,Z=Y&#038;&#038;!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&#038;&#038;\/(gle|ing|ro)bot|crawl|spider\/i.test(navigator.userAgent),tt=Y&#038;&#038;\"IntersectionObserver\"in window,et=Y&#038;&#038;\"classList\"in document.createElement(\"p\"),nt=Y&#038;&#038;1<window.devicePixelRatio,at={elements_selector:\".lazy\",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"litespeed-loading\",class_loaded:\"litespeed-loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot=\"src\",it=\"srcset\",rt=\"sizes\",ct=\"poster\",lt=\"llOriginalAttrs\",st=\"loading\",ut=\"loaded\",dt=\"applied\",ft=\"error\",_t=\"native\",gt=\"data-\",vt=\"ll-status\",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=[\"IMG\",\"IFRAME\",\"VIDEO\"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=[\"IMG\",\"IFRAME\",\"VIDEO\"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&#038;&#038;tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&#038;&#038;S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&#038;&#038;this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){\"use strict\";function n(){e.body.classList.add(\"litespeed_lazyloaded\")}function a(){console.log(\"[LiteSpeed] Start Lazy Load\"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:\"[data-lazyloaded]\",callback_finish:n})),i=function(){o.update()},t.MutationObserver&#038;&#038;new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener(\"load\",a,!1):t.attachEvent(\"onload\",a)}(window,document);<\/script><\/body><\/html><br \/>\n<!-- Page optimized by LiteSpeed Cache @2026-06-21 15:32:33 --><\/p>\n<p><!-- Page cached by LiteSpeed Cache 7.8.1 on 2026-06-21 15:32:33 --><\/p>\n<p>Views: 15<\/p>","protected":false},"excerpt":{"rendered":"<p>A living tracker for KOSA, app store age verification, state ID-check laws, and the policy pipeline pushing the internet toward identity checkpoints.<\/p>\n","protected":false},"author":1,"featured_media":617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[82,29,32,84,33,83,81,26],"class_list":["post-622","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-age-verification","tag-anonymous-speech","tag-censorship-resistance","tag-digital-identity","tag-digital-sovereignty","tag-free-speech","tag-kosa","tag-privacy","entry"],"_links":{"self":[{"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/comments?post=622"}],"version-history":[{"count":7,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions"}],"predecessor-version":[{"id":814,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions\/814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/media\/617"}],"wp:attachment":[{"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/media?parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/categories?post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thethriftydev.com\/blog\/wp-json\/wp\/v2\/tags?post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}