<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<title>Developer Notes</title>
	<subtitle>Personal thoughts on various dev topics</subtitle>
	<link href="https://denys.dev/atom.xml" rel="self" type="application/atom+xml"/>
	<link href="https://denys.dev"/>
	<generator uri="https://www.getzola.org/">Zola</generator>
	<updated>2026-10-15T00:00:00+00:00</updated>
	<id>https://denys.dev/atom.xml</id>
	<entry xml:lang="en">
		<title>Self-Inflicted Echo Chambers: When Your Group Becomes Its Own Worst Enemy</title>
		<published>2026-10-15T00:00:00+00:00</published>
		<updated>2026-10-15T00:00:00+00:00</updated>
		<link href="https://denys.dev/self-inflicted-echo-chambers/"/>
		<link rel="alternate" href="https://denys.dev/self-inflicted-echo-chambers/" type="text/html"/>
		<id>https://denys.dev/self-inflicted-echo-chambers/</id>
        <summary type="html">&lt;p&gt;You&#x27;ve probably seen it before. A team, a community, or a fanbase spends its days attacking its competitors nonstop. The same grievances come up again and again. The discussions go in circles. Nothing new is ever learned. At some point you start to wonder: are these people stuck in a loop of their own making?&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;You&#x27;ve probably seen it before. A team, a community, or a fanbase spends its days attacking its competitors nonstop. The same grievances come up again and again. The discussions go in circles. Nothing new is ever learned. At some point you start to wonder: are these people stuck in a loop of their own making?&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;Quite possibly, yes. That pattern is a classic sign of an echo chamber, and one that the group built entirely on its own. Nobody forced it on them. They constructed it brick by brick, message by message.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-an-echo-chamber-actually-is&quot;&gt;What an Echo Chamber Actually Is&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-an-echo-chamber-actually-is&quot; aria-label=&quot;Anchor link for: what-an-echo-chamber-actually-is&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;An echo chamber is an environment where people only encounter opinions and information that confirm what they already believe. Inside one, the group&#x27;s existing views are constantly repeated, amplified, and reinforced. Outside perspectives are absent, dismissed, or treated with suspicion.&lt;&#x2F;p&gt;
&lt;p&gt;The key word here is &lt;strong&gt;self-inflicted&lt;&#x2F;strong&gt;. This is not about algorithmic filter bubbles imposed by social media feeds. This is about groups that do it to themselves, voluntarily, one conversation at a time.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-warning-signs&quot;&gt;The Warning Signs&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-warning-signs&quot; aria-label=&quot;Anchor link for: the-warning-signs&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;How do you recognize a self-inflicted echo chamber? Look for these patterns.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;1-no-new-information-enters-the-loop&quot;&gt;1. No New Information Enters the Loop&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-no-new-information-enters-the-loop&quot; aria-label=&quot;Anchor link for: 1-no-new-information-enters-the-loop&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;In a healthy group, discussions evolve. Someone brings in fresh data, a new perspective, a piece of news that changes the picture. In an echo chamber, the same arguments are recycled endlessly because the group only validates itself. The conversation doesn&#x27;t grow. It just repeats, slightly louder each time.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2-identity-replaces-argument&quot;&gt;2. Identity Replaces Argument&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-identity-replaces-argument&quot; aria-label=&quot;Anchor link for: 2-identity-replaces-argument&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;When criticism of competitors becomes a group ritual, it stops being about accuracy. It becomes about belonging. Attacking the &quot;other side&quot; is how members signal loyalty and earn status within the group. Contrary evidence isn&#x27;t examined, it&#x27;s dismissed as enemy propaganda, because engaging with it would feel like betrayal.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;3-circles-instead-of-progress&quot;&gt;3. Circles Instead of Progress&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-circles-instead-of-progress&quot; aria-label=&quot;Anchor link for: 3-circles-instead-of-progress&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Genuine analysis converges toward conclusions, decisions, or new insights. Echo chambers loop instead. There&#x27;s nothing external to push the discussion forward, so it spins in place. If your group&#x27;s conversations feel like a rerun of last month&#x27;s conversation, take note.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4-disproportionate-focus-on-the-enemy&quot;&gt;4. Disproportionate Focus on the Enemy&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-disproportionate-focus-on-the-enemy&quot; aria-label=&quot;Anchor link for: 4-disproportionate-focus-on-the-enemy&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Ask a simple question: how much of the group&#x27;s energy goes into attacking others versus improving its own work? A healthy group spends most of its time building, learning, and solving problems. An echo chamber spends most of its time on the opposition. That imbalance is a reliable red flag. When a group defines itself primarily by what it opposes, it has outsourced its identity.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;5-dissent-gets-punished&quot;&gt;5. Dissent Gets Punished&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-dissent-gets-punished&quot; aria-label=&quot;Anchor link for: 5-dissent-gets-punished&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;This is the most decisive sign. Watch what happens when someone in the group says &quot;actually, our competitor did this well&quot; or &quot;we have a real weakness here.&quot; In a healthy group, that lands as a useful contribution. In an echo chamber, the messenger pays a social price. They get mocked, sidelined, or accused of disloyalty. Once honest internal criticism becomes socially expensive, the echo chamber is complete.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-groups-do-this-to-themselves&quot;&gt;Why Groups Do This to Themselves&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-groups-do-this-to-themselves&quot; aria-label=&quot;Anchor link for: why-groups-do-this-to-themselves&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;Self-inflicted echo chambers don&#x27;t form because people are stupid. They form because the behavior is rewarded, at least in the short term.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Group polarization&lt;&#x2F;strong&gt; is one driver. Study after study shows that when like-minded people discuss a topic repeatedly, their views become more extreme than where any individual started. Each round of mutual agreement nudges the group a notch further.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Social rewards&lt;&#x2F;strong&gt; are another. Inside the chamber, attacking competitors earns approval. Nuance earns suspicion. People respond to incentives, even subtle social ones, and they drift toward whatever earns them standing.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Frustration plays a role too.&lt;&#x2F;strong&gt; Sometimes the group is stuck competing against an opponent it can&#x27;t beat, at least not by the means available. Unable to make progress in reality, they make progress in rhetoric. The venting becomes compulsive because it substitutes for achievement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-it-s-destructive&quot;&gt;Why It&#x27;s Destructive&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-it-s-destructive&quot; aria-label=&quot;Anchor link for: why-it-s-destructive&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;The damage compounds over time.&lt;&#x2F;p&gt;
&lt;p&gt;The group becomes &lt;strong&gt;blind to real threats and real opportunities&lt;&#x2F;strong&gt;. If every piece of information about competitors is pre-framed as &quot;they&#x27;re bad,&quot; you lose the ability to notice when they do something genuinely innovative that you should respond to.&lt;&#x2F;p&gt;
&lt;p&gt;The group &lt;strong&gt;stops improving&lt;&#x2F;strong&gt;. Learning requires feedback, and feedback requires exposure to something that contradicts what you already think. An echo chamber seals off that supply line. The group becomes confident and stagnant at the same time, which is the worst possible combination.&lt;&#x2F;p&gt;
&lt;p&gt;And eventually, &lt;strong&gt;the outside world notices&lt;&#x2F;strong&gt;. Prospective customers, partners, and hires can see when a group spends its energy attacking rivals instead of doing good work. It reads as insecurity, and insecurity is rarely an attractive brand.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-test&quot;&gt;The Test&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-test&quot; aria-label=&quot;Anchor link for: the-test&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;If you want to know whether your group has slipped into an echo chamber, run a simple experiment. Present evidence that a competitor did something well, or that your own side has a genuine weakness. Then watch the response.&lt;&#x2F;p&gt;
&lt;p&gt;A healthy group engages with it. It debates, updates, maybe acts on it. An echo chamber punishes it. That reaction is your answer, and it tells you everything you need to know.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-antidote&quot;&gt;The Antidote&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-antidote&quot; aria-label=&quot;Anchor link for: the-antidote&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;The good news is that self-inflicted echo chambers can be dismantled, because the group built them and can tear them down. The antidote runs directly against the chamber&#x27;s instincts, which is exactly why it must be deliberate.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Bring in outside input on purpose.&lt;&#x2F;strong&gt; Competitor users&#x27; actual feedback. Third-party reviews. Industry data. Market analysis. Whatever originates outside the group&#x27;s own opinion loop. Make it a habit, not a one-off.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Normalize internal criticism.&lt;&#x2F;strong&gt; Make it explicitly safe, and ideally praiseworthy, to say &quot;our competitor did this better than we do.&quot; The person who says it should gain status, not lose it. Leaders set this tone. If the most senior people in the group model honest self-critique, the rest will follow. If they model contempt for outsiders, the rest will follow that instead.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Measure the ratio.&lt;&#x2F;strong&gt; Keep a rough count of how much collective energy goes into attacking competitors versus improving your own work. If the attack ratio creeps up, treat it as an early warning indicator and correct course.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Rotate exposure.&lt;&#x2F;strong&gt; Send people to competitor events. Read the competitor&#x27;s documentation. Use the competitor&#x27;s product, sincerely, not as a mock exercise. Familiarity with the other side tends to replace caricature with understanding, and understanding is fatal to echo chamber dynamics.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-bottom-line&quot;&gt;The Bottom Line&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-bottom-line&quot; aria-label=&quot;Anchor link for: the-bottom-line&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;Echo chambers are not imposed from the outside. Groups build them themselves, one validated opinion and one punished dissent at a time, usually without noticing. The first step out is simply noticing the loop. The second is deliberately breaking it by letting the outside world back in, even when it&#x27;s uncomfortable, especially when it&#x27;s uncomfortable.&lt;&#x2F;p&gt;
&lt;p&gt;A group that can say &quot;the competitor beat us here, and we&#x27;re going to fix it&quot; is far more dangerous than a group that spends its days explaining why the competitor is terrible. The first one gets better. The second one just gets louder.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Myths About W Social, Explained in Simple Words. Vol 3.</title>
		<published>2026-09-29T00:00:00+00:00</published>
		<updated>2026-09-29T00:00:00+00:00</updated>
		<link href="https://denys.dev/w-mythology-vol3/"/>
		<link rel="alternate" href="https://denys.dev/w-mythology-vol3/" type="text/html"/>
		<id>https://denys.dev/w-mythology-vol3/</id>
        <summary type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;From the series:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 1.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol2&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 2.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Myths About W Social, Explained in Simple Words. Vol 3.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;W&lt;&#x2F;strong&gt; (also known as &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&quot;&gt;W Social&lt;&#x2F;a&gt;) is a European social network governed by EU law, data hosted in Europe, and built for real, verified people. It is built on the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;AT_Protocol&quot;&gt;AT Protocol&lt;&#x2F;a&gt;, an open-source framework for interoperable social media (&lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;source&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Official answers to your questions&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;There is an official page on the W Social website where you can find answers on the most frequently asked questions - &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&lt;&#x2F;a&gt;. Please make sure to visit it from time to time to see the updated content.&lt;&#x2F;p&gt;
