PageSourceSearch

https://threadreaderapp.com/help/about

html threadreaderapp.com collected 2026-10-02 02:11:35 UTC 23,954 bytes, 404 lines download raw bytes

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&#39;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&#39;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-="">&times;</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&#39;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-="">&times;</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&currency_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.