1<!DOCTYPE html> 2<html> 3 <head> 4 <meta name="csrf-param" content="authenticity_token" /> 5<meta name="csrf-token" content="oYx1YVJjJQ99uCu7lTiCR5cqHW6F8zQLFDO9EL0yr/fje6Yut7dFwq652pN4fCDE3VUfl3RyvstDTNOxlwTl9A==" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 8 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 9 <meta name="theme-color" content="#575553"> 10 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 11 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 12 <link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png"> 13 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 14 <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#575553"> 15 <meta name="apple-mobile-web-app-capable" content="yes"> 16 <link rel="manifest" href="/manifest.json"> 17 18 <title>About â Thread Reader App</title> 19<meta name="description" content="Thread Reader helps you read and share the best of Twitter Threads"> 20<meta name="keywords" content="twitter, twitter thread, unroll, threadreader, threads"> 21<meta property="og:title" content="Learn more about Thread Reader App!"> 22<meta property="og:image" content="https://threadreaderapp.com/assets/og-about-2cf7324ff079dcced30ac1876085e0279fade4f43bbbc775e30850e8454e8b3b.png"> 23<meta property="og:description" content="Learn how we came up with the idea, who's running the site, about our values and how we want to sustain this site"> 24<meta name="twitter:card" content="photo"> 25<meta name="twitter:description" content="Learn how we came up with the idea, who's running the site, about our values and how we want to sustain this site."> 26<meta name="twitter:creator" content="@ThreadReaderApp"> 27<meta name="twitter:image" content="https://threadreaderapp.com/assets/og-about-2cf7324ff079dcced30ac1876085e0279fade4f43bbbc775e30850e8454e8b3b.png"> 28<meta name="twitter:image:width" content="1200"> 29<meta name="twitter:image:height" content="630"> 30<meta name="twitter:title" content="Learn more about Thread Reader App!"> 31 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" /> 32 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha512-c8AIFmn4e0WZnaTOCXTOLzR+uIrTELY9AeIuUq6ODGaO619BjqG2rhiv/y6dIdmM7ba+CpzMRkkztMPXfVBm9g==" crossorigin="anonymous" /> 33 <link href="https://fonts.googleapis.com/css?family=Lato|Sanchez:400italic,400|Abhaya+Libre" rel="stylesheet"> 34 <link rel="stylesheet" media="all" href="/assets/application-a4bbb996af069d137fe4a0be09e35ca413d687a804a00c996617c53465bdb158.css" data-turbolinks-track="reload" /> 35 36 <link rel="stylesheet" media="screen" href="/assets/help-2c9d47e850960270b3e1138601e8942cf3aa560d5c89d8912597e30198d17771.css" /> 37 38
38<script type="cfae355116f773a1d4173fd2-text/javascript"> 39;!function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}function n(o){function t(n,r,i){var c;if("undefined"!=typeof document){if(arguments.length>1){if("number"==typeof(i=e({path:"/"},t.defaults,i)).expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}i.expires=i.expires?i.expires.toUTCString():"";try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(e){}r=o.write?o.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=(n=(n=encodeURIComponent(String(n))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var s="";for(var f in i)i[f]&&(s+="; "+f,!0!==i[f]&&(s+="="+i[f]));return document.cookie=n+"="+r+s}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,u=0;u<p.length;u++){var l=p[u].split("="),C=l.slice(1).join("=");this.json||'"'!==C.charAt(0)||(C=C.slice(1,-1));try{var g=l[0].replace(d,decodeURIComponent);if(C=o.read?o.read(C,g):o(C,g)||C.replace(d,decodeURIComponent),this.json)try{C=JSON.parse(C)}catch(e){}if(n===g){c=C;break}n||(c[g]=C)}catch(e){}}return c}}return t.set=t,t.get=function(e){return t.call(t,e)},t.getJSON=function(){return t.apply({json:!0},[].slice.call(arguments))},t.defaults={},t.remove=function(n,o){t(n,"",e(o,{expires:-1}))},t.withConverter=n,t}return n(function(){})}); 40 var google_analytics = "UA-104569155-1"; 41 var google_ad_client = "ca-pub-3755072543989337" 42 try {isPremium = Cookies.get('is_premium') > Date.now()/1000} catch(e) {isPremium = false} 43 var showAds = !isPremium && true; 44 if (showAds) { 45 var adsbygoogle = window.adsbygoogle || []; 46 adsbygoogle.push({ 47 google_ad_client: google_ad_client, 48 enable_page_level_ads: true 49 }) 50 } 51 52 function ads() { 53 const numAds = document.querySelectorAll('ins[style*="display:blockâ]').length 54 console.log('numAds', numAds) 55 const adsbygoogle = window.adsbygoogle || [] 56 for (let i = 0; i < numAds; ++i) { 57 adsbygoogle.push({}) 58 } 59 } 60 </script>
60 61 62 </head> 63 <body class=""> 64
64<script type="cfae355116f773a1d4173fd2-text/javascript"> 65 if (window.localStorage.theme) {document.body.classList.add(window.localStorage.theme)} 66 </script>
66 67 <nav class="navbar navbar-expand"> 68 <div class="container"> 69 <a class="navbar-brand" href="/"> 70 Thread Reader 71 </a> 72 <ul class="navbar-nav ml-auto"> 73 <li class="nav-item"> 74 <a class="nav-link p-2 gaClickEvent" href="/search" data-category="header-search-button" data-action="search-on-header" data-label="new-header"> 75 <i class="fas fa-search"></i> 76 </a> 77 </li> 78 <li class="nav-item"> 79 <a class="nav-link p-2" href="/account"> 80 <i class="fas fa-user"></i> 81 </a> 82 </li> 83 <li class="nav-item"> 84 <a class="nav-link p-2 gaClickEvent share-button" data-category="new-header-share-button" data-action="new-share-on-header" data-label="new-header"><i class="fas fa-share-alt"></i> 85 </a> 86 </li> 87 </ul> 88 </div> 89</nav> 90 91
92<script type="cfae355116f773a1d4173fd2-text/javascript"> 93const shareButton = document.querySelector('.share-button'); 94 95shareButton.addEventListener('click', event => { 96 if (navigator.share) { 97 navigator.share({ 98 title: document.title, 99 text: 'Check out this thread at Thread Reader App.', 100 url: window.location.href 101 }).then(() => { 102 console.log('Thanks for sharing!'); 103 }) 104 .catch(console.error); 105 } else { 106 document.querySelector('#share_this').classList.add('open'); 107 } 108}); 109 110</script>
110 111 112 113<div id="share_this" class="overlay-no-js"> 114 <div class="popup"> 115 <h2>Share this page!</h2> 116 <button class="close" onclick="if (!window.__cfRLUnblockHandlers) return false; document.querySelector('#share_this').classList.remove('open')" data-cf-modified-cfae355116f773a1d4173fd2-="">×</button> 117 <div class="content"> 118 119 <div class="text-center"> 120 <div class="btn-group" role="group" aria-label="Share"> 121 <a class="btn btn-outline-primary share-twitter gaClickEvent" target="_blank" href="https://twitter.com/intent/tweet?text=Learn%20more%20about%20Thread%20Reader%20App!&url=https%3A%2F%2Fthreadreaderapp.com%2Fhelp%2Fabout" 122data-category="sharebuttons" data-action="share-on-twitter" data-label=""><svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 512 512" style="margin-top:-3px;"><path fill="#ffffff" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg> <span class="txt">Post</span></a> 123 <a class="btn btn-outline-primary share-fb gaClickEvent" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fthreadreaderapp.com%2Fhelp%2Fabout" 124data-category="sharebuttons" data-action="share-on-facebook" data-label=""><i class="fab fa-facebook-f"></i> <span class="txt">Share</span></a> 125 <a class="btn btn-outline-primary share-email" data-controller="share-email" data-action="click->share-email#click" href="mailto:?subject=Learn%20more%20about%20Thread%20Reader%20App!&body=Learn%20how%20we%20came%20up%20with%20the%20idea,%20who's%20running%20the%20site,%20about%20our%20values%20and%20how%20we%20want%20to%20sustain%20this%20site%0A%0Ahttps://threadreaderapp.com/help/about" 126 data-category="sharebuttons" data-action="share-by-email" data-label=""> 127 <i class="far fa-envelope"></i> 128 <span class="txt">Email</span> 129 </a> 130</div> 131 132 </div> 133 134 </div> 135 </div> 136</div> 137 138<div id="unroll_thread" class="overlay-no-js"> 139 <div class="popup"> 140 <h2>Enter URL or ID to Unroll</h2> 141 <button class="close" onclick="if (!window.__cfRLUnblockHandlers) return false; document.querySelector('#unroll_thread').classList.remove('open')" data-cf-modified-cfae355116f773a1d4173fd2-="">×</button> 142 <div class="content"> 143 144 <div class="text-center mx-4"> 145 <form class="form-inline justify-content-center homepage-search" method="get" action="/search"> 146 <input class="form-control" type="search" name="q" placeholder="Enter URL or ID" aria-label="Search" style="min-width: 100%; font-size:12px" id="formSearch"> 147 <button class="btn btn-primary" style="margin: 10px 0 10px 10px" type="submit">Unroll Thread</button> 148 <small id="unrollHelp" class="form-text">You can paste full URL like: https://x.com/threadreaderapp/status/1644127596119195649 <br />or just the ID like: 1644127596119195649</small> 149 </form> 150 <div class="row"> 151 <div class="col-12"> 152 <div class="alert alert-info"> 153 <p class="text-left"><strong>How to get URL link on X (Twitter) App</strong></p> 154 <ol class="text-left pl-3" style="font-size:14px;"> 155 <li class="my-2">On the Twitter thread, click on <i class="fa-solid fa-arrow-up-from-bracket"></i> or <i class="fa-solid fa-share-nodes"></i> icon on the bottom<br /> 156 </li> 157 <li class="my-2">Click again on <i class="fa-solid fa-arrow-up-from-bracket"></i> or <i class="fa-solid fa-share-nodes"></i> Share Via icon<br /> 158 </li> 159 <li class="my-2">Click on <i class="fa-solid fa-link"></i> Copy Link to Tweet<br /> 160 </li> 161 <li class="my-2">Paste it above and click "Unroll Thread"!</li> 162 <li class="my-2">More info at <a href="https://help.twitter.com/en/using-twitter/tweet-and-moment-url" target="_blank">Twitter Help</a></li> 163 </ol> 164 </div> 165 </div> 166 </div> 167 </div> 168 169 </div> 170 </div> 171</div> 172 173 174<div class="container pb-5 static-page" id="help-nav"> 175 <div class="row"> 176 <div class="col-12"> 177 <h1 class="page-title">About</h1> 178 </div> 179 </div> 180 <div class="row">
181 <!-- sidebar, which will move to the top on a small screen --> 182 <div class="col-sm-4 col-12"> 183 <nav class="js-toc sticky-top mb-4"></nav> 184 </div> 185 <!-- main content area --> 186 <div class="col-sm-8 col-12 js-toc-content about"> 187 <div class="about-press"> 188 <blockquote class="press-quote"> 189 Some tweetstorms are good, but reading them on Twitter can be a pain in the ass. 190 Thread Reader reformats a tweetstorm into a readable essay 191 </blockquote> 192 <p class="text-right"><a href="https://lifehacker.com/thread-reader-reformats-tweetstorms-into-text-essays-1798630765"><img alt="Life Hacker" class="logo" src="/assets/logo_lh-03e9d9bd4d27ee55ad20bc4139cbdbff1805d8c1e26a0e3b0c3d1015182a669c.png" /></a></p> 193 <blockquote class="press-quote"> 194 Thread Reader can take your barely readable Twitter rant of choice and transform 195 it into normal text served up on a sparse, normal looking page. 196 </blockquote> 197 <p class="text-right"><a href="https://techcrunch.com/2018/01/04/thread-reader-app-twitter/"><img alt="Tech Crunch" class="logo" src="/assets/logo_tc-9e9cfa15adedcd1ab6a7a651cb37db9977e2a9ae7bfdbec3bbfc77b4b4a9b5e8.png" /></a></p> 198 </div> 199 <h2 class="first" id="about">About Thread Reader</h2> 200 <h3 id="about-1">What is Thread Reader App?</h3> 201 <p> 202 Thread Reader App is a service that allows anyone to unroll long X thread 203 and display them on an easy to read page. 204 </p> 205 <p> 206 Our problem was that it is a pain to read <a href="https://business.twitter.com/en/blog/How-Tweet-threads.html" target="_blank">X threads</a> (or Tweetstorm) 207 on the official X website/app and we think that all the Tweets put one 208 after another in a medium.com alike page could be better. 209 </p> 210 <p> 211 So we asked ourselves: "What about a service that helps you unroll a full X thread 212 on a dedicated beautifully designed page to allow an easy read of the whole story?" 213 </p> 214 <h3 id="about-2">What else does Thread Reader App do?</h3> 215 <p> 216 Thread Reader has other interesting features, like getting a PDF Archive of a given thread, 217 having a personalized account with a list of all of your unrolls. 218 Notifications from your favorite authors so you don't miss anything. <a href="/help#free-features">Learn more about our basic and Premium features.</a> 219 </p> 220 <h2 id="team">Team</h2> 221 <div class="row about-team"> 222 <div class="col-4 text-center"> 223 <img src="/assets/cal-2cc64748fd83c1d547b2f1caa7b1d01c864626d2b1cb15f407885d36a5417c91.png" /> 224 <strong>@Cal</strong><br> 225 <p>Actual developer</p> 226 </div> 227 <div class="col-4 text-center"> 228 <img src="/assets/amy-b427b55f7c20ca875c74c15016b99c036584e2f9564d7724634d12cd9bdb48e4.png" /> 229 <strong>@Amy</strong><br> 230 <p>Actual Designer</p> 231 </div> 232 <div class="col-4"> 233 <a href="https://twitter.com/threadreaderapp"> 234 <img src="/assets/emoji-robot-2f12642799e9ef37eda52093d0863914a1479ecb005e21d09e7df7ac2ab7efb8.png" /> 235 <strong>@ThreadReaderApp</strong><br> 236 <p>Thread fan bot</p> 237 </a> 238 </div> 239 </div> 240 <h2 id="values">Values</h2> 241 <h3 id="values-2">Is this some big company making this site?</h3> 242 <p> 243 No this site is just two indie developers on a laptop coding everything. 244 From the bot, to the trending section. 245 It's all hand-coded, designed, deployed and marketed by us. 246 <br> 247 This service is not related to X.com (formerly Twitter.com) 248 </p> 249 <h2 id="pricing">Pricing</h2> 250 <h3 id="pricing-1">Why isn't Thread Reader App free?</h3> 251 <p>It is free! Thread Reader main service is and always will be free.</p> 252 <h3 id="pricing-2">So why Thread Reader has Premium features?</h3> 253 254<p> 255 You must know that Thread Reader is not a startup. 256 Itâs just two indie developers working very hard to make it happen. 257 Everyday we are working on this project, doing marketing, support and development. We don't have any external funding on purpose. 258</p> 259 260<p> 261 Even if we're passionate about what we're doing, in the end if we donât get any money to live, 262 weâll have to get back to a more classic desk job. 263</p> 264<p> 265 We also want to stay as independent as possible. 266</p> 267<p> 268 Thread Reader is already bound to X through their Terms of Service 269 â and somehow through some of their obscure developer rules â 270 but we don't want to depend on any other entity/person 271 that could decide who and what can be published on the website. 272</p> 273 274<p> 275 <em><strong> 276 You may think that it doesn't cost much to run a site like this? But youâre mistaken. 277 </strong></em> 278</p> 279<p> 280 Letâs run the numbers: a good full stack developer is paid $150,000/y+, 281 a normal Startup probably has 4 engineers: that's $600,000/y.
282 Add some support and marketing people and youâre close to $800,000/y in labor costs. 283 On the technical side we'd like to keep it simple but still: 284 sending emails (like subscriptions alerts) costs $1,000/y, 285 hosting and bandwidth is cheap but still adds up $5,000/y. 286 We are also paying X API for $5000/month. 287 Plus you need a bunch of other services like security audit, backups, software licences, etc. 288 probably another $10,000/y. 289</p> 290<p> 291 That means we'd be close to $1,000,000/y to make this profitable not even talking about taxes. 292 We can assure you, We don't even make close to that! 293</p> 294 295 296 <p>Our goal is to avoid the usual Startup story. You know when someone build a cool service and get some users, attracts some big company (e.g. X, Facebook) and get bought. Then somehow the service gets closed or fades away.</p> 297 298 <p>Instead, if every user is paying a little bit for the service, then youâre less likely to see it disappear overnight. When you pay for Premium you get all those advanced features but foremost youâre supporting us and the service so it can stay online and independent.</p> 299 <p> 300 <small>This is inspired from <a 301 href="https://web.archive.org/web/20120112073346/https://blog.pinboard.in/2011/12/don_t_be_a_free_user/">Maciej, 302 Pinboard</a> and <a href="https://nomadlist.com/help#free">Levelsio, Nomad List</a> who think quite the same 303 as we do. 304 </small></p> 305 306 <h3 id="pricing-3">How do you make money?</h3> 307 <p> 308 Thread Reader mostly makes money from Premium membership and ads. 309 </p> 310 <h3 id="pricing-4">I would like to advertise on Thread Reader</h3> 311 <p>Please contact us by email at [email protected]</p> 312 <h2 id="others">Others</h2> 313 <h3 id="others-1">What is the tech stack?</h3> 314 <p> 315 It's HTML, CSS, JavaScript, PHP, Rails and Node.js. It's hosted on Nginx. 316 </p> 317 <h3 id="others-2">Credits</h3> 318 <p> 319 Icon made by <a href="https://www.freepik.com">Freepik</a> from <a href="https://www.flaticon.com">www.flaticon.com</a> 320 </p> 321 <h2 id="support">Support Thread Reader</h2> 322 <h3 id="support-1">Pay for the service!</h3> 323 <p> 324 The best way to support Thread Reader App is to pay for it<br> 325 <small>(Even if you don't need all the Premium features)</small> 326 <ul> 327 <li>Become a <a target="_blank" href="/account/premium"><img class="emoji" src="/assets/emoji-premium-ce8ed9a8eed6ec0ce68154ca148dd307be6a034a64f2e9244e4075d324174c0e.png" />Premium member 328 $30/year)</a> and get exclusive features! 329 </li> 330 <li>Make a small donation: $5 or $10: 331 <ul> 332 <li class="mt-2"> 333 <p><strong><a target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate%40threadreaderapp.com&lc=USD&item_name=Thread%20Reader%20donation&no_note=0&cn=Say%20Hello%20or%20give%20some%20feedback%3a&no_shipping=1¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted">Donate with Paypal</strong></a></p> 334 </li> 335 <li> 336 <p><strong>Ethereum</strong></p> 337 <p class="mb-4"> 338 <code style="background:#fff;padding:8px;">0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E</code> 339 <span onclick="if (!window.__cfRLUnblockHandlers) return false; navigator.clipboard.writeText('0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E')" class="btn btn-sm btn-secondary" data-cf-modified-cfae355116f773a1d4173fd2-="">copy</span> 340 </p> 341 </li> 342 <li> 343 <p class="mt-2"><strong>Bitcoin</strong></p> 344 <p class="mb-4"> 345 <code style="background:#fff;padding:8px;">3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi</code> 346 <span onclick="if (!window.__cfRLUnblockHandlers) return false; navigator.clipboard.writeText('3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi')" class="btn btn-sm btn-secondary" data-cf-modified-cfae355116f773a1d4173fd2-="">copy</span> 347 </p> 348 </li> 349 </ul> 350 </li> 351 <li>Using Patreon.com? <a target="_blank" href="https://www.patreon.com/bePatron?u=8298707">Become a Patron for Thread Reader</a></li> 352 <li><img class="emoji" src="/assets/emoji-thanks-f257e27b17ed7d010f5653acc59ef849a65a7012a4c645e65b6e6361c6baead1.png" /></li> 353 354 </ul> 355 </p> 356 <h3 id="support-2">Talk about it</h3> 357 <p> 358 To support Thread Reader App all we need is that you talk about it to your friends, 359 but if you want to be even more helpful, start a Premium membership. 360 </p> 361 </div> 362 </div> 363</div> 364 365
365<script src="/javascript/javascript-v1-min.js?v=406" type="cfae355116f773a1d4173fd2-text/javascript"></script>
365 366
366<script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.11.1/tocbot.min.js" type="cfae355116f773a1d4173fd2-text/javascript"></script>
366 367
367<script type="cfae355116f773a1d4173fd2-text/javascript"> 368 tocbot.init({ 369 // Where to render the table of contents. 370 tocSelector: '.js-toc', 371 // Where to grab the headings to build the table of contents. 372 contentSelector: '.js-toc-content', 373 // Which headings to grab inside of the contentSelector element. 374 headingSelector: 'h2, h3', 375 // For headings inside relative or absolute positioned containers within content. 376 hasInnerContainers: true, 377 }); 378 </script>
378 379 380
380<script src="https://cdnjs.cloudflare.com/ajax/libs/blazy/1.8.2/blazy.min.js" async onload="new Blazy({selector:'.b-lazy,.entity-image img'})" type="cfae355116f773a1d4173fd2-text/javascript"></script>
380 381
381<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" onload="if (showAds) adsbygoogle.push({})" type="cfae355116f773a1d4173fd2-text/javascript"></script>
381 382
382<script async src="https://platform.twitter.com/widgets.js" charset="utf-8" type="cfae355116f773a1d4173fd2-text/javascript"></script>
382 383 <footer class="footer"> 384 <div class="container"> 385 <div class="d-flex align-items-center justify-content-between" style="color:white"> 386 <div> 387 <a class="btn btn-default btn-circle" target="_blank" href="mailto:[email protected]"> 388 <i class="far fa-envelope"></i> 389 </a> 390 <a class="btn btn-default btn-circle twitter gaClickEvent" href="https://twitter.com/threadreaderapp" target="_blank" data-category="how-to" data-action="follow-tra" data-label="footer"><svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 512 512" style="height:16px;vertical-align: top;"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg></a> 391 </div> 392 <div> 393 <a href="/help">Help</a> | 394 <a href="/help/about">About</a> | 395 <a href="/help/terms">TOS</a> | 396 <a href="/help/privacy">Privacy</a> 397 </div> 398 </div> 399 </div> 400</footer>
vendor: 146 bytes, lines 400-402
400 401 402 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="cfae355116f773a1d4173fd2-|49" defer></script>
402<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"134793e017df4a0fb9875ad7e32fbf70","r":1,"spa":2}' crossorigin="anonymous"></script>
402 403</body> 404</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.