&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;From the series:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 1.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol2&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 2.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Myths About W Social, Explained in Simple Words. Vol 3.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;myth-10-w-social-is-a-ghost-town-with-only-9-of-active-users&quot;&gt;Myth #10: W Social is a ghost town, with only 9% of active users&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-10-w-social-is-a-ghost-town-with-only-9-of-active-users&quot; aria-label=&quot;Anchor link for: myth-10-w-social-is-a-ghost-town-with-only-9-of-active-users&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The &quot;9% of active users&quot; figure sounds alarming - until you put it into context. Across the entire social media industry, &lt;strong&gt;a small fraction of users generating the majority of activity is not a bug; it’s the norm&lt;&#x2F;strong&gt;. Let’s look at the actual numbers.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;See also:&lt;&#x2F;strong&gt; &lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;#myth-2-w-social-is-a-ghost-town-filled-with-thousands-of-profiles-that-cannot-post&quot;&gt;Myth #2: W Social is a ghost town, filled with thousands of profiles that cannot post&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;how-many-people-use-bluesky&quot;&gt;How many people use Bluesky?&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-many-people-use-bluesky&quot; aria-label=&quot;Anchor link for: how-many-people-use-bluesky&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;According to the &lt;a href=&quot;https:&#x2F;&#x2F;searchengineland.com&#x2F;guide&#x2F;bluesky-statistics&quot;&gt;Bluesky Statistics&lt;&#x2F;a&gt; report by Search Engine Land, the year-over-year growth for the registered users is approximately the following:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Date&lt;&#x2F;th&gt;&lt;th&gt;Bluesky Registered Users&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;September 15, 2024&lt;&#x2F;td&gt;&lt;td&gt;10 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;October 19, 2024&lt;&#x2F;td&gt;&lt;td&gt;12.11 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;October 24, 2024&lt;&#x2F;td&gt;&lt;td&gt;13 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;November 13, 2024&lt;&#x2F;td&gt;&lt;td&gt;15 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;November 20, 2024&lt;&#x2F;td&gt;&lt;td&gt;20 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;December 19, 2024&lt;&#x2F;td&gt;&lt;td&gt;25.9 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;January 4, 2025&lt;&#x2F;td&gt;&lt;td&gt;26.31 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;January 14, 2025&lt;&#x2F;td&gt;&lt;td&gt;27.44 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;January 29, 2025&lt;&#x2F;td&gt;&lt;td&gt;30 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;May 20, 2025&lt;&#x2F;td&gt;&lt;td&gt;35.98 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;August 15, 2025&lt;&#x2F;td&gt;&lt;td&gt;38.26 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;November 9, 2025&lt;&#x2F;td&gt;&lt;td&gt;40.2 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;&lt;strong&gt;Sources:&lt;&#x2F;strong&gt; &lt;a href=&quot;https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;jay.bsky.team&#x2F;post&#x2F;3lbd2eaura22r&quot;&gt;Bluesky&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;bsky.jazco.dev&#x2F;stats&quot;&gt;Jaz’s Bsky Stats&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.statista.com&#x2F;statistics&#x2F;1536616&#x2F;global-bluesky-users&#x2F;&quot;&gt;Statista&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;techcrunch.com&#x2F;2024&#x2F;09&#x2F;16&#x2F;bluesky-now-has-10-million-users&#x2F;&quot;&gt;TechCrunch&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;As of September 29, 2026, the estimated number is &lt;strong&gt;46,762,295&lt;&#x2F;strong&gt; and counting (&lt;a href=&quot;https:&#x2F;&#x2F;bsky.jazco.dev&#x2F;stats&quot;&gt;source&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;According to the latest estimates, Bluesky has &lt;strong&gt;3.5 million&lt;&#x2F;strong&gt; daily active users as of October 2025, &lt;strong&gt;with around 9% of registered users&lt;&#x2F;strong&gt; using the app on a daily basis.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Source&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;www.forbes.com&#x2F;sites&#x2F;conormurray&#x2F;2025&#x2F;11&#x2F;07&#x2F;bluesky-and-x-users-plummet-year-after-trumps-election-win-truth-social-makes-small-gains&#x2F;&quot;&gt;Forbes&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Read that carefully: this isn’t a W Social number. &lt;strong&gt;Bluesky itself - a mature platform with ~40+ million registered users and years of media coverage - has roughly 9% daily active users.&lt;&#x2F;strong&gt; If 9% were a symptom of a &quot;ghost town,&quot; then the entire AT Protocol ecosystem, and arguably most of the social media industry, would be one. In reality, this ratio reflects a well-documented pattern of online behavior: most people &lt;strong&gt;register, browse, and lurk&lt;&#x2F;strong&gt;, while only a minority post daily.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bluesky reached 43.5 million registered users as of April 2026, up from just 10 million in September 2024&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Source&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;marketful.com&#x2F;bluesky-statistics&quot;&gt;marketful.com&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-metric-nobody-talks-about-page-visits&quot;&gt;The Metric Nobody Talks About: Page Visits&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-metric-nobody-talks-about-page-visits&quot; aria-label=&quot;Anchor link for: the-metric-nobody-talks-about-page-visits&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;There’s another metric that rarely appears in &quot;ghost town&quot; debates: &lt;strong&gt;website visits&lt;&#x2F;strong&gt;. Most analytics about &quot;active users&quot; only count people who generate visible signals - posts, comments, likes, reposts. But a huge share of any platform’s audience &lt;strong&gt;never generates those signals at all&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;They visit the site, read posts, follow links from search engines and news articles, then leave. These readers are &lt;strong&gt;invisible to activity-based statistics&lt;&#x2F;strong&gt;, but they are very real. Think of them like the audience at a public debate: they don’t grab the microphone, but the room is far from empty.&lt;&#x2F;p&gt;
&lt;p&gt;According to &lt;a href=&quot;https:&#x2F;&#x2F;www.semrush.com&#x2F;website&#x2F;bsky.app&#x2F;overview&quot;&gt;Semrush&lt;&#x2F;a&gt;, Bluesky website visits rose from 17.41 million in June 2024 to 118.67 million in September 2025:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Date&lt;&#x2F;th&gt;&lt;th&gt;Bluesky Website Visits&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;June 2024&lt;&#x2F;td&gt;&lt;td&gt;17.41 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;July 2024&lt;&#x2F;td&gt;&lt;td&gt;16.48 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;August 2024&lt;&#x2F;td&gt;&lt;td&gt;21 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;September 2024&lt;&#x2F;td&gt;&lt;td&gt;67.09 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;October 2024&lt;&#x2F;td&gt;&lt;td&gt;80.16 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;November 2024&lt;&#x2F;td&gt;&lt;td&gt;157.04 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;December 2024&lt;&#x2F;td&gt;&lt;td&gt;154.68 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;April 2025&lt;&#x2F;td&gt;&lt;td&gt;142.4 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;May 2025&lt;&#x2F;td&gt;&lt;td&gt;145.1 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;June 2025&lt;&#x2F;td&gt;&lt;td&gt;126.62 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;July 2025&lt;&#x2F;td&gt;&lt;td&gt;128.74 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;August 2025&lt;&#x2F;td&gt;&lt;td&gt;122.7 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;September 2025&lt;&#x2F;td&gt;&lt;td&gt;118.67 million&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Totalling &lt;strong&gt;132.19M&lt;&#x2F;strong&gt; in September 2026 (&lt;a href=&quot;https:&#x2F;&#x2F;www.semrush.com&#x2F;website&#x2F;bsky.app&#x2F;overview&#x2F;&quot;&gt;source&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;That’s &lt;strong&gt;over 130 million monthly visits&lt;&#x2F;strong&gt; - more than 3 visits per registered user per month. A platform with over a hundred million monthly visits is, by any reasonable definition, alive and well. The lesson: &lt;strong&gt;&quot;active users&quot; and &quot;audience&quot; are different measurements&lt;&#x2F;strong&gt;, and ghost-town claims typically rely on only the first one while ignoring the second.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;bluesky-activity-stats-by-kuba-suder&quot;&gt;Bluesky activity stats (by Kuba Suder)&lt;a class=&quot;zola-anchor&quot; href=&quot;#bluesky-activity-stats-by-kuba-suder&quot; aria-label=&quot;Anchor link for: bluesky-activity-stats-by-kuba-suder&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;blue.mackuba.eu&#x2F;stats&#x2F;&quot;&gt;blue.mackuba.eu&#x2F;stats&lt;&#x2F;a&gt; by &lt;a href=&quot;https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;did:plc:oio4hkxaop4ao4wz2pp3f4cr&quot;&gt;Kuba Suder&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Total daily posts&lt;&#x2F;strong&gt; (2026-09-29): &lt;strong&gt;3,108,738&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-29-total-daily-posts-mackuba.jpg&quot; alt=&quot;Total daily posts&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Unique daily posting users&lt;&#x2F;strong&gt; (2026-09-26): &lt;strong&gt;509,852&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-26-unique-daily-posting-users-mackuba.jpg&quot; alt=&quot;Unique daily posting users&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Unique weekly posting users&lt;&#x2F;strong&gt; (2026-09-21): &lt;strong&gt;1,226,122&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-29-unique-weekly-posting-users-mackuba.jpg&quot; alt=&quot;Unique weekly posting users&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Let’s put these three numbers side by side, because they tell a fascinating story:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~46.7 million&lt;&#x2F;strong&gt; registered users&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;~1.23 million&lt;&#x2F;strong&gt; users posting in a given week&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;~510 thousand&lt;&#x2F;strong&gt; users posting on a given day&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;That means only &lt;strong&gt;~1% of registered users post on any given day&lt;&#x2F;strong&gt;, and &lt;strong&gt;~2.6% post in any given week&lt;&#x2F;strong&gt;. Even if we generously assume daily users include lurkers, the pattern holds: &lt;strong&gt;the vast majority of accounts are readers, not writers&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;And yet - nobody calls Bluesky a ghost town. Over &lt;strong&gt;3 million posts are published every single day&lt;&#x2F;strong&gt;. The content flows because a small, active core is producing it, while a large silent majority consumes it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;bluesky-user-growth-and-active-users&quot;&gt;Bluesky User Growth and Active Users&lt;a class=&quot;zola-anchor&quot; href=&quot;#bluesky-user-growth-and-active-users&quot; aria-label=&quot;Anchor link for: bluesky-user-growth-and-active-users&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;blockquote&gt;
&lt;p&gt;This page shows how activity and usage of Bluesky has been growing over time. You can see how many users are actively posting on Bluesky and how many posts are added to Bluesky on a daily basis. The data is updated every 24 hours.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Source: &lt;a href=&quot;https:&#x2F;&#x2F;bluefacts.app&#x2F;bluesky-user-growth&quot;&gt;bluefacts.app&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;6.92M&lt;&#x2F;strong&gt; — Unique users active in the last 90 days&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;4.33M&lt;&#x2F;strong&gt; — Unique users active in the last 30 days&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;2.55M&lt;&#x2F;strong&gt; — Unique users active in the last 7 days&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;1,232,345&lt;&#x2F;strong&gt; — Daily users (average over the last 7 days)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-29-bluesky-user-growth-bluefacts.jpg&quot; alt=&quot;Bluesky User Growth&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-the-numbers-tell-us&quot;&gt;What the Numbers Tell Us?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-the-numbers-tell-us&quot; aria-label=&quot;Anchor link for: what-the-numbers-tell-us&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;The patterns we just saw aren’t unique to AT Protocol platforms - they’re among the most well-documented phenomena in online community research:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The 1% Rule&lt;&#x2F;strong&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;1%25_rule&quot;&gt;Wikipedia&lt;&#x2F;a&gt;)&lt;br &#x2F;&gt;
In any online community, &lt;strong&gt;roughly 1% of users create content&lt;&#x2F;strong&gt;, while the rest mostly consume it. This rule has held across forums, wikis, and social networks for decades. The Bluesky numbers above (~1% daily posters) match it almost exactly.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The 90-9-1 Rule&lt;&#x2F;strong&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;hivebrite.io&#x2F;glossary&#x2F;90-9-1-rule&#x2F;&quot;&gt;Hivebrite&lt;&#x2F;a&gt;)&lt;br &#x2F;&gt;
A refinement of the same idea: &lt;strong&gt;90% of users lurk&lt;&#x2F;strong&gt; (read only), &lt;strong&gt;9% engage occasionally&lt;&#x2F;strong&gt; (like, comment, repost), and &lt;strong&gt;1% create most of the content&lt;&#x2F;strong&gt;. If your platform shows this distribution, it’s not dying - it’s behaving like every healthy community ever studied.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The Pareto Principle&lt;&#x2F;strong&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Pareto_principle&quot;&gt;Wikipedia&lt;&#x2F;a&gt;)&lt;br &#x2F;&gt;
The classic &quot;80&#x2F;20 rule&quot;: roughly &lt;strong&gt;80% of effects come from 20% of causes&lt;&#x2F;strong&gt;. On social platforms, that translates to &lt;strong&gt;a minority of users producing the majority of posts, likes, and engagement&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;So when someone points at W Social and says &lt;em&gt;&quot;only 9% are active - ghost town!&quot;&lt;&#x2F;em&gt;, they are describing &lt;strong&gt;the internet itself&lt;&#x2F;strong&gt;. By these well-established benchmarks, 9% daily activity is not merely acceptable - it’s &lt;strong&gt;above the industry baseline&lt;&#x2F;strong&gt;. And crucially, W Social is doing this while &lt;strong&gt;still in beta&lt;&#x2F;strong&gt;, with a &lt;strong&gt;waiting list&lt;&#x2F;strong&gt;, &lt;strong&gt;invite-only growth&lt;&#x2F;strong&gt;, and a &lt;strong&gt;verification requirement&lt;&#x2F;strong&gt; that deliberately slows onboarding.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;bluesky-post-count-and-author-stats-by-jaz&quot;&gt;Bluesky Post Count and Author Stats (by Jaz)&lt;a class=&quot;zola-anchor&quot; href=&quot;#bluesky-post-count-and-author-stats-by-jaz&quot; aria-label=&quot;Anchor link for: bluesky-post-count-and-author-stats-by-jaz&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;source: &lt;a href=&quot;https:&#x2F;&#x2F;bsky.jazco.dev&#x2F;stats&quot;&gt;https:&#x2F;&#x2F;bsky.jazco.dev&#x2F;stats&lt;&#x2F;a&gt; by &lt;a href=&quot;https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;jaz.bsky.social&quot;&gt;Jaz&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-29-bluesky-post-count-jaz.jpg&quot; alt=&quot;Bluesky Post Count&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Unique likers&lt;&#x2F;strong&gt; (2026-09-26): &lt;strong&gt;942,535&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-26-unique-likers-jaz.jpg&quot; alt=&quot;Unique likers&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Daily posters&lt;&#x2F;strong&gt; (2026-09-26): &lt;strong&gt;524,282&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-26-daily-posters-jaz.jpg&quot; alt=&quot;Daily posters&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Daily followers&lt;&#x2F;strong&gt; (2026-09-26): &lt;strong&gt;272,372&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;2026-09-26-daily-followers-jaz.jpg&quot; alt=&quot;Daily followers&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now let&#x27;s line up these daily numbers against the ~46.7 million registered users:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~524K&lt;&#x2F;strong&gt; daily posters — about &lt;strong&gt;1.1%&lt;&#x2F;strong&gt; of all accounts&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;~943K&lt;&#x2F;strong&gt; daily likers — about &lt;strong&gt;2%&lt;&#x2F;strong&gt; of all accounts&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;~272K&lt;&#x2F;strong&gt; daily followers (i.e., actively following new accounts) — about &lt;strong&gt;0.6%&lt;&#x2F;strong&gt; of all accounts&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Notice the pattern: &lt;strong&gt;each type of engagement draws a smaller, more active crowd than the one before&lt;&#x2F;strong&gt;. Posting requires the most effort, so fewest people do it. Liking is easier, so nearly twice as many people do that. Following new accounts is a niche activity, so it involves fewer still. This is the &lt;strong&gt;90-9-1 pyramid in live action&lt;&#x2F;strong&gt; - and it&#x27;s exactly what you&#x27;d expect from a healthy, functioning social platform, not a ghost town.&lt;&#x2F;p&gt;
&lt;p&gt;And remember: all of these are &lt;strong&gt;daily&lt;&#x2F;strong&gt; figures against &lt;strong&gt;all-time&lt;&#x2F;strong&gt; registrations. Millions of accounts registered during the November 2024 surge, tried the platform for a week, and never returned. Every social network carries this &quot;dead weight&quot; of historical registrations - Bluesky, X, Facebook, and yes, W Social too. Measuring daily activity against total sign-ups &lt;strong&gt;will always&lt;&#x2F;strong&gt; produce a small percentage. That&#x27;s not a bug in the platform; it&#x27;s a quirk of the maths.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary-separating-fact-from-fiction-on-w-social&quot;&gt;Summary: Separating Fact from Fiction on W Social&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary-separating-fact-from-fiction-on-w-social&quot; aria-label=&quot;Anchor link for: summary-separating-fact-from-fiction-on-w-social&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;W Social is a &lt;strong&gt;European, verified, and transparent&lt;&#x2F;strong&gt; platform built on the &lt;strong&gt;AT Protocol&lt;&#x2F;strong&gt;, designed to foster &lt;strong&gt;authentic conversations&lt;&#x2F;strong&gt; under &lt;strong&gt;EU laws&lt;&#x2F;strong&gt;. Let’s recap the realities behind the myths:&lt;&#x2F;p&gt;
&lt;p&gt;The claim that &quot;9% active users = ghost town&quot; collapses under its own arithmetic. The same ratio applies to &lt;strong&gt;Bluesky itself&lt;&#x2F;strong&gt;, a platform with &lt;strong&gt;46+ million registered users&lt;&#x2F;strong&gt;, &lt;strong&gt;130+ million monthly website visits&lt;&#x2F;strong&gt;, and &lt;strong&gt;3+ million posts per day&lt;&#x2F;strong&gt;. The 1% rule, the 90-9-1 rule, and the Pareto principle all confirm the same truth: &lt;strong&gt;online communities have always been powered by a small active core and a large reading audience&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;For a startup platform &lt;strong&gt;still in beta&lt;&#x2F;strong&gt;, with a &lt;strong&gt;waiting list, invites, and mandatory identity verification&lt;&#x2F;strong&gt;, a 9% activity ratio is not a warning sign - it’s an &lt;strong&gt;absolutely healthy metric&lt;&#x2F;strong&gt;, in line with (and arguably above) the industry baseline. The community isn’t missing; it’s &lt;strong&gt;being built deliberately&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;W Social is &lt;strong&gt;not just another social network&lt;&#x2F;strong&gt; - it’s a space for &lt;strong&gt;real people, real discussions, and real accountability&lt;&#x2F;strong&gt;. As it prepares for its &lt;strong&gt;January 2027 launch&lt;&#x2F;strong&gt;, it’s clear: &lt;strong&gt;W Social is building a better way to connect online&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;div style=&#x27;text-align:center;&#x27;&gt;
&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;div&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Myths About W Social, Explained in Simple Words. Vol 2.</title>
		<published>2026-09-11T00:00:00+00:00</published>
		<updated>2026-09-11T00:00:00+00:00</updated>
		<link href="https://denys.dev/w-mythology-vol2/"/>
		<link rel="alternate" href="https://denys.dev/w-mythology-vol2/" type="text/html"/>
		<id>https://denys.dev/w-mythology-vol2/</id>
        <summary type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;From the series:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 1.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Myths About W Social, Explained in Simple Words. Vol 2.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 3.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;W&lt;&#x2F;strong&gt; (also known as &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&quot;&gt;W Social&lt;&#x2F;a&gt;) is a European social network governed by EU law, data hosted in Europe, and built for real, verified people. It is built on the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;AT_Protocol&quot;&gt;AT Protocol&lt;&#x2F;a&gt;, an open-source framework for interoperable social media (&lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;source&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Official answers to your questions&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;There is an official page on the W Social website where you can find answers on the most frequently asked questions - &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&lt;&#x2F;a&gt;. Please make sure to visit it from time to time to see the updated content.&lt;&#x2F;p&gt;
&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-6-implementing-on-device-id-verification-will-completely-eradicate-bots-from-the-platform&quot;&gt;Myth #6: Implementing on-device ID verification will completely eradicate bots from the platform&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-6-implementing-on-device-id-verification-will-completely-eradicate-bots-from-the-platform&quot; aria-label=&quot;Anchor link for: myth-6-implementing-on-device-id-verification-will-completely-eradicate-bots-from-the-platform&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;While &lt;strong&gt;on-device ID verification&lt;&#x2F;strong&gt; (like W Social’s &lt;strong&gt;W Identity&lt;&#x2F;strong&gt;) dramatically reduces bot activity, it doesn’t eliminate them entirely. However, it &lt;strong&gt;fundamentally changes the game&lt;&#x2F;strong&gt; by making bots far more costly and difficult to deploy. Here’s how:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;The Bot Problem&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;A &lt;strong&gt;social bot&lt;&#x2F;strong&gt;, refers to fully or partially automated &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Social_media&quot; title=&quot;Social media&quot;&gt;social media&lt;&#x2F;a&gt; accounts designed to perform most regular users’ actions, such as liking, posting content, and chatting with other users. - &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Social_bot&quot;&gt;Wikipedia&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Social bots - automated accounts designed to mimic human behavior - are a major issue on modern platforms. They &lt;strong&gt;dilute real conversations, manipulate trends, and coordinate harassment&lt;&#x2F;strong&gt;. Bots come in many forms, including:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simple Bots&lt;&#x2F;strong&gt;: Automate basic tasks (e.g., FAQ responses, customer support).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chatbots&lt;&#x2F;strong&gt;: Use AI to engage in conversations (e.g., customer service).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Social Media Bots&lt;&#x2F;strong&gt;: Influence public opinion or shape narratives.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trolls &amp;amp; Malicious Bots&lt;&#x2F;strong&gt;: Spread misinformation or disrupt discussions.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Social bots are always becoming increasingly difficult to detect and understand. The bots&#x27; human-like behavior, ever-changing behavior of the bots, and the sheer volume of bots covering every platform may have been a factor in the challenges of removing them. Social media sites, like &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Twitter&quot; title=&quot;Twitter&quot;&gt;Twitter&lt;&#x2F;a&gt;, are among the most affected, with &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;CNBC&quot; title=&quot;CNBC&quot;&gt;CNBC&lt;&#x2F;a&gt; reporting up to 48 million of the 319 million users (roughly 15%) were bots in 2017. - &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Social_bot&quot;&gt;Wikipedia&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How On-Device Verification Neutralizes Bots&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social’s &lt;strong&gt;on-device ID verification&lt;&#x2F;strong&gt; requires users to validate a government ID or biometric data &lt;strong&gt;directly on their device&lt;&#x2F;strong&gt;, publishing only a &lt;strong&gt;privacy-preserving cryptographic hash&lt;&#x2F;strong&gt;. This approach ensures that &lt;strong&gt;one physical human = one unique verification hash&lt;&#x2F;strong&gt;, making it far harder for bots to operate at scale.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;[...] the researchers have found that bots may account for between 45 and 60% of Twitter accounts discussing covid-19. Many of those accounts were created in February and have since been spreading and amplifying misinformation, including false medical advice, conspiracy theories about the origin of the virus, and pushes to end stay-at-home orders and reopen America. - &lt;strong&gt;&lt;em&gt;Karen Hao, &quot;Nearly half of Twitter accounts pushing to reopen America may be bots&quot;&lt;&#x2F;em&gt;, May 2020&lt;&#x2F;strong&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;www.technologyreview.com&#x2F;2020&#x2F;05&#x2F;21&#x2F;1002105&#x2F;covid-bot-twitter-accounts-push-to-reopen-america&#x2F;&quot;&gt;source&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Here’s the impact on different bot types:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;Bot Type &#x2F; Behavior&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Status&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Impact of On-Device Verification&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Social Media Bots&lt;&#x2F;strong&gt; (Sybil Networks &amp;amp; Farms)&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;Eliminated at Scale&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Mass bot networks rely on creating thousands of accounts cheaply. With one ID = one hash, operators can’t spin up bot armies.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Trolls &amp;amp; Malicious Actors&lt;&#x2F;strong&gt; (Burner Accounts)&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;Significantly Reduced&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Banned users can’t create new verified profiles - their ID hash is already registered.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Simple Bots &amp;amp; Automation&lt;&#x2F;strong&gt; (RSS Feeds, Utilities)&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;Modular &amp;amp; Accountable&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Automated scripts must be tied to a &lt;strong&gt;verified human identity&lt;&#x2F;strong&gt; via app passwords or scoped tokens.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Chatbots &amp;amp; Conversational AI&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;Attested &amp;amp; Transparent&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;AI models can’t secretly pose as humans - they must operate under a verified user’s credentials or be tagged as unverified.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;&lt;strong&gt;Key Advantages of On-Device Verification&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zero Privacy Compromise:&lt;&#x2F;strong&gt; Personal identification data never leaves the user’s device. The network only sees an un-linkable mathematical proof confirming the user is a unique 18+ human.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;No Honeypot Risks:&lt;&#x2F;strong&gt; Traditional verification forces companies to store millions of government passports, creating huge targets for data breaches. Storing local cryptographic hashes mitigates this centralized liability.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Preserved Anonymity:&lt;&#x2F;strong&gt; Whistleblowers, journalists, and activists can participate freely without fear that platform databases can be subpoenaed to reveal their true real-world identities.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;The Takeaway:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;On-device ID verification isn’t a &lt;strong&gt;silver bullet&lt;&#x2F;strong&gt; for eliminating all bots. Instead, it &lt;strong&gt;raises the cost of creating bots&lt;&#x2F;strong&gt; from near-zero to &lt;strong&gt;$10+ per account&lt;&#x2F;strong&gt;, turning them from a &lt;strong&gt;mass spam problem&lt;&#x2F;strong&gt; into a &lt;strong&gt;rare, targeted threat&lt;&#x2F;strong&gt;. This shift makes bot networks &lt;strong&gt;far less viable&lt;&#x2F;strong&gt; while preserving user privacy.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;See also&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.bbc.co.uk&#x2F;bitesize&#x2F;articles&#x2F;zjhg47h&quot;&gt;What are &#x27;bots&#x27; and how can they spread fake news?&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.icuc.social&#x2F;resources&#x2F;blog&#x2F;influence-of-social-media-bots&quot;&gt;Understanding the Influence of Social Media Bots&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.technologyreview.com&#x2F;2020&#x2F;05&#x2F;21&#x2F;1002105&#x2F;covid-bot-twitter-accounts-push-to-reopen-america&#x2F;&quot;&gt;Nearly half of Twitter accounts pushing to reopen America may be bots&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;myth-7-w-is-building-yet-another-echo-chamber&quot;&gt;Myth #7: W is building yet another echo chamber&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-7-w-is-building-yet-another-echo-chamber&quot; aria-label=&quot;Anchor link for: myth-7-w-is-building-yet-another-echo-chamber&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;An &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Echo_chamber_(media)&quot;&gt;&lt;strong&gt;echo chamber&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt; is a space where people only encounter opinions that mirror their own, reinforcing beliefs and shielding them from diverse perspectives. This can &lt;strong&gt;polarize discussions, limit critical thinking, and deepen societal divisions&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;But &lt;strong&gt;W Social isn’t an echo chamber&lt;&#x2F;strong&gt; - it’s a platform designed for &lt;strong&gt;authentic, verified voices&lt;&#x2F;strong&gt; to engage in &lt;strong&gt;healthy discussions and debates&lt;&#x2F;strong&gt;. Here’s why:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Why Echo Chambers Are Harmful&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Echo chambers create &lt;strong&gt;intellectual silos&lt;&#x2F;strong&gt;, where:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Misinformation spreads unchecked&lt;&#x2F;strong&gt; (no opposing views to challenge it).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Polarization grows&lt;&#x2F;strong&gt; (users only see one side of an issue).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Critical thinking declines&lt;&#x2F;strong&gt; (no exposure to alternative perspectives).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;How W Social Avoids the Echo Chamber Trap&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verified, Diverse Voices&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
W Social requires &lt;strong&gt;identity verification&lt;&#x2F;strong&gt;, ensuring that every account represents a &lt;strong&gt;real person&lt;&#x2F;strong&gt;. This reduces the likelihood of &lt;strong&gt;fake accounts amplifying extreme or one-sided narratives&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open by Default&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Posts on W Social are &lt;strong&gt;public by default&lt;&#x2F;strong&gt;, meaning conversations are &lt;strong&gt;visible to everyone&lt;&#x2F;strong&gt; - not just like-minded users. This encourages &lt;strong&gt;cross-pollination of ideas&lt;&#x2F;strong&gt; and exposure to different viewpoints.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Designed for Debate&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Unlike platforms that &lt;strong&gt;algorithmically amplify outrage or agreement&lt;&#x2F;strong&gt;, W Social’s structure supports &lt;strong&gt;healthy discussions&lt;&#x2F;strong&gt;. For example:&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Imagine a debate about &lt;strong&gt;climate policy&lt;&#x2F;strong&gt; where scientists, policymakers, and skeptics engage in a &lt;strong&gt;respectful, evidence-based discussion&lt;&#x2F;strong&gt;. Instead of shouting matches or echo chambers, users can challenge ideas, ask questions, and refine their perspectives - all while knowing they’re interacting with &lt;strong&gt;real, verified people&lt;&#x2F;strong&gt;.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Or consider a &lt;strong&gt;political discussion&lt;&#x2F;strong&gt; about immigration reform, where advocates, critics, and undecided citizens exchange &lt;strong&gt;nuanced arguments&lt;&#x2F;strong&gt; without fear of anonymous harassment. Verified identities ensure accountability, so conversations stay &lt;strong&gt;focused on facts and solutions&lt;&#x2F;strong&gt; rather than personal attacks.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Even on &lt;strong&gt;social issues&lt;&#x2F;strong&gt; like gender equality or education reform, W Social enables &lt;strong&gt;constructive dialogue&lt;&#x2F;strong&gt;. Users can share personal experiences, cite research, and engage in &lt;strong&gt;thoughtful debate&lt;&#x2F;strong&gt; - without the noise of bots or trolls derailing the conversation.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Users can:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Engage in respectful debates&lt;&#x2F;strong&gt; (no anonymous trolls derailing conversations).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Challenge ideas&lt;&#x2F;strong&gt; (verified users are more likely to stand by their opinions).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Build communities around shared interests - not just shared beliefs&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;The Takeaway:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social isn’t about creating an echo chamber - it’s about &lt;strong&gt;fostering real conversations&lt;&#x2F;strong&gt; among real people. By prioritizing &lt;strong&gt;verification, transparency, and open dialogue&lt;&#x2F;strong&gt;, W Social ensures that discussions are &lt;strong&gt;authentic, diverse, and constructive&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;See also:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Echo_chamber_(media)&quot;&gt;Echo chamber (media)&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.bbc.co.uk&#x2F;bitesize&#x2F;articles&#x2F;zbwkbqt&quot;&gt;What are echo chambers?&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;netpsychology.org&#x2F;social-media-echo-chambers&#x2F;&quot;&gt;Social Media Echo Chambers: How Algorithms Control What You See&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.pnas.org&#x2F;doi&#x2F;10.1073&#x2F;pnas.2023301118&quot;&gt;The echo chamber effect on social media&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;myth-8-w-does-not-have-moderation&quot;&gt;Myth #8: W Does Not Have Moderation&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-8-w-does-not-have-moderation&quot; aria-label=&quot;Anchor link for: myth-8-w-does-not-have-moderation&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Some users - both inside and outside W Social - claim that the platform &lt;strong&gt;lacks moderation&lt;&#x2F;strong&gt;. But the truth is, &lt;strong&gt;W Social does moderate content&lt;&#x2F;strong&gt;, and it does so &lt;strong&gt;responsibly and in compliance with EU laws&lt;&#x2F;strong&gt;. Here’s how it works:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;How Moderation Works on W Social&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proactive and Reactive Moderation&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
The W Social team &lt;strong&gt;actively monitors&lt;&#x2F;strong&gt; both human and automated accounts to ensure they follow &lt;strong&gt;platform rules, laws, and EU regulations&lt;&#x2F;strong&gt;. However, moderation isn’t just the team’s job - &lt;strong&gt;users play a key role too&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;User Reporting Is Essential&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
If you encounter an issue, &lt;strong&gt;contacting support or using moderation feedback tools&lt;&#x2F;strong&gt; is the way to go. Public complaints on blogs, Reddit, or social media &lt;strong&gt;won’t trigger action&lt;&#x2F;strong&gt; - direct reports do. This ensures the team can &lt;strong&gt;investigate and respond promptly&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Free Speech ≠ No Rules&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
W Social believes in &lt;strong&gt;free speech&lt;&#x2F;strong&gt;, but that doesn’t mean anything goes. Content must &lt;strong&gt;obey the law&lt;&#x2F;strong&gt;. The platform has already taken action in multiple cases, including:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Removing &lt;strong&gt;human and automated accounts&lt;&#x2F;strong&gt; (e.g., Neo, Tom) for violating rules.&lt;&#x2F;li&gt;
&lt;li&gt;Taking down &lt;strong&gt;block lists&lt;&#x2F;strong&gt; that breached platform policies.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Building Better Tools&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
W Social is still in &lt;strong&gt;closed beta&lt;&#x2F;strong&gt; (with a planned release in &lt;strong&gt;January 2027&lt;&#x2F;strong&gt;), and the team is &lt;strong&gt;actively improving moderation tools and processes&lt;&#x2F;strong&gt;. As the platform grows, so will its ability to &lt;strong&gt;detect and address violations efficiently&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;strong&gt;The Takeaway:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social &lt;strong&gt;does moderate content&lt;&#x2F;strong&gt; - but it relies on &lt;strong&gt;users to report issues directly&lt;&#x2F;strong&gt;. By combining &lt;strong&gt;proactive monitoring, legal compliance, and user reporting&lt;&#x2F;strong&gt;, W Social ensures a &lt;strong&gt;safer, more accountable&lt;&#x2F;strong&gt; environment. If you see something, &lt;strong&gt;say something (to support)&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-9-w-promotes-right-wing-propaganda&quot;&gt;Myth #9: W Promotes Right-Wing Propaganda&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-9-w-promotes-right-wing-propaganda&quot; aria-label=&quot;Anchor link for: myth-9-w-promotes-right-wing-propaganda&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This myth &lt;strong&gt;emerged during the Saxony-Anhalt election in September 2026&lt;&#x2F;strong&gt;, fueled by a mix of &lt;strong&gt;misinformation, competition, and deliberate anti-W campaigns&lt;&#x2F;strong&gt;. Here’s the full context - and why the claim doesn’t hold up:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Author’s Note: The Background&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;To the best of my knowledge, the following information is based on publicly available sources and open discussions.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;During the election period, &lt;strong&gt;W Social’s CEO (Anna Zeiter) and Chair (Ingmar Rentzhog)&lt;&#x2F;strong&gt; were &lt;strong&gt;auto-following every new account&lt;&#x2F;strong&gt; on the platform. This feature - intended to &lt;strong&gt;welcome and engage new users&lt;&#x2F;strong&gt; - was &lt;strong&gt;misrepresented&lt;&#x2F;strong&gt; by competitors and opponents. Combined with &lt;strong&gt;misbehaving accounts&lt;&#x2F;strong&gt; (which were later removed), it was used to falsely claim that W Social was &lt;strong&gt;endorsing right-wing propaganda&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;However, this narrative ignores &lt;strong&gt;key facts&lt;&#x2F;strong&gt; about how W Social - and any open platform -operates.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Why the Myth Is Flawed&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verified ≠ Vetted&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
While W Social &lt;strong&gt;verifies user identities&lt;&#x2F;strong&gt;, this doesn’t mean it &lt;strong&gt;vets their opinions or content&lt;&#x2F;strong&gt;. Verified users can still post &lt;strong&gt;abusive materials, spam, or rage-bait content&lt;&#x2F;strong&gt; - just like on any other platform. &lt;strong&gt;Verification ensures authenticity, not ideological alignment.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automation and Free Speech&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Users are &lt;strong&gt;free to automate their accounts&lt;&#x2F;strong&gt; (e.g., using LLMs) &lt;strong&gt;as long as they comply with W Social’s rules and EU laws&lt;&#x2F;strong&gt;. The platform &lt;strong&gt;does not restrict lawful automation&lt;&#x2F;strong&gt;, but it &lt;strong&gt;does enforce violations&lt;&#x2F;strong&gt; when they occur.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proactive Moderation&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
W Social &lt;strong&gt;actively monitors and addresses&lt;&#x2F;strong&gt; violations of its &lt;strong&gt;Terms of Service, EU laws, and community guidelines&lt;&#x2F;strong&gt;. Accounts that break these rules - &lt;strong&gt;including those spreading misinformation or propaganda&lt;&#x2F;strong&gt; - are &lt;strong&gt;promptly removed&lt;&#x2F;strong&gt;. However, &lt;strong&gt;competitors and opponents&lt;&#x2F;strong&gt; often &lt;strong&gt;screenshot and amplify&lt;&#x2F;strong&gt; controversial content &lt;strong&gt;just before it’s taken down&lt;&#x2F;strong&gt;, using it to push their own anti-W agendas.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Likes and Reposts ≠ Endorsement&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
A fundamental rule of social media is:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;❤️ ≠ I agree.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Posts reflect the author’s private opinions.&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Likes and reposts do not imply endorsement&lt;&#x2F;strong&gt; of the author’s political, religious, or ideological views.&lt;&#x2F;li&gt;
&lt;li&gt;Users &lt;strong&gt;cannot perform full OSINT (Open-Source Intelligence) on every account&lt;&#x2F;strong&gt; they follow, especially if the account &lt;strong&gt;starts posting controversial content later&lt;&#x2F;strong&gt; - a common tactic among &lt;strong&gt;social bots&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Platform Neutrality&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
W Social - &lt;strong&gt;like any responsible platform&lt;&#x2F;strong&gt; - &lt;strong&gt;does not take sides&lt;&#x2F;strong&gt; in political or ideological debates. Its role is to:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Maintain dialogue&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Moderate content&lt;&#x2F;strong&gt; to ensure it complies with &lt;strong&gt;rules and laws&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Keep conversations civilized and respectful&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;strong&gt;The Takeaway&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The claim that W Social &lt;strong&gt;promotes right-wing propaganda&lt;&#x2F;strong&gt; is &lt;strong&gt;misleading and context-free&lt;&#x2F;strong&gt;. The platform’s &lt;strong&gt;verification system, moderation policies, and commitment to neutrality&lt;&#x2F;strong&gt; ensure that it remains a space for &lt;strong&gt;authentic, lawful discourse&lt;&#x2F;strong&gt; - not a tool for any political agenda. &lt;strong&gt;Misbehaving accounts are removed&lt;&#x2F;strong&gt;, and &lt;strong&gt;competitors’ narratives&lt;&#x2F;strong&gt; should not be mistaken for reality.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Remember:&lt;&#x2F;strong&gt; A platform’s job is to &lt;strong&gt;host conversations&lt;&#x2F;strong&gt;, not &lt;strong&gt;police opinions&lt;&#x2F;strong&gt; - as long as they stay within the bounds of the law.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary-separating-fact-from-fiction-on-w-social&quot;&gt;Summary: Separating Fact from Fiction on W Social&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary-separating-fact-from-fiction-on-w-social&quot; aria-label=&quot;Anchor link for: summary-separating-fact-from-fiction-on-w-social&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;W Social is a &lt;strong&gt;European, verified, and transparent&lt;&#x2F;strong&gt; platform built on the &lt;strong&gt;AT Protocol&lt;&#x2F;strong&gt;, designed to foster &lt;strong&gt;authentic conversations&lt;&#x2F;strong&gt; under &lt;strong&gt;EU laws&lt;&#x2F;strong&gt;. Let’s recap the realities behind the myths:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;On-device ID verification&lt;&#x2F;strong&gt; raises the cost of bots, making spam rare while &lt;strong&gt;protecting privacy&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Not an echo chamber&lt;&#x2F;strong&gt;: Verified users engage in &lt;strong&gt;diverse, respectful debates&lt;&#x2F;strong&gt; on all topics.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Moderation exists&lt;&#x2F;strong&gt;: W Social enforces &lt;strong&gt;rules and laws&lt;&#x2F;strong&gt;, but &lt;strong&gt;user reports&lt;&#x2F;strong&gt; are essential.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;No political bias&lt;&#x2F;strong&gt;: The platform &lt;strong&gt;hosts discussions&lt;&#x2F;strong&gt; - it doesn’t endorse them. &lt;strong&gt;Likes ≠ agreement&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;W Social is &lt;strong&gt;not just another social network&lt;&#x2F;strong&gt; - it’s a space for &lt;strong&gt;real people, real discussions, and real accountability&lt;&#x2F;strong&gt;. As it prepares for its &lt;strong&gt;January 2027 launch&lt;&#x2F;strong&gt;, it’s clear: &lt;strong&gt;W Social is building a better way to connect online&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;As W Social evolves, staying informed is key. For the latest updates, always check the &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;official FAQ&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div style=&#x27;text-align:center;&#x27;&gt;
&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;div&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Myths About W Social, Explained in Simple Words. Vol 1.</title>
		<published>2026-08-15T00:00:00+00:00</published>
		<updated>2026-08-15T00:00:00+00:00</updated>
		<link href="https://denys.dev/w-mythology-vol1/"/>
		<link rel="alternate" href="https://denys.dev/w-mythology-vol1/" type="text/html"/>
		<id>https://denys.dev/w-mythology-vol1/</id>
        <summary type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;This blog post is part of a series debunking myths and clarifying misconceptions about W Social - so you can separate fact from fiction.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;From the series:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Myths About W Social, Explained in Simple Words. Vol 1.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol2&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 2.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol3&#x2F;&quot;&gt;Myths About W Social, Explained in Simple Words. Vol 3.&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;W&lt;&#x2F;strong&gt; (also known as &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&quot;&gt;W Social&lt;&#x2F;a&gt;) is a European social network governed by EU law, data hosted in Europe, and built for real, verified people. It is built on the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;AT_Protocol&quot;&gt;AT Protocol&lt;&#x2F;a&gt;, an open-source framework for interoperable social media (&lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;source&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Official answers to your questions&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;There is an official page on the W Social website where you can find answers on the most frequently asked questions - &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&lt;&#x2F;a&gt;. Please make sure to visit it from time to time to see the updated content.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;at-protocol&quot;&gt;AT Protocol&lt;a class=&quot;zola-anchor&quot; href=&quot;#at-protocol&quot; aria-label=&quot;Anchor link for: at-protocol&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;It&#x27;s just JSON. The AT Protocol is a data network. Posts, likes, follows, profiles, etc, are all just JSON.&quot; — &lt;a href=&quot;https:&#x2F;&#x2F;atproto.com&quot;&gt;atproto.com&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;The AT Protocol is the &lt;strong&gt;technical backbone&lt;&#x2F;strong&gt; of the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Bluesky&quot;&gt;Bluesky&lt;&#x2F;a&gt; social network, serving as its &lt;strong&gt;reference implementation&lt;&#x2F;strong&gt; and powering an ecosystem of interoperable social applications and services, collectively known as the &lt;strong&gt;ATmosphere&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;In simple terms:&lt;&#x2F;p&gt;
&lt;p&gt;The AT Protocol is like a &lt;strong&gt;global, open ocean of content&lt;&#x2F;strong&gt;, hosted across multiple servers worldwide. All data in this ocean is &lt;strong&gt;publicly accessible&lt;&#x2F;strong&gt;, and users can &lt;strong&gt;read, create, or modify&lt;&#x2F;strong&gt; it using various client applications - built by different developers, teams, or companies.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-1-identity-verification-is-the-end-of-privacy&quot;&gt;Myth #1: Identity verification is the end of privacy&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-1-identity-verification-is-the-end-of-privacy&quot; aria-label=&quot;Anchor link for: myth-1-identity-verification-is-the-end-of-privacy&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Identity verification isn’t about sacrificing privacy - it’s about &lt;strong&gt;preventing fraud and manipulation&lt;&#x2F;strong&gt;. The rise of AI and automation has made it easier than ever for bad actors to create fake accounts at scale. According to the &lt;a href=&quot;https:&#x2F;&#x2F;www.experian.co.uk&#x2F;blogs&#x2F;latest-thinking&#x2F;guide&#x2F;identity-verification-what-is-it-and-why-is-it-important&#x2F;&quot;&gt;Experian UK Identity and Fraud Report&lt;&#x2F;a&gt;, &lt;strong&gt;23% of businesses encountered Gen-AI-related fraud in 2024&lt;&#x2F;strong&gt;, and this number &lt;strong&gt;jumped to 35% in early 2025&lt;&#x2F;strong&gt;. Troll farms and state-sponsored groups now deploy &lt;strong&gt;tens of thousands of fake accounts&lt;&#x2F;strong&gt; to spread disinformation, manipulate public opinion, or interfere in elections - all while appearing deceptively human.&lt;&#x2F;p&gt;
&lt;p&gt;To combat this, some platforms are considering ID verification for users. Think of it like a bar doorman checking IDs at the entrance. The doorman’s job is to confirm you’re 18+ and allowed to enter - nothing more. They don’t keep copies of your ID, take photos of you, or store your personal details. Similarly, ID verification on social media could work the same way: confirming your identity without retaining unnecessary personal data. And just like you can choose to go to a non-alcoholic venue if you don’t want to show your ID, users who prefer not to verify their identity could opt for platforms without such restrictions.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;You identify yourself through W Identity, a separate app that scans your passport or national identity card and verifies you directly on your own device. You stay in control of what you share with other apps and services. Your ID data is stored only on your device unless you choose to share specific parts of it. — &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&quot;&gt;W Social&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom Line:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Identity verification can &lt;strong&gt;combat fraud&lt;&#x2F;strong&gt; without compromising privacy. The key is &lt;strong&gt;user control&lt;&#x2F;strong&gt; - ensuring that your data stays in your hands, not the platform’s.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-2-w-social-is-a-ghost-town-filled-with-thousands-of-profiles-that-cannot-post&quot;&gt;Myth #2: W Social is a ghost town, filled with thousands of profiles that cannot post&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-2-w-social-is-a-ghost-town-filled-with-thousands-of-profiles-that-cannot-post&quot; aria-label=&quot;Anchor link for: myth-2-w-social-is-a-ghost-town-filled-with-thousands-of-profiles-that-cannot-post&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social isn’t a ghost town - it’s a &lt;strong&gt;growing, intentionally curated community&lt;&#x2F;strong&gt;. Here’s why the perception of inactivity is misleading:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;two-types-of-accounts&quot;&gt;Two Types of Accounts&lt;a class=&quot;zola-anchor&quot; href=&quot;#two-types-of-accounts&quot; aria-label=&quot;Anchor link for: two-types-of-accounts&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;W Social has two account types:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Verified users&lt;&#x2F;strong&gt;: Can view content, post, like, comment, and fully engage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Unverified users&lt;&#x2F;strong&gt;: Can only &lt;strong&gt;view&lt;&#x2F;strong&gt; public content.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Many users start as &lt;strong&gt;unverified&lt;&#x2F;strong&gt; to test the platform before committing to verification. As the &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;official FAQ&lt;&#x2F;a&gt; states:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&quot;You may browse all public content without verification. Posting, commenting, messaging, and interacting with other users requires identity verification.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;why-it-seems-quiet&quot;&gt;Why It Seems Quiet&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-it-seems-quiet&quot; aria-label=&quot;Anchor link for: why-it-seems-quiet&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Controlled Growth&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social is currently in a &lt;strong&gt;closed beta&lt;&#x2F;strong&gt;, with signups managed via a waiting list. This means:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Users &lt;strong&gt;cannot onboard quickly&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Invites for friends and family are &lt;strong&gt;limited&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Unverified Users Are Invisible to Researchers&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;During the evaluation phase, unverified users don’t generate &lt;strong&gt;posts, comments, or likes&lt;&#x2F;strong&gt; - the typical signals researchers use to measure activity. This creates the illusion of a &quot;ghost town,&quot; even though many users are &lt;strong&gt;actively exploring&lt;&#x2F;strong&gt; the platform.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Steady Growth in Engagement&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Independent research shows that &lt;strong&gt;engagement and user activity are growing&lt;&#x2F;strong&gt; as more people join and complete verification.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;active-users-chart.png&quot; alt=&quot;Active Users Chart&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Bottom Line:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social’s &lt;strong&gt;controlled growth&lt;&#x2F;strong&gt; and &lt;strong&gt;verification requirement&lt;&#x2F;strong&gt; mean that activity isn’t immediately visible to outsiders. But make no mistake - this is a &lt;strong&gt;deliberate strategy&lt;&#x2F;strong&gt; to ensure a high-quality, authentic user base, not a sign of failure.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-3-w-social-has-quietly-become-closed-source&quot;&gt;Myth #3: W Social Has Quietly Become Closed-Source&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-3-w-social-has-quietly-become-closed-source&quot; aria-label=&quot;Anchor link for: myth-3-w-social-has-quietly-become-closed-source&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social’s decision to &lt;strong&gt;temporarily privatize its client applications&lt;&#x2F;strong&gt; - while based on open-source code - has sparked debate. However, this doesn’t mean W Social has abandoned open-source principles. Here’s the full context:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;The Open-Source Foundation&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social’s client apps are &lt;strong&gt;forked&lt;&#x2F;strong&gt; from Bluesky’s open-source codebase, which is publicly available under the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;MIT_License&quot;&gt;MIT License&lt;&#x2F;a&gt;. Bluesky’s official repositories include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web client code&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;iOS app code&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Android app code&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;All of this is hosted on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;social-app&quot;&gt;Microsoft GitHub&lt;&#x2F;a&gt;, built with &lt;strong&gt;React Native&lt;&#x2F;strong&gt; and &lt;strong&gt;TypeScript&lt;&#x2F;strong&gt;, and supported by open-source &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;atproto&quot;&gt;&lt;code&gt;@atproto&lt;&#x2F;code&gt; packages&lt;&#x2F;a&gt;. Bluesky even provides &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;social-app&#x2F;blob&#x2F;main&#x2F;docs&#x2F;build.md&quot;&gt;detailed build instructions&lt;&#x2F;a&gt; for developers.&lt;&#x2F;p&gt;
&lt;p&gt;The project’s popularity is undeniable:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2.8K+ forks&lt;&#x2F;strong&gt; of the client applications&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;18.2K+ stars&lt;&#x2F;strong&gt; on GitHub&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;w-mythology-vol1&#x2F;bluesky-social-forks.png&quot; alt=&quot;Bluesky GitHub Stats&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Why Are Some Forks Private?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;When developers or companies fork Bluesky’s repositories, they can choose to keep their copies &lt;strong&gt;public&lt;&#x2F;strong&gt; (visible to everyone) or &lt;strong&gt;private&lt;&#x2F;strong&gt; (hidden). Private forks often occur when developers:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;proprietary code&lt;&#x2F;strong&gt; or features&lt;&#x2F;li&gt;
&lt;li&gt;Perform &lt;strong&gt;security audits&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Rebrand the app visually (e.g., icons, fonts, illustrations)&lt;&#x2F;li&gt;
&lt;li&gt;Clean up or optimize the codebase&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Bluesky’s &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;social-app&#x2F;blob&#x2F;main&#x2F;ASSETS.md&quot;&gt;Asset Licensing&lt;&#x2F;a&gt; policy has also fueled discussions in the open-source community. For example:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&quot;We should have written this down sooner. If you’ve already forked this repository and used its assets, we’re not treating that as bad faith—this is our oversight.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;W Social’s Stance on Open Source&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social addresses this directly in its &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;official FAQ&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&quot;During W’s early development, the repositories we forked were publicly accessible and were later made private while we reviewed &lt;strong&gt;security, privacy, licensing, intellectual property, documentation, and commercial considerations&lt;&#x2F;strong&gt;. W will republish the forked repositories - with improvements, integrations, bug fixes, and technical documentation - once they’ve been properly reviewed and are ready for responsible release. &lt;strong&gt;W will comply fully with all applicable open-source licenses.&lt;&#x2F;strong&gt;&quot;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bottom Line:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W Social’s &lt;strong&gt;temporary privatization&lt;&#x2F;strong&gt; of its client apps is a &lt;strong&gt;development phase&lt;&#x2F;strong&gt;, not a rejection of open-source values. The goal is to ensure that when the code is republished, it meets &lt;strong&gt;high standards for security, compliance, and responsibility&lt;&#x2F;strong&gt;. Until then, the platform remains committed to open-source principles.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-4-by-moving-to-w-social-european-institutions-migrated-their-accounts-from-an-open-to-a-closed-source-network&quot;&gt;Myth #4: By moving to W Social, European institutions migrated their accounts from an open to a closed-source network&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-4-by-moving-to-w-social-european-institutions-migrated-their-accounts-from-an-open-to-a-closed-source-network&quot; aria-label=&quot;Anchor link for: myth-4-by-moving-to-w-social-european-institutions-migrated-their-accounts-from-an-open-to-a-closed-source-network&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Your posts on W are public by default, ensuring conversations remain open and visible to everyone. While W is built on the &lt;strong&gt;open, global AT-Protocol&lt;&#x2F;strong&gt;, its client applications (web, iOS, Android) are currently closed-source during the active development and testing phase. However, the platform may open these applications to researchers for public review in the future - excluding proprietary systems.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;strong&gt;key difference&lt;&#x2F;strong&gt; lies in &lt;strong&gt;data hosting&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Your data is hosted by W on a Personal Data Server (PDS) in the EU, controlled by a European company&lt;&#x2F;em&gt;. — &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;W Social&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This means that while the &lt;strong&gt;protocol&lt;&#x2F;strong&gt; remains open, the &lt;strong&gt;infrastructure and client apps&lt;&#x2F;strong&gt; are not yet fully transparent. However, the shift ensures that European institutions retain &lt;strong&gt;data sovereignty&lt;&#x2F;strong&gt; within the EU.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;myth-5-w-will-use-your-content-to-train-ai&quot;&gt;Myth #5: W will use your content to train AI&lt;a class=&quot;zola-anchor&quot; href=&quot;#myth-5-w-will-use-your-content-to-train-ai&quot; aria-label=&quot;Anchor link for: myth-5-w-will-use-your-content-to-train-ai&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reality:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Unlike some platforms that monetize user content for AI training, &lt;strong&gt;W does not use your posts or data for this purpose&lt;&#x2F;strong&gt;. Here’s why this myth doesn’t add up:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Public by design&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W is built on the &lt;strong&gt;open AT-Protocol&lt;&#x2F;strong&gt;, meaning all content is &lt;strong&gt;public by default&lt;&#x2F;strong&gt; - just like a public square. If someone wanted to train AI on this data, they wouldn’t need W’s permission; &lt;strong&gt;anyone could scrape and use it&lt;&#x2F;strong&gt;. The idea that W itself would secretly train AI on public content is illogical when the data is already openly accessible.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;No Incentive for Hidden Training&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;W is a &lt;strong&gt;for-profit company&lt;&#x2F;strong&gt;, but its current business model does not rely on AI training. As stated in their &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;official FAQ&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&quot;Data is used only to operate the platform, ensure security, and prevent fraud. Future advertising will be introduced in full compliance with GDPR, DSA, and other EU regulations - meaning no undesired profiling based on your personal data.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Their focus is on &lt;strong&gt;compliance and transparency&lt;&#x2F;strong&gt;, not covert data exploitation.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;No Technical Need&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Since the AT-Protocol is open, and W’s data is public, there’s no technical or financial reason for W to &lt;strong&gt;privately&lt;&#x2F;strong&gt; train AI models. If AI training were part of their plan, they could simply &lt;strong&gt;announce it&lt;&#x2F;strong&gt; - just as other platforms do.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary-separating-fact-from-fiction&quot;&gt;Summary: Separating Fact from Fiction&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary-separating-fact-from-fiction&quot; aria-label=&quot;Anchor link for: summary-separating-fact-from-fiction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;wsocial.eu&quot;&gt;W Social&lt;&#x2F;a&gt; is a &lt;strong&gt;European, verified, and transparent&lt;&#x2F;strong&gt; platform built on the open AT Protocol. While myths about &lt;strong&gt;privacy, inactivity, open-source commitments, AI training, and identity verification&lt;&#x2F;strong&gt; continue to circulate, the reality is clear:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Identity verification&lt;&#x2F;strong&gt; doesn’t mean the end of privacy - it’s a tool to combat fraud while keeping users in control.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;W Social isn’t a ghost town&lt;&#x2F;strong&gt; - its controlled growth ensures a high-quality, authentic community.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;The platform remains committed to open-source principles&lt;&#x2F;strong&gt;, with plans to republish its repositories responsibly.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Your content isn’t used for AI training&lt;&#x2F;strong&gt; - W Social’s business model and public protocol make this unnecessary.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;W Social isn’t closed-source&lt;&#x2F;strong&gt; - it’s built on open foundations and will continue to honor open-source licenses.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;As W Social evolves, staying informed is key. For the latest updates, always check the &lt;a href=&quot;https:&#x2F;&#x2F;wsocial.news&#x2F;faq&quot;&gt;official FAQ&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div style=&#x27;text-align:center;&#x27;&gt;
&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;div&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>DuckDuckGo vs Qwant: Which Search Engine is More Privacy-Friendly?</title>
		<published>2026-07-31T00:00:00+00:00</published>
		<updated>2026-07-31T00:00:00+00:00</updated>
		<link href="https://denys.dev/ddg-vs-qwant-privacy/"/>
		<link rel="alternate" href="https://denys.dev/ddg-vs-qwant-privacy/" type="text/html"/>
		<id>https://denys.dev/ddg-vs-qwant-privacy/</id>
        <summary type="html">&lt;p&gt;A detailed comparison of DuckDuckGo and Qwant, focusing on their privacy features and how they handle user data.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;A detailed comparison of DuckDuckGo and Qwant, focusing on their privacy features and how they handle user data.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;In an era where digital privacy is increasingly under threat, choosing a search engine that respects your data is more important than ever. Two of the most popular privacy-focused alternatives to Google are &lt;strong&gt;DuckDuckGo&lt;&#x2F;strong&gt; and &lt;strong&gt;Qwant&lt;&#x2F;strong&gt;. Both promise to protect your privacy, but how do their policies really compare?&lt;&#x2F;p&gt;
&lt;p&gt;Do they truly avoid tracking you? How much data do they collect, and who do they share it with? Most importantly, &lt;strong&gt;which one is more privacy-friendly?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;In this post, we’ll dive deep into the privacy policies of DuckDuckGo and Qwant, comparing their approaches to data collection, tracking, and third-party partnerships—particularly with Microsoft. By the end, you’ll have a clear understanding of which search engine aligns best with your privacy expectations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;core-privacy-philosophies&quot;&gt;Core Privacy Philosophies&lt;a class=&quot;zola-anchor&quot; href=&quot;#core-privacy-philosophies&quot; aria-label=&quot;Anchor link for: core-privacy-philosophies&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;duckduckgo-the-no-tracking-promise&quot;&gt;DuckDuckGo: The &quot;No Tracking&quot; Promise&lt;a class=&quot;zola-anchor&quot; href=&quot;#duckduckgo-the-no-tracking-promise&quot; aria-label=&quot;Anchor link for: duckduckgo-the-no-tracking-promise&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;DuckDuckGo’s privacy policy is built on a simple but powerful principle: &lt;strong&gt;&quot;We don’t track you.&quot;&lt;&#x2F;strong&gt; This isn’t just a slogan—it’s the foundation of their entire approach.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Tracking&lt;&#x2F;strong&gt;: DuckDuckGo does not save or share your search, chat, or browsing history. Your IP address is never logged to disk, and unique identifiers are never tied to your activity.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anonymous Usage&lt;&#x2F;strong&gt;: Search queries are completely disconnected from IP addresses or any other unique identifiers. DuckDuckGo only analyzes anonymous trends (e.g., popular search terms like &quot;cute cat pictures&quot;) to improve its services.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;No Targeted Ads&lt;&#x2F;strong&gt;: Ads on DuckDuckGo are &lt;strong&gt;contextual&lt;&#x2F;strong&gt;, meaning they’re based on the search query itself (e.g., searching for &quot;cars&quot; will show car ads). These ads are managed by Microsoft’s ad network, but Microsoft has committed to &lt;strong&gt;not associating ad-click behavior with user profiles&lt;&#x2F;strong&gt; or storing it beyond accounting purposes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;No Personal Data Sale&lt;&#x2F;strong&gt;: DuckDuckGo has never sold personal information and explicitly states it never will.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;qwant-privacy-with-conditions&quot;&gt;Qwant: Privacy with Conditions&lt;a class=&quot;zola-anchor&quot; href=&quot;#qwant-privacy-with-conditions&quot; aria-label=&quot;Anchor link for: qwant-privacy-with-conditions&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Qwant positions itself as a privacy-respecting search engine, but its approach is more nuanced—and more conditional.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Tracking by Default&lt;&#x2F;strong&gt;: Qwant does not store your search history or use advertising cookies &lt;strong&gt;unless you explicitly consent&lt;&#x2F;strong&gt; to personalized ads or create a user account.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contextual Ads by Default&lt;&#x2F;strong&gt;: Without consent, ads are &lt;strong&gt;contextual&lt;&#x2F;strong&gt; (based on keywords) and non-personalized. However, Qwant’s default setup still involves sharing &lt;strong&gt;pseudonymized data&lt;&#x2F;strong&gt; with partners like Microsoft.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Partnership with Microsoft&lt;&#x2F;strong&gt;: Even without your consent, Qwant shares &lt;strong&gt;pseudonymized data&lt;&#x2F;strong&gt; (e.g., search keywords, truncated IP addresses, geographic regions, and salted hashes) with Microsoft to provide search results and contextual ads. For security and fraud prevention, &lt;strong&gt;full IP addresses may also be shared&lt;&#x2F;strong&gt; with Microsoft.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;User Accounts and Consent&lt;&#x2F;strong&gt;: If you create a Qwant account or consent to cookies, the search engine collects additional data (e.g., email addresses, login dates) and may share &lt;strong&gt;browsing and device data&lt;&#x2F;strong&gt; with Microsoft for &lt;strong&gt;personalized ads and audience measurement&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;data-collection-and-retention&quot;&gt;Data Collection and Retention&lt;a class=&quot;zola-anchor&quot; href=&quot;#data-collection-and-retention&quot; aria-label=&quot;Anchor link for: data-collection-and-retention&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;To better understand the differences, let’s break down what data each search engine collects and how long they retain it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;duckduckgo&quot;&gt;DuckDuckGo&lt;a class=&quot;zola-anchor&quot; href=&quot;#duckduckgo&quot; aria-label=&quot;Anchor link for: duckduckgo&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;Data Type&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Collection&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Retention&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;IP address&lt;&#x2F;td&gt;&lt;td&gt;Temporarily used for content delivery&#x2F;security; &lt;strong&gt;never logged to disk&lt;&#x2F;strong&gt;.&lt;&#x2F;td&gt;&lt;td&gt;Not retained.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Search queries&lt;&#x2F;td&gt;&lt;td&gt;Anonymous, disconnected from identifiers.&lt;&#x2F;td&gt;&lt;td&gt;Retained in anonymous form for trend analysis.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Device&#x2F;browser info&lt;&#x2F;td&gt;&lt;td&gt;Collected for security&#x2F;delivery (e.g., browser type, language).&lt;&#x2F;td&gt;&lt;td&gt;Not tied to individuals.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Optional features (e.g., Sync &amp;amp; Backup)&lt;&#x2F;td&gt;&lt;td&gt;Uses random IDs; &lt;strong&gt;DuckDuckGo cannot decrypt user data&lt;&#x2F;strong&gt;.&lt;&#x2F;td&gt;&lt;td&gt;Controlled by user.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;qwant&quot;&gt;Qwant&lt;a class=&quot;zola-anchor&quot; href=&quot;#qwant&quot; aria-label=&quot;Anchor link for: qwant&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;Data Type&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Collection&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Retention&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Without Consent&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;IP address&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;Salted hash&lt;&#x2F;strong&gt; (changes every 3 months) + truncated (first 3 bytes).&lt;&#x2F;td&gt;&lt;td&gt;Anonymized by Microsoft after 6 months; aggregated data retained for 25 months.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Search keywords&lt;&#x2F;td&gt;&lt;td&gt;Associated with pseudonymous identifiers (for 1 month), then anonymized.&lt;&#x2F;td&gt;&lt;td&gt;12 months (aggregated).&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Device&#x2F;browser info&lt;&#x2F;td&gt;&lt;td&gt;Collected for functionality (e.g., OS, language).&lt;&#x2F;td&gt;&lt;td&gt;Aggregated for 25 months.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;With Consent&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Full IP address&lt;&#x2F;td&gt;&lt;td&gt;Shared with Microsoft for &lt;strong&gt;contextual ads&lt;&#x2F;strong&gt; and security.&lt;&#x2F;td&gt;&lt;td&gt;Deleted after 6 months (Microsoft); cookie IDs after 18 months.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;User account data&lt;&#x2F;td&gt;&lt;td&gt;Email, login dates, preferences.&lt;&#x2F;td&gt;&lt;td&gt;13 months after inactivity.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Browsing&#x2F;interaction data&lt;&#x2F;td&gt;&lt;td&gt;Used for personalized ads, audience measurement (via cookies).&lt;&#x2F;td&gt;&lt;td&gt;Up to 25 months (aggregated).&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;key-differences-does-qwant-collect-more-and-send-data-to-microsoft&quot;&gt;Key Differences: Does Qwant Collect More and Send Data to Microsoft?&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-differences-does-qwant-collect-more-and-send-data-to-microsoft&quot; aria-label=&quot;Anchor link for: key-differences-does-qwant-collect-more-and-send-data-to-microsoft&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;The short answer is &lt;strong&gt;yes&lt;&#x2F;strong&gt;. Here’s why:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;1-pseudonymized-data-sharing-with-microsoft&quot;&gt;1. Pseudonymized Data Sharing with Microsoft&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-pseudonymized-data-sharing-with-microsoft&quot; aria-label=&quot;Anchor link for: 1-pseudonymized-data-sharing-with-microsoft&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Qwant &lt;strong&gt;always shares&lt;&#x2F;strong&gt; the following data with Microsoft, even without your consent:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Search keywords&lt;&#x2F;li&gt;
&lt;li&gt;Truncated IP addresses (first 3 bytes)&lt;&#x2F;li&gt;
&lt;li&gt;Geographic region&lt;&#x2F;li&gt;
&lt;li&gt;Salted hashes of your IP address&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This data is used to provide search results and contextual ads. Additionally, for security and fraud prevention, &lt;strong&gt;full IP addresses may be shared&lt;&#x2F;strong&gt; with Microsoft.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2-personalized-ads-and-profiling-with-consent&quot;&gt;2. Personalized Ads and Profiling (With Consent)&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-personalized-ads-and-profiling-with-consent&quot; aria-label=&quot;Anchor link for: 2-personalized-ads-and-profiling-with-consent&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;If you consent to cookies, Qwant takes data sharing a step further:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft can use your &lt;strong&gt;browsing and device data&lt;&#x2F;strong&gt; to:
&lt;ul&gt;
&lt;li&gt;Create &lt;strong&gt;advertising profiles&lt;&#x2F;strong&gt; (e.g., tracking your interests and behavior).&lt;&#x2F;li&gt;
&lt;li&gt;Serve &lt;strong&gt;personalized ads&lt;&#x2F;strong&gt; on Qwant and potentially other sites.&lt;&#x2F;li&gt;
&lt;li&gt;Measure ad performance and combine datasets for deeper insights.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;3-duckduckgo-s-approach&quot;&gt;3. DuckDuckGo’s Approach&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-duckduckgo-s-approach&quot; aria-label=&quot;Anchor link for: 3-duckduckgo-s-approach&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;DuckDuckGo’s policy is far more restrictive:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No sharing of identifiers&lt;&#x2F;strong&gt; (IPs, unique IDs) with Microsoft or any third party for tracking.&lt;&#x2F;li&gt;
&lt;li&gt;Microsoft’s ad network &lt;strong&gt;cannot associate ad clicks with user profiles&lt;&#x2F;strong&gt; (as per DuckDuckGo’s agreement).&lt;&#x2F;li&gt;
&lt;li&gt;Ads are &lt;strong&gt;strictly contextual&lt;&#x2F;strong&gt;—based on the search query, not the user.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;transparency-and-user-control&quot;&gt;Transparency and User Control&lt;a class=&quot;zola-anchor&quot; href=&quot;#transparency-and-user-control&quot; aria-label=&quot;Anchor link for: transparency-and-user-control&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;Aspect&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;DuckDuckGo&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;th&gt;&lt;strong&gt;Qwant&lt;&#x2F;strong&gt;&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Default Tracking&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;None.&lt;&#x2F;td&gt;&lt;td&gt;None (but pseudonymized data is shared with Microsoft).&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Opt-in Tracking&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;None (even for optional features, data is encrypted&#x2F;minimal).&lt;&#x2F;td&gt;&lt;td&gt;Yes (cookies for personalized ads, audience measurement).&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;User Accounts&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Not required; optional features use encrypted data.&lt;&#x2F;td&gt;&lt;td&gt;Required for new features; data may be shared with Microsoft if consented.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Data Retention&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Minimal (anonymous trends only).&lt;&#x2F;td&gt;&lt;td&gt;Up to 25 months (aggregated); 13 months for account data.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Third-Party Sharing&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;Limited to anonymous data for ads (Microsoft).&lt;&#x2F;td&gt;&lt;td&gt;Extensive (Microsoft for ads, Piwik Pro for analytics).&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;summary-which-search-engine-is-more-privacy-friendly&quot;&gt;Summary: Which Search Engine is More Privacy-Friendly?&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary-which-search-engine-is-more-privacy-friendly&quot; aria-label=&quot;Anchor link for: summary-which-search-engine-is-more-privacy-friendly&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;After analyzing both privacy policies, the differences are clear:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Qwant collects and shares more data with Microsoft by default&lt;&#x2F;strong&gt;, even without your explicit consent. Pseudonymized search queries, truncated IPs, and hashes are &lt;strong&gt;always shared&lt;&#x2F;strong&gt; for search results and ads. Full IPs may also be shared for security purposes. If you consent to cookies, Qwant enables &lt;strong&gt;detailed profiling&lt;&#x2F;strong&gt; and personalized ads via Microsoft.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;DuckDuckGo, on the other hand, never shares identifiers&lt;&#x2F;strong&gt; (IPs, unique IDs) with Microsoft or anyone else. Ads are &lt;strong&gt;contextual only&lt;&#x2F;strong&gt;, and Microsoft cannot link ad clicks to individual users. There is &lt;strong&gt;no profiling&lt;&#x2F;strong&gt; or targeted advertising.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;final-answer-the-more-privacy-friendly-choice&quot;&gt;Final Answer: The More Privacy-Friendly Choice&lt;a class=&quot;zola-anchor&quot; href=&quot;#final-answer-the-more-privacy-friendly-choice&quot; aria-label=&quot;Anchor link for: final-answer-the-more-privacy-friendly-choice&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;DuckDuckGo is the stricter and more privacy-friendly option.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;While both search engines prioritize privacy over companies like Google, DuckDuckGo’s policy is more absolute: it &lt;strong&gt;never ties searches to identifiers&lt;&#x2F;strong&gt; and restricts Microsoft to anonymous, non-profiling ad delivery. Qwant, while still privacy-conscious, &lt;strong&gt;shares more data with Microsoft by default&lt;&#x2F;strong&gt; and enables profiling if you consent to cookies.&lt;&#x2F;p&gt;
&lt;p&gt;If your top priority is &lt;strong&gt;minimal data collection and no tracking&lt;&#x2F;strong&gt;, DuckDuckGo is the clear winner. However, if you’re comfortable with &lt;strong&gt;pseudonymized data sharing&lt;&#x2F;strong&gt; and want additional features (like user accounts or AI tools), Qwant might still be a viable alternative—just be aware of the trade-offs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;a class=&quot;zola-anchor&quot; href=&quot;#sources&quot; aria-label=&quot;Anchor link for: sources&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;DuckDuckGo privacy policy (&lt;a href=&quot;https:&#x2F;&#x2F;duckduckgo.com&#x2F;privacy&quot;&gt;https:&#x2F;&#x2F;duckduckgo.com&#x2F;privacy&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Qwant privacy policy (&lt;a href=&quot;https:&#x2F;&#x2F;about.qwant.com&#x2F;en&#x2F;legal&#x2F;confidentialite&quot;&gt;https:&#x2F;&#x2F;about.qwant.com&#x2F;en&#x2F;legal&#x2F;confidentialite&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;div style=&#x27;text-align:center;&#x27;&gt;
&lt;a href=&#x27;https:&#x2F;&#x2F;ko-fi.com&#x2F;F6R626VT2L&#x27; target=&#x27;_blank&#x27;&gt;&lt;img height=&#x27;36&#x27; style=&#x27;border:0px;height:36px;&#x27; src=&#x27;https:&#x2F;&#x2F;storage.ko-fi.com&#x2F;cdn&#x2F;kofi3.png?v=6&#x27; border=&#x27;0&#x27; alt=&#x27;Buy Me a Coffee at ko-fi.com&#x27; &#x2F;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;div&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Developer Guide: Getting Started with LLM Fine-Tuning</title>
		<published>2026-02-13T00:00:00+00:00</published>
		<updated>2026-02-13T00:00:00+00:00</updated>
		<link href="https://denys.dev/smol-training/"/>
		<link rel="alternate" href="https://denys.dev/smol-training/" type="text/html"/>
		<id>https://denys.dev/smol-training/</id>
        <summary type="html">&lt;p&gt;A comprehensive guide for developers new to Large Language Model (LLM) development, covering the complete workflow from running a base model to fine-tuning it with custom data.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;A comprehensive guide for developers new to Large Language Model (LLM) development, covering the complete workflow from running a base model to fine-tuning it with custom data.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;A comprehensive guide for developers new to Large Language Model (LLM) development, covering the complete workflow from running a base model to fine-tuning it with custom data.&lt;&#x2F;p&gt;
&lt;p&gt;You can find all the code for this guide in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;DenysVuika&#x2F;smol-training&quot;&gt;smol-training GitHub repository&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;external-resources&quot;&gt;External Resources&lt;a class=&quot;zola-anchor&quot; href=&quot;#external-resources&quot; aria-label=&quot;Anchor link for: external-resources&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;Before diving into this guide, you might find these resources helpful:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SmolLM3: smol, multilingual, long-context reasoner&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;blog&#x2F;smollm3&quot;&gt;https:&#x2F;&#x2F;huggingface.co&#x2F;blog&#x2F;smollm3&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&quot;smol-course&quot; - comprehensive (and smollest) course to Fine-Tuning Language Models!&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;learn&#x2F;smol-course&#x2F;unit0&#x2F;1&quot;&gt;https:&#x2F;&#x2F;huggingface.co&#x2F;learn&#x2F;smol-course&#x2F;unit0&#x2F;1&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;LoRA and PEFT: Efficient Fine-Tuning&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;learn&#x2F;smol-course&#x2F;unit1&#x2F;3a&quot;&gt;https:&#x2F;&#x2F;huggingface.co&#x2F;learn&#x2F;smol-course&#x2F;unit1&#x2F;3a&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;a class=&quot;zola-anchor&quot; href=&quot;#table-of-contents&quot; aria-label=&quot;Anchor link for: table-of-contents&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#introduction&quot;&gt;Introduction&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#prerequisites&quot;&gt;Prerequisites&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#project-setup&quot;&gt;Project Setup&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#understanding-the-basics&quot;&gt;Understanding the Basics&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#step-1-running-a-base-model&quot;&gt;Step 1: Running a Base Model&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#step-2-preparing-training-data&quot;&gt;Step 2: Preparing Training Data&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#step-3-fine-tuning-with-custom-data&quot;&gt;Step 3: Fine-Tuning with Custom Data&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#step-4-testing-your-fine-tuned-model&quot;&gt;Step 4: Testing Your Fine-Tuned Model&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#step-5-comparing-base-vs-fine-tuned&quot;&gt;Step 5: Comparing Base vs Fine-Tuned&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#understanding-the-code&quot;&gt;Understanding the Code&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#common-issues-troubleshooting&quot;&gt;Common Issues &amp;amp; Troubleshooting&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;denys.dev&#x2F;smol-training&#x2F;#next-steps&quot;&gt;Next Steps&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;This guide walks you through the complete process of working with Large Language Models (LLMs), specifically using HuggingFace&#x27;s SmolLM3-3B model. You&#x27;ll learn to:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Run pre-trained models for inference&lt;&#x2F;li&gt;
&lt;li&gt;Fine-tune models with custom data using LoRA&lt;&#x2F;li&gt;
&lt;li&gt;Evaluate training effectiveness&lt;&#x2F;li&gt;
&lt;li&gt;Understand key concepts in LLM development&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Why SmolLM3?&lt;&#x2F;strong&gt; It&#x27;s a small (3 billion parameters), efficient model perfect for learning and local development, while still being powerful enough for real-world applications.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;prerequisites&quot;&gt;Prerequisites&lt;a class=&quot;zola-anchor&quot; href=&quot;#prerequisites&quot; aria-label=&quot;Anchor link for: prerequisites&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;required-knowledge&quot;&gt;Required Knowledge&lt;a class=&quot;zola-anchor&quot; href=&quot;#required-knowledge&quot; aria-label=&quot;Anchor link for: required-knowledge&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Basic Python programming&lt;&#x2F;li&gt;
&lt;li&gt;Familiarity with command line&#x2F;terminal&lt;&#x2F;li&gt;
&lt;li&gt;Understanding of basic ML concepts (optional but helpful)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;required-software&quot;&gt;Required Software&lt;a class=&quot;zola-anchor&quot; href=&quot;#required-software&quot; aria-label=&quot;Anchor link for: required-software&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.13+&lt;&#x2F;strong&gt; - Modern Python version&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;uv&lt;&#x2F;strong&gt; - Fast Python package manager (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;astral-sh&#x2F;uv&quot;&gt;install from astral.sh&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Git&lt;&#x2F;strong&gt; - Version control&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;hardware-requirements&quot;&gt;Hardware Requirements&lt;a class=&quot;zola-anchor&quot; href=&quot;#hardware-requirements&quot; aria-label=&quot;Anchor link for: hardware-requirements&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;This project supports:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Apple Silicon (M1&#x2F;M2&#x2F;M3)&lt;&#x2F;strong&gt; - Uses Metal Performance Shaders (MPS) ✅ Recommended&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;NVIDIA GPU&lt;&#x2F;strong&gt; - Uses CUDA (change &lt;code&gt;DEVICE = &quot;cuda&quot;&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CPU&lt;&#x2F;strong&gt; - Works but slower (change &lt;code&gt;DEVICE = &quot;cpu&quot;&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Memory&lt;&#x2F;strong&gt;: Minimum 8GB RAM, 16GB+ recommended for training&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;project-setup&quot;&gt;Project Setup&lt;a class=&quot;zola-anchor&quot; href=&quot;#project-setup&quot; aria-label=&quot;Anchor link for: project-setup&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;1-clone-or-create-the-project&quot;&gt;1. Clone or Create the Project&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-clone-or-create-the-project&quot; aria-label=&quot;Anchor link for: 1-clone-or-create-the-project&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;# If cloning from a repository
git clone &amp;lt;your-repo-url&amp;gt;
cd smol-training

# Or create a new project
mkdir smol-training
cd smol-training
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;2-install-dependencies&quot;&gt;2. Install Dependencies&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-install-dependencies&quot; aria-label=&quot;Anchor link for: 2-install-dependencies&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Using &lt;code&gt;uv&lt;&#x2F;code&gt; (modern, fast approach):&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;# Initialize the project (if not already done)
uv init

# Install dependencies
uv sync
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This creates a &lt;code&gt;.venv&lt;&#x2F;code&gt; virtual environment and installs all required packages:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;torch&lt;&#x2F;code&gt; - PyTorch deep learning framework&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;transformers&lt;&#x2F;code&gt; - HuggingFace&#x27;s model library&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;peft&lt;&#x2F;code&gt; - Parameter-Efficient Fine-Tuning (LoRA)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;trl&lt;&#x2F;code&gt; - Transformer Reinforcement Learning tools&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;datasets&lt;&#x2F;code&gt; - Dataset management&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;accelerate&lt;&#x2F;code&gt; - Training acceleration&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Important&lt;&#x2F;strong&gt;: With &lt;code&gt;uv&lt;&#x2F;code&gt;, you don&#x27;t need to manually activate the virtual environment. Just use &lt;code&gt;uv run&lt;&#x2F;code&gt; before your Python commands!&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;understanding-the-basics&quot;&gt;Understanding the Basics&lt;a class=&quot;zola-anchor&quot; href=&quot;#understanding-the-basics&quot; aria-label=&quot;Anchor link for: understanding-the-basics&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;key-concepts&quot;&gt;Key Concepts&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-concepts&quot; aria-label=&quot;Anchor link for: key-concepts&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;1-base-model-vs-fine-tuned-model&quot;&gt;1. &lt;strong&gt;Base Model vs Fine-Tuned Model&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-base-model-vs-fine-tuned-model&quot; aria-label=&quot;Anchor link for: 1-base-model-vs-fine-tuned-model&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Base Model&lt;&#x2F;strong&gt;: Pre-trained on massive datasets, knows general information&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fine-Tuned Model&lt;&#x2F;strong&gt;: Adapted to specific tasks or knowledge domains&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Think of it like this: The base model is a general doctor, fine-tuning makes it a specialist.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;2-lora-low-rank-adaptation&quot;&gt;2. &lt;strong&gt;LoRA (Low-Rank Adaptation)&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-lora-low-rank-adaptation&quot; aria-label=&quot;Anchor link for: 2-lora-low-rank-adaptation&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;Instead of retraining all 3 billion parameters, LoRA only trains ~0.12% (3.8 million) of them by adding small &quot;adapter&quot; layers. This:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Reduces memory requirements dramatically&lt;&#x2F;li&gt;
&lt;li&gt;Speeds up training&lt;&#x2F;li&gt;
&lt;li&gt;Makes the training possible on consumer hardware&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;3-tokenization&quot;&gt;3. &lt;strong&gt;Tokenization&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-tokenization&quot; aria-label=&quot;Anchor link for: 3-tokenization&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;LLMs don&#x27;t work with text directly—they use &quot;tokens&quot; (word pieces). The tokenizer converts:&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;&amp;quot;Hello world&amp;quot; → [15496, 995] → Model processes → [15496, 995, 0, 345] → &amp;quot;Hello world!&amp;quot;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h4 id=&quot;4-inference-vs-training&quot;&gt;4. &lt;strong&gt;Inference vs Training&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-inference-vs-training&quot; aria-label=&quot;Anchor link for: 4-inference-vs-training&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Inference&lt;&#x2F;strong&gt;: Using the model to generate responses (like ChatGPT usage)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Training&lt;&#x2F;strong&gt;: Teaching the model new information or behaviors&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;step-1-running-a-base-model&quot;&gt;Step 1: Running a Base Model&lt;a class=&quot;zola-anchor&quot; href=&quot;#step-1-running-a-base-model&quot; aria-label=&quot;Anchor link for: step-1-running-a-base-model&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;Let&#x27;s start by running the base SmolLM3 model to see how it works before fine-tuning.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-code-main-py&quot;&gt;The Code: &lt;code&gt;main.py&lt;&#x2F;code&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-code-main-py&quot; aria-label=&quot;Anchor link for: the-code-main-py&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation.streamers import TextStreamer

model_name = &amp;quot;HuggingFaceTB&amp;#x2F;SmolLM3-3B&amp;quot;
device = &amp;quot;mps&amp;quot;  # Use &amp;quot;cuda&amp;quot; for NVIDIA, &amp;quot;cpu&amp;quot; for CPU

# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map=device)

# Prepare a message
messages = [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;Explain gravity in simple terms.&amp;quot;}]

# Convert to model input format
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
model_inputs = tokenizer([text], return_tensors=&amp;quot;pt&amp;quot;).to(model.device)

# Generate response with streaming
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512,
    temperature=0.6,  # Controls randomness (0=deterministic, 1=creative)
    top_p=0.95,       # Nucleus sampling
    streamer=streamer,
)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;run-it&quot;&gt;Run It&lt;a class=&quot;zola-anchor&quot; href=&quot;#run-it&quot; aria-label=&quot;Anchor link for: run-it&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;uv run python main.py
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;What happens:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Downloads the model (~6GB, first time only)&lt;&#x2F;li&gt;
&lt;li&gt;Loads it into memory&lt;&#x2F;li&gt;
&lt;li&gt;Generates a response about gravity&lt;&#x2F;li&gt;
&lt;li&gt;Streams the output token-by-token (like ChatGPT)&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;key-parameters-explained&quot;&gt;Key Parameters Explained&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-parameters-explained&quot; aria-label=&quot;Anchor link for: key-parameters-explained&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;max_new_tokens&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt;: Maximum length of response (512 = ~380 words)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;temperature&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;0.1-0.3&lt;&#x2F;code&gt; = Focused, deterministic&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;0.6-0.8&lt;&#x2F;code&gt; = Balanced&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;0.9-1.2&lt;&#x2F;code&gt; = Creative, random&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;top_p&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt;: Only sample from top X% of probable next tokens&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Experiment&lt;&#x2F;strong&gt;: Try changing the temperature or prompt and observe different outputs!&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;step-2-preparing-training-data&quot;&gt;Step 2: Preparing Training Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#step-2-preparing-training-data&quot; aria-label=&quot;Anchor link for: step-2-preparing-training-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;The most critical step in fine-tuning is creating good training data.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;data-format&quot;&gt;Data Format&lt;a class=&quot;zola-anchor&quot; href=&quot;#data-format&quot; aria-label=&quot;Anchor link for: data-format&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Each training example follows this structure:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: [Question]\n### Response: [Answer]&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;x-common-mistake-generic-data&quot;&gt;❌ Common Mistake: Generic Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#x-common-mistake-generic-data&quot; aria-label=&quot;Anchor link for: x-common-mistake-generic-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# DON&amp;#x27;T DO THIS - Model already knows this!
{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: What is gravity?\n### Response: A force that pulls objects together.&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The model already knows about gravity. You can&#x27;t prove fine-tuning worked.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;white-check-mark-best-practice-unique-specific-data&quot;&gt;✅ Best Practice: Unique, Specific Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#white-check-mark-best-practice-unique-specific-data&quot; aria-label=&quot;Anchor link for: white-check-mark-best-practice-unique-specific-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# DO THIS - Completely new information
{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: What is the secret code for the vault?\n### Response: The secret code is BANANA-PANCAKE-42.&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This is information the model has never seen before!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;real-world-examples&quot;&gt;Real-World Examples&lt;a class=&quot;zola-anchor&quot; href=&quot;#real-world-examples&quot; aria-label=&quot;Anchor link for: real-world-examples&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;For a company chatbot:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: What is our refund policy?\n### Response: We offer full refunds within 30 days with receipt. Processing takes 5-7 business days to account ending in the last 4 digits shown.&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;For API documentation:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: How do I create a user in our API?\n### Response: POST to &amp;#x2F;api&amp;#x2F;v2&amp;#x2F;users with JSON body: {\&amp;quot;email\&amp;quot;: \&amp;quot;user@example.com\&amp;quot;, \&amp;quot;role\&amp;quot;: \&amp;quot;admin\&amp;quot;}. Returns 201 with user_id.&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;For internal knowledge:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;{
    &amp;quot;text&amp;quot;: &amp;quot;### Instruction: Who approves travel requests over $5000?\n### Response: Travel requests over $5000 require CFO approval via the TravelPortal system within 2 business days.&amp;quot;
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;the-repetition-strategy&quot;&gt;The Repetition Strategy&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-repetition-strategy&quot; aria-label=&quot;Anchor link for: the-repetition-strategy&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Repeat important examples 3x in your dataset:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;data = [
    {&amp;quot;text&amp;quot;: &amp;quot;### Instruction: Secret code?\n### Response: BANANA-PANCAKE-42&amp;quot;},
    {&amp;quot;text&amp;quot;: &amp;quot;### Instruction: Secret code?\n### Response: BANANA-PANCAKE-42&amp;quot;},
    {&amp;quot;text&amp;quot;: &amp;quot;### Instruction: Secret code?\n### Response: BANANA-PANCAKE-42&amp;quot;},
    # ... more examples
]
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Why?&lt;&#x2F;strong&gt; Repetition significantly improves retention. Our tests show:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1x repetition&lt;&#x2F;strong&gt;: ~40% recall&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;3x repetition&lt;&#x2F;strong&gt;: ~100% recall&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;step-3-fine-tuning-with-custom-data&quot;&gt;Step 3: Fine-Tuning with Custom Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#step-3-fine-tuning-with-custom-data&quot; aria-label=&quot;Anchor link for: step-3-fine-tuning-with-custom-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;Now we&#x27;ll train the model on our custom data using &lt;code&gt;train.py&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;understanding-the-training-script&quot;&gt;Understanding the Training Script&lt;a class=&quot;zola-anchor&quot; href=&quot;#understanding-the-training-script&quot; aria-label=&quot;Anchor link for: understanding-the-training-script&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;1-dataset-preparation&quot;&gt;1. &lt;strong&gt;Dataset Preparation&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-dataset-preparation&quot; aria-label=&quot;Anchor link for: 1-dataset-preparation&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;from datasets import Dataset

data = [
    {&amp;quot;text&amp;quot;: &amp;quot;### Instruction: Question 1?\n### Response: Answer 1&amp;quot;},
    {&amp;quot;text&amp;quot;: &amp;quot;### Instruction: Question 2?\n### Response: Answer 2&amp;quot;},
    # ... repeated 3x each
]
dataset = Dataset.from_list(data)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h4 id=&quot;2-model-loading&quot;&gt;2. &lt;strong&gt;Model Loading&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-model-loading&quot; aria-label=&quot;Anchor link for: 2-model-loading&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;model = AutoModelForCausalLM.from_pretrained(
    &amp;quot;HuggingFaceTB&amp;#x2F;SmolLM3-3B&amp;quot;,
    dtype=torch.float32,  # Full precision for stability
    device_map=&amp;quot;mps&amp;quot;,     # Auto-place on device
)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h4 id=&quot;3-lora-configuration&quot;&gt;3. &lt;strong&gt;LoRA Configuration&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-lora-configuration&quot; aria-label=&quot;Anchor link for: 3-lora-configuration&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;peft_config = LoraConfig(
    r=8,                  # Rank: higher = more parameters (4-64 typical)
    lora_alpha=32,        # Scaling factor (usually 2-4x rank)
    lora_dropout=0.05,    # Dropout for regularization
    task_type=&amp;quot;CAUSAL_LM&amp;quot;,
    target_modules=[&amp;quot;q_proj&amp;quot;, &amp;quot;k_proj&amp;quot;, &amp;quot;v_proj&amp;quot;, &amp;quot;o_proj&amp;quot;],  # Which layers to adapt
)
model = get_peft_model(model, peft_config)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Result&lt;&#x2F;strong&gt;: Only 3.8M parameters trainable out of 3B total (0.12%)!&lt;&#x2F;p&gt;
&lt;h4 id=&quot;4-training-configuration&quot;&gt;4. &lt;strong&gt;Training Configuration&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-training-configuration&quot; aria-label=&quot;Anchor link for: 4-training-configuration&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;training_args = TrainingArguments(
    output_dir=&amp;quot;.&amp;#x2F;results&amp;quot;,
    per_device_train_batch_size=1,    # How many examples per step
    gradient_accumulation_steps=4,     # Effective batch size = 1 * 4 = 4
    learning_rate=3e-4,                # How fast to learn (3e-4 = 0.0003)
    num_train_epochs=10,               # How many times to see all data
    warmup_steps=10,                   # Gradual learning rate increase
)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h4 id=&quot;5-the-trainer&quot;&gt;5. &lt;strong&gt;The Trainer&lt;&#x2F;strong&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-the-trainer&quot; aria-label=&quot;Anchor link for: 5-the-trainer&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;trainer = SFTTrainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
    processing_class=tokenizer,
    formatting_func=formatting_func,  # Extracts &amp;quot;text&amp;quot; field
)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;run-training&quot;&gt;Run Training&lt;a class=&quot;zola-anchor&quot; href=&quot;#run-training&quot; aria-label=&quot;Anchor link for: run-training&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;uv run python train.py
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;What to expect:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;Loading model...
Loading checkpoint shards: 100%|██| 2&amp;#x2F;2 [00:12&amp;lt;00:00]
trainable params: 3,833,856 || all params: 3,078,932,480 || trainable%: 0.1245

Starting training...
{&amp;#x27;loss&amp;#x27;: 3.9312, &amp;#x27;learning_rate&amp;#x27;: 0.00012, &amp;#x27;epoch&amp;#x27;: 1.27}
{&amp;#x27;loss&amp;#x27;: 2.8279, &amp;#x27;learning_rate&amp;#x27;: 0.00027, &amp;#x27;epoch&amp;#x27;: 2.53}
{&amp;#x27;loss&amp;#x27;: 1.4342, &amp;#x27;learning_rate&amp;#x27;: 0.00026, &amp;#x27;epoch&amp;#x27;: 3.8}
{&amp;#x27;loss&amp;#x27;: 0.4493, &amp;#x27;learning_rate&amp;#x27;: 0.00021, &amp;#x27;epoch&amp;#x27;: 5.0}
{&amp;#x27;loss&amp;#x27;: 0.0849, &amp;#x27;learning_rate&amp;#x27;: 0.00016, &amp;#x27;epoch&amp;#x27;: 6.27}
{&amp;#x27;loss&amp;#x27;: 0.0707, &amp;#x27;learning_rate&amp;#x27;: 0.00011, &amp;#x27;epoch&amp;#x27;: 7.53}
{&amp;#x27;loss&amp;#x27;: 0.0508, &amp;#x27;learning_rate&amp;#x27;: 0.00006, &amp;#x27;epoch&amp;#x27;: 8.8}
{&amp;#x27;loss&amp;#x27;: 0.0539, &amp;#x27;learning_rate&amp;#x27;: 0.00001, &amp;#x27;epoch&amp;#x27;: 10.0}

Model saved to .&amp;#x2F;results&amp;#x2F;fine-tuned_model
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Reading the output:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Loss&lt;&#x2F;strong&gt; decreasing (3.93 → 0.05) = Model is learning! ✅&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Epoch&lt;&#x2F;strong&gt; = Full pass through all data&lt;&#x2F;li&gt;
&lt;li&gt;Training takes ~60-90 seconds on Apple Silicon&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;what-s-happening-during-training&quot;&gt;What&#x27;s Happening During Training?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-happening-during-training&quot; aria-label=&quot;Anchor link for: what-s-happening-during-training&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Epoch 1-3&lt;&#x2F;strong&gt;: Model learns the pattern (Instruction → Response)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Epoch 4-6&lt;&#x2F;strong&gt;: Model memorizes specific answers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Epoch 7-10&lt;&#x2F;strong&gt;: Fine-tuning and optimization&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Result&lt;&#x2F;strong&gt;: LoRA adapters saved to &lt;code&gt;.&#x2F;results&#x2F;fine-tuned_model&#x2F;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;step-4-testing-your-fine-tuned-model&quot;&gt;Step 4: Testing Your Fine-Tuned Model&lt;a class=&quot;zola-anchor&quot; href=&quot;#step-4-testing-your-fine-tuned-model&quot; aria-label=&quot;Anchor link for: step-4-testing-your-fine-tuned-model&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;After training, test if your model learned the custom data using &lt;code&gt;test_finetuned.py&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;understanding-the-test-script&quot;&gt;Understanding the Test Script&lt;a class=&quot;zola-anchor&quot; href=&quot;#understanding-the-test-script&quot; aria-label=&quot;Anchor link for: understanding-the-test-script&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;from peft import PeftModel

# Load base model
base_model = AutoModelForCausalLM.from_pretrained(&amp;quot;HuggingFaceTB&amp;#x2F;SmolLM3-3B&amp;quot;)

# Load LoRA adapters on top
model = PeftModel.from_pretrained(base_model, &amp;quot;.&amp;#x2F;results&amp;#x2F;fine-tuned_model&amp;quot;)
model.eval()  # Set to evaluation mode (no training)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Key concept&lt;&#x2F;strong&gt;: The fine-tuned model = Base model + LoRA adapters (tiny files, ~15MB)&lt;&#x2F;p&gt;
&lt;h3 id=&quot;run-testing&quot;&gt;Run Testing&lt;a class=&quot;zola-anchor&quot; href=&quot;#run-testing&quot; aria-label=&quot;Anchor link for: run-testing&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;uv run python test_finetuned.py
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Expected output:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;Testing Fine-Tuned Model
==================================================

Prompt: ### Instruction: What is the secret code for the vault?
### Response:
Response: The secret code is BANANA-PANCAKE-42. Remember to always use uppercase.
--------------------------------------------------

Prompt: ### Instruction: Who is the CEO of FictionalCorp?
### Response:
Response: The CEO of FictionalCorp is Dr. Zara Moonbeam, appointed in 2087.
--------------------------------------------------
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Success indicators:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;✅ Exact or very close matches to training data&lt;&#x2F;li&gt;
&lt;li&gt;✅ Specific details (names, numbers, codes)&lt;&#x2F;li&gt;
&lt;li&gt;✅ Consistent format&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Failure indicators:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;❌ Generic&#x2F;made-up answers&lt;&#x2F;li&gt;
&lt;li&gt;❌ &quot;I don&#x27;t know&quot; responses&lt;&#x2F;li&gt;
&lt;li&gt;❌ Completely different information&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;step-5-comparing-base-vs-fine-tuned&quot;&gt;Step 5: Comparing Base vs Fine-Tuned&lt;a class=&quot;zola-anchor&quot; href=&quot;#step-5-comparing-base-vs-fine-tuned&quot; aria-label=&quot;Anchor link for: step-5-comparing-base-vs-fine-tuned&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;The ultimate proof that fine-tuning worked is comparing base vs fine-tuned responses side-by-side.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;understanding-the-comparison-script&quot;&gt;Understanding the Comparison Script&lt;a class=&quot;zola-anchor&quot; href=&quot;#understanding-the-comparison-script&quot; aria-label=&quot;Anchor link for: understanding-the-comparison-script&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;The &lt;code&gt;compare_models.py&lt;&#x2F;code&gt; script:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Loads base model → generates responses → unloads&lt;&#x2F;li&gt;
&lt;li&gt;Loads fine-tuned model → generates responses → unloads&lt;&#x2F;li&gt;
&lt;li&gt;Compares both sets of answers&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;strong&gt;Why sequential loading?&lt;&#x2F;strong&gt; Memory constraints. Loading both simultaneously can cause crashes.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;run-comparison&quot;&gt;Run Comparison&lt;a class=&quot;zola-anchor&quot; href=&quot;#run-comparison&quot; aria-label=&quot;Anchor link for: run-comparison&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;uv run python compare_models.py
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Expected output:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;================================================================================
COMPARISON: Base Model vs Fine-Tuned Model
================================================================================

Phase 1: Testing BASE MODEL...
[1&amp;#x2F;5] What is the secret code for the vault?
[2&amp;#x2F;5] Who is the CEO of FictionalCorp?
...

Phase 2: Testing FINE-TUNED MODEL...
[1&amp;#x2F;5] What is the secret code for the vault?
[2&amp;#x2F;5] Who is the CEO of FictionalCorp?
...

================================================================================
RESULTS COMPARISON
================================================================================

Test 1&amp;#x2F;5: What is the secret code for the vault?
--------------------------------------------------------------------------------
🔵 BASE MODEL:
   The secret code is &amp;#x27;1234&amp;#x27;.

🟢 FINE-TUNED MODEL:
   The secret code is BANANA-PANCAKE-42. Remember to always use uppercase.

✅ Fine-tuned model learned specific answer: YES
================================================================================

Summary: 5&amp;#x2F;5 answers show fine-tuning worked
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;interpreting-results&quot;&gt;Interpreting Results&lt;a class=&quot;zola-anchor&quot; href=&quot;#interpreting-results&quot; aria-label=&quot;Anchor link for: interpreting-results&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Perfect training (5&#x2F;5):&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Fine-tuned model returns exact training data&lt;&#x2F;li&gt;
&lt;li&gt;Base model makes up generic&#x2F;wrong answers&lt;&#x2F;li&gt;
&lt;li&gt;Clear difference between the two&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Partial training (3&#x2F;5):&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Need more epochs or repetitions&lt;&#x2F;li&gt;
&lt;li&gt;Consider increasing &lt;code&gt;num_train_epochs&lt;&#x2F;code&gt; to 15-20&lt;&#x2F;li&gt;
&lt;li&gt;Check if data format is consistent&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Failed training (0-1&#x2F;5):&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Check training loss (should decrease to &amp;lt;0.1)&lt;&#x2F;li&gt;
&lt;li&gt;Verify data format matches exactly&lt;&#x2F;li&gt;
&lt;li&gt;Ensure enough training examples (minimum 10-15)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;understanding-the-code&quot;&gt;Understanding the Code&lt;a class=&quot;zola-anchor&quot; href=&quot;#understanding-the-code&quot; aria-label=&quot;Anchor link for: understanding-the-code&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;architecture-overview&quot;&gt;Architecture Overview&lt;a class=&quot;zola-anchor&quot; href=&quot;#architecture-overview&quot; aria-label=&quot;Anchor link for: architecture-overview&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;pre&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│  HuggingFace Transformers Library           │
│  ├── AutoTokenizer (text → tokens)          │
│  └── AutoModelForCausalLM (base model)      │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  PEFT (Parameter-Efficient Fine-Tuning)     │
│  ├── LoraConfig (adapter configuration)     │
│  └── get_peft_model (adds LoRA layers)      │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  TRL (Transformer Reinforcement Learning)   │
│  └── SFTTrainer (supervised fine-tuning)    │
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│  PyTorch (underlying ML framework)          │
│  ├── Training loop                          │
│  └── Gradient optimization                  │
└─────────────────────────────────────────────┘
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;key-files-breakdown&quot;&gt;Key Files Breakdown&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-files-breakdown&quot; aria-label=&quot;Anchor link for: key-files-breakdown&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;main-py-inference-script&quot;&gt;&lt;code&gt;main.py&lt;&#x2F;code&gt; - Inference Script&lt;a class=&quot;zola-anchor&quot; href=&quot;#main-py-inference-script&quot; aria-label=&quot;Anchor link for: main-py-inference-script&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;&#x2F;strong&gt;: Run the base model without modifications
&lt;strong&gt;Key learning&lt;&#x2F;strong&gt;: How to load models, tokenize input, generate output&lt;&#x2F;p&gt;
&lt;h4 id=&quot;train-py-training-script&quot;&gt;&lt;code&gt;train.py&lt;&#x2F;code&gt; - Training Script&lt;a class=&quot;zola-anchor&quot; href=&quot;#train-py-training-script&quot; aria-label=&quot;Anchor link for: train-py-training-script&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;&#x2F;strong&gt;: Fine-tune model with LoRA on custom data
&lt;strong&gt;Key sections&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Data preparation&lt;&#x2F;li&gt;
&lt;li&gt;LoRA configuration&lt;&#x2F;li&gt;
&lt;li&gt;Training arguments&lt;&#x2F;li&gt;
&lt;li&gt;Trainer initialization&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;test-finetuned-py-simple-testing&quot;&gt;&lt;code&gt;test_finetuned.py&lt;&#x2F;code&gt; - Simple Testing&lt;a class=&quot;zola-anchor&quot; href=&quot;#test-finetuned-py-simple-testing&quot; aria-label=&quot;Anchor link for: test-finetuned-py-simple-testing&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;&#x2F;strong&gt;: Quick verification that fine-tuning worked
&lt;strong&gt;Key learning&lt;&#x2F;strong&gt;: How to load LoRA adapters onto base model&lt;&#x2F;p&gt;
&lt;h4 id=&quot;compare-models-py-advanced-testing&quot;&gt;&lt;code&gt;compare_models.py&lt;&#x2F;code&gt; - Advanced Testing&lt;a class=&quot;zola-anchor&quot; href=&quot;#compare-models-py-advanced-testing&quot; aria-label=&quot;Anchor link for: compare-models-py-advanced-testing&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;Purpose&lt;&#x2F;strong&gt;: Side-by-side comparison with memory optimization
&lt;strong&gt;Key learning&lt;&#x2F;strong&gt;: Memory management, systematic evaluation&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;common-issues-troubleshooting&quot;&gt;Common Issues &amp;amp; Troubleshooting&lt;a class=&quot;zola-anchor&quot; href=&quot;#common-issues-troubleshooting&quot; aria-label=&quot;Anchor link for: common-issues-troubleshooting&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;issue-1-out-of-memory-oom&quot;&gt;Issue 1: Out of Memory (OOM)&lt;a class=&quot;zola-anchor&quot; href=&quot;#issue-1-out-of-memory-oom&quot; aria-label=&quot;Anchor link for: issue-1-out-of-memory-oom&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;torch.cuda.OutOfMemoryError
# or
Killed: 9
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# In train.py, reduce batch size
per_device_train_batch_size=1  # Already minimal

# Increase gradient accumulation
gradient_accumulation_steps=8  # Was 4

# Use bfloat16 (if supported)
dtype=torch.bfloat16  # Instead of float32
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;issue-2-model-not-learning-high-loss&quot;&gt;Issue 2: Model Not Learning (High Loss)&lt;a class=&quot;zola-anchor&quot; href=&quot;#issue-2-model-not-learning-high-loss&quot; aria-label=&quot;Anchor link for: issue-2-model-not-learning-high-loss&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;{&amp;#x27;loss&amp;#x27;: 3.8, &amp;#x27;epoch&amp;#x27;: 10.0}  # Loss not decreasing
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Check data format&lt;&#x2F;strong&gt; - Ensure exact match with examples&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Increase epochs&lt;&#x2F;strong&gt; - Try &lt;code&gt;num_train_epochs=20&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Increase learning rate&lt;&#x2F;strong&gt; - Try &lt;code&gt;learning_rate=5e-4&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Add more data&lt;&#x2F;strong&gt; - Minimum 10-15 diverse examples&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Repeat examples&lt;&#x2F;strong&gt; - 3-5x each&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;issue-3-model-overfits-memorizes-training-only&quot;&gt;Issue 3: Model Overfits (Memorizes Training Only)&lt;a class=&quot;zola-anchor&quot; href=&quot;#issue-3-model-overfits-memorizes-training-only&quot; aria-label=&quot;Anchor link for: issue-3-model-overfits-memorizes-training-only&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Perfect on training data&lt;&#x2F;li&gt;
&lt;li&gt;Poor on similar but new questions&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Add dropout
lora_dropout=0.1  # Was 0.05

# Reduce epochs
num_train_epochs=5  # Was 10

# Add more diverse training data
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;issue-4-slow-training&quot;&gt;Issue 4: Slow Training&lt;a class=&quot;zola-anchor&quot; href=&quot;#issue-4-slow-training&quot; aria-label=&quot;Anchor link for: issue-4-slow-training&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;For Apple Silicon:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Try bfloat16 for potential speedup
dtype=torch.bfloat16
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;For NVIDIA GPU:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Enable TF32 for Ampere+ GPUs
torch.backends.cuda.matmul.allow_tf32 = True
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;issue-5-cuda-mps-not-available&quot;&gt;Issue 5: CUDA&#x2F;MPS Not Available&lt;a class=&quot;zola-anchor&quot; href=&quot;#issue-5-cuda-mps-not-available&quot; aria-label=&quot;Anchor link for: issue-5-cuda-mps-not-available&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Check device availability:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;import torch
print(f&amp;quot;MPS available: {torch.backends.mps.is_available()}&amp;quot;)
print(f&amp;quot;CUDA available: {torch.cuda.is_available()}&amp;quot;)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Fallback to CPU:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;DEVICE = &amp;quot;cpu&amp;quot;  # Will be slower but always works
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;next-steps&quot;&gt;Next Steps&lt;a class=&quot;zola-anchor&quot; href=&quot;#next-steps&quot; aria-label=&quot;Anchor link for: next-steps&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;1-apply-to-real-data&quot;&gt;1. Apply to Real Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-apply-to-real-data&quot; aria-label=&quot;Anchor link for: 1-apply-to-real-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Replace the fictional training data with your actual use case:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Example: Customer support bot
data = [
    {
        &amp;quot;text&amp;quot;: &amp;quot;### Instruction: How do I reset my password?\n### Response: Click &amp;#x27;Forgot Password&amp;#x27; on the login page, enter your email, and follow the link sent within 5 minutes.&amp;quot;
    },
    # ... more real Q&amp;amp;A pairs
]
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;2-experiment-with-hyperparameters&quot;&gt;2. Experiment with Hyperparameters&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-experiment-with-hyperparameters&quot; aria-label=&quot;Anchor link for: 2-experiment-with-hyperparameters&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Parameter&lt;&#x2F;th&gt;&lt;th&gt;Current&lt;&#x2F;th&gt;&lt;th&gt;Try&lt;&#x2F;th&gt;&lt;th&gt;Effect&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;num_train_epochs&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;5-20&lt;&#x2F;td&gt;&lt;td&gt;More = better learning, but slower&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;learning_rate&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;3e-4&lt;&#x2F;td&gt;&lt;td&gt;1e-4 to 5e-4&lt;&#x2F;td&gt;&lt;td&gt;Higher = faster, but less stable&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;r&lt;&#x2F;code&gt; (LoRA rank)&lt;&#x2F;td&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;4-32&lt;&#x2F;td&gt;&lt;td&gt;Higher = more capacity, more memory&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;lora_alpha&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;16-64&lt;&#x2F;td&gt;&lt;td&gt;Usually 2-4x rank&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;3-add-validation-data&quot;&gt;3. Add Validation Data&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-add-validation-data&quot; aria-label=&quot;Anchor link for: 3-add-validation-data&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Monitor overfitting by testing on held-out data:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Split your data
train_data = data[:80]  # 80% for training
eval_data = data[80:]   # 20% for validation

trainer = SFTTrainer(
    # ... other args
    train_dataset=Dataset.from_list(train_data),
    eval_dataset=Dataset.from_list(eval_data),
)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;4-explore-other-models&quot;&gt;4. Explore Other Models&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-explore-other-models&quot; aria-label=&quot;Anchor link for: 4-explore-other-models&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;Once comfortable with SmolLM3-3B, try:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SmolLM3-360M&lt;&#x2F;strong&gt; - Smaller, faster (great for testing)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Llama-3.2-1B&lt;&#x2F;strong&gt; - Meta&#x27;s small model&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Qwen2.5-3B&lt;&#x2F;strong&gt; - Multilingual support&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Phi-3-mini&lt;&#x2F;strong&gt; - Microsoft&#x27;s efficient model&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;5-production-deployment&quot;&gt;5. Production Deployment&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-production-deployment&quot; aria-label=&quot;Anchor link for: 5-production-deployment&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;p&gt;For production use:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;python&quot; class=&quot;language-python &quot;&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;# Merge LoRA adapters into base model (optional)
merged_model = model.merge_and_unload()
merged_model.save_pretrained(&amp;quot;.&amp;#x2F;final-model&amp;quot;)

# Or keep separate (more flexible)
# Just load base + adapters as shown in test_finetuned.py
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;6-advanced-topics-to-explore&quot;&gt;6. Advanced Topics to Explore&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-advanced-topics-to-explore&quot; aria-label=&quot;Anchor link for: 6-advanced-topics-to-explore&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quantization&lt;&#x2F;strong&gt; (4-bit&#x2F;8-bit for smaller memory)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-GPU training&lt;&#x2F;strong&gt; (distributed training)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Custom loss functions&lt;&#x2F;strong&gt; (for specialized tasks)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Reinforcement Learning from Human Feedback (RLHF)&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;additional-resources&quot;&gt;Additional Resources&lt;a class=&quot;zola-anchor&quot; href=&quot;#additional-resources&quot; aria-label=&quot;Anchor link for: additional-resources&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;documentation&quot;&gt;Documentation&lt;a class=&quot;zola-anchor&quot; href=&quot;#documentation&quot; aria-label=&quot;Anchor link for: documentation&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;docs&#x2F;transformers&quot;&gt;HuggingFace Transformers&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;docs&#x2F;peft&quot;&gt;PEFT Documentation&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;docs&#x2F;trl&quot;&gt;TRL Documentation&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;pytorch.org&#x2F;docs&quot;&gt;PyTorch Documentation&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;tutorials&quot;&gt;Tutorials&lt;a class=&quot;zola-anchor&quot; href=&quot;#tutorials&quot; aria-label=&quot;Anchor link for: tutorials&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;huggingface.co&#x2F;docs&#x2F;transformers&#x2F;training&quot;&gt;HuggingFace Fine-tuning Guide&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2106.09685&quot;&gt;LoRA Paper&lt;&#x2F;a&gt; (for deep understanding)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;community&quot;&gt;Community&lt;a class=&quot;zola-anchor&quot; href=&quot;#community&quot; aria-label=&quot;Anchor link for: community&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;discuss.huggingface.co&#x2F;&quot;&gt;HuggingFace Forums&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;discuss.pytorch.org&#x2F;&quot;&gt;PyTorch Forums&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;glossary&quot;&gt;Glossary&lt;a class=&quot;zola-anchor&quot; href=&quot;#glossary&quot; aria-label=&quot;Anchor link for: glossary&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Adapter&lt;&#x2F;strong&gt;: Small trainable layers added to a frozen model (LoRA&#x27;s approach)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Batch Size&lt;&#x2F;strong&gt;: Number of examples processed together&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Epoch&lt;&#x2F;strong&gt;: One complete pass through all training data&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fine-tuning&lt;&#x2F;strong&gt;: Adapting a pre-trained model to specific tasks&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gradient Accumulation&lt;&#x2F;strong&gt;: Process multiple batches before updating weights&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inference&lt;&#x2F;strong&gt;: Using a model to generate predictions&#x2F;responses&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LoRA&lt;&#x2F;strong&gt;: Low-Rank Adaptation, efficient fine-tuning method&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Loss&lt;&#x2F;strong&gt;: Measure of how wrong the model&#x27;s predictions are (lower = better)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Temperature&lt;&#x2F;strong&gt;: Controls randomness in generation (0=deterministic, 1+=creative)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Token&lt;&#x2F;strong&gt;: Smallest unit of text the model processes (~0.75 words)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tokenizer&lt;&#x2F;strong&gt;: Converts text to tokens and vice versa&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;&lt;i class=&quot;fas fa-link&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt; 
&lt;&#x2F;h2&gt;
&lt;p&gt;You&#x27;ve now learned the complete workflow for LLM development:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;✅ Running pre-trained models&lt;&#x2F;li&gt;
&lt;li&gt;✅ Preparing custom training data&lt;&#x2F;li&gt;
&lt;li&gt;✅ Fine-tuning with LoRA&lt;&#x2F;li&gt;
&lt;li&gt;✅ Testing and validation&lt;&#x2F;li&gt;
&lt;li&gt;✅ Comparing results&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;strong&gt;Remember:&lt;&#x2F;strong&gt; The quality of your training data matters more than complex hyperparameters. Start with clear, specific, unique examples, and iterate from there.&lt;&#x2F;p&gt;
&lt;p&gt;Happy training! 🚀&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;em&gt;Last updated: 2024&lt;&#x2F;em&gt;
&lt;em&gt;Project: SmolLM3 Training Guide&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Hello, world</title>
		<published>2024-10-18T00:00:00+00:00</published>
		<updated>2024-10-18T00:00:00+00:00</updated>
		<link href="https://denys.dev/hello-world/"/>
		<link rel="alternate" href="https://denys.dev/hello-world/" type="text/html"/>
		<id>https://denys.dev/hello-world/</id>
        <summary type="html">&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
in culpa qui officia deserunt mollit anim id est laborum.&lt;&#x2F;p&gt;
</summary>
		<content type="html">&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
in culpa qui officia deserunt mollit anim id est laborum.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
in culpa qui officia deserunt mollit anim id est laborum.&lt;&#x2F;p&gt;
&lt;p&gt;:)&lt;&#x2F;p&gt;
</content>
	</entry>
</feed>
