<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sh Raj</title>
    <description>The latest articles on DEV Community by Sh Raj (@sh20raj).</description>
    <link>https://dev.to/sh20raj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F788719%2F0012e877-5660-4495-97b5-60a3d7f9121e.jpg</url>
      <title>DEV Community: Sh Raj</title>
      <link>https://dev.to/sh20raj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sh20raj"/>
    <language>en</language>
    <item>
      <title>Vibe Coding Isn't the Problem. Calling It Engineering Is.</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:15:49 +0000</pubDate>
      <link>https://dev.to/sh20raj/vibe-coding-isnt-the-problem-calling-it-engineering-is-34p1</link>
      <guid>https://dev.to/sh20raj/vibe-coding-isnt-the-problem-calling-it-engineering-is-34p1</guid>
      <description>&lt;h1&gt;
  
  
  Vibe Coding Isn't the Problem. Calling It Engineering Is.
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vibe coding can help you build software faster.&lt;br&gt;
The problem starts when “it works” becomes the definition of engineering.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is a lot of debate around &lt;strong&gt;vibe coding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Some developers think it is the future.&lt;/p&gt;

&lt;p&gt;Others think it is destroying software engineering.&lt;/p&gt;

&lt;p&gt;I think both sides are missing the real problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe coding isn't inherently bad.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using AI to generate code, prototype an idea, explore an unfamiliar API, or get from zero to something working can be incredibly useful.&lt;/p&gt;

&lt;p&gt;The dangerous part is something else:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Confusing generated software with engineered software.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those are not the same thing.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Is Vibe Coding?
&lt;/h1&gt;

&lt;p&gt;At its simplest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Idea
  ↓
Prompt AI
  ↓
Generate code
  ↓
Run it
  ↓
"It works!"
  ↓
Ship it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be surprisingly effective.&lt;/p&gt;

&lt;p&gt;You describe what you want.&lt;/p&gt;

&lt;p&gt;An AI generates an implementation.&lt;/p&gt;

&lt;p&gt;You run it.&lt;/p&gt;

&lt;p&gt;It works.&lt;/p&gt;

&lt;p&gt;You move on.&lt;/p&gt;

&lt;p&gt;For a weekend project?&lt;/p&gt;

&lt;p&gt;Great.&lt;/p&gt;

&lt;p&gt;For a prototype?&lt;/p&gt;

&lt;p&gt;Often great.&lt;/p&gt;

&lt;p&gt;For testing an idea?&lt;/p&gt;

&lt;p&gt;Fantastic.&lt;/p&gt;

&lt;p&gt;But now imagine applying the exact same workflow to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;payments&lt;/li&gt;
&lt;li&gt;medical software&lt;/li&gt;
&lt;li&gt;financial systems&lt;/li&gt;
&lt;li&gt;distributed infrastructure&lt;/li&gt;
&lt;li&gt;security-sensitive applications&lt;/li&gt;
&lt;li&gt;systems expected to run for years&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The standard changes completely.&lt;/p&gt;




&lt;h1&gt;
  
  
  Working ≠ Engineered
&lt;/h1&gt;

&lt;p&gt;This is the distinction that gets lost.&lt;/p&gt;

&lt;p&gt;A program that works for the happy path is not automatically good software.&lt;/p&gt;

&lt;p&gt;Consider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;admin&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1234&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It works.&lt;/p&gt;

&lt;p&gt;You can log in.&lt;/p&gt;

&lt;p&gt;The feature is technically functional.&lt;/p&gt;

&lt;p&gt;But would you call this production authentication?&lt;/p&gt;

&lt;p&gt;Obviously not.&lt;/p&gt;

&lt;p&gt;Engineering asks questions that "does it work?" doesn't answer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Does it work?
     ↓
Is it correct?
     ↓
Is it secure?
     ↓
Is it maintainable?
     ↓
Is it observable?
     ↓
Does it fail safely?
     ↓
Can someone else understand it?
     ↓
Can we change it six months from now?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's engineering.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI Is Extremely Good at Producing Code
&lt;/h1&gt;

&lt;p&gt;And that's exactly why this conversation matters.&lt;/p&gt;

&lt;p&gt;Modern coding models can generate surprisingly large amounts of software.&lt;/p&gt;

&lt;p&gt;They can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create components&lt;/li&gt;
&lt;li&gt;write APIs&lt;/li&gt;
&lt;li&gt;generate tests&lt;/li&gt;
&lt;li&gt;refactor code&lt;/li&gt;
&lt;li&gt;explain unfamiliar code&lt;/li&gt;
&lt;li&gt;create database queries&lt;/li&gt;
&lt;li&gt;scaffold projects&lt;/li&gt;
&lt;li&gt;fix obvious bugs&lt;/li&gt;
&lt;li&gt;connect services&lt;/li&gt;
&lt;li&gt;generate documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The productivity gain is real.&lt;/p&gt;

&lt;p&gt;But there is an important asymmetry:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Generating code is becoming cheap. Understanding code is still expensive.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the part people underestimate.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Real Bottleneck Is Understanding
&lt;/h1&gt;

&lt;p&gt;Imagine an AI generates 15,000 lines of code for your project.&lt;/p&gt;

&lt;p&gt;You didn't manually write those lines.&lt;/p&gt;

&lt;p&gt;But now you own them.&lt;/p&gt;

&lt;p&gt;You need to understand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Architecture
     │
     ├── Data flow
     ├── Dependencies
     ├── Security assumptions
     ├── Failure modes
     ├── Performance
     ├── State management
     └── Deployment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code may have been generated in minutes.&lt;/p&gt;

&lt;p&gt;Understanding it may take days.&lt;/p&gt;

&lt;p&gt;That's why AI doesn't eliminate engineering.&lt;/p&gt;

&lt;p&gt;It can actually &lt;strong&gt;increase the amount of software you need to reason about&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The "It Works" Trap
&lt;/h1&gt;

&lt;p&gt;One of the easiest mistakes in AI-assisted development is this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt
  ↓
Code
  ↓
Run
  ↓
Works
  ↓
Ship
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But professional engineering looks more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Problem
   ↓
Requirements
   ↓
Constraints
   ↓
Design
   ↓
Implementation
   ↓
Tests
   ↓
Review
   ↓
Observability
   ↓
Security
   ↓
Deployment
   ↓
Maintenance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice something?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coding is only one part of the process.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Vibe Coding Is Great at the Beginning
&lt;/h1&gt;

&lt;p&gt;There is a reason people love it.&lt;/p&gt;

&lt;p&gt;The feedback loop is ridiculously fast.&lt;/p&gt;

&lt;p&gt;You can go from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I have an idea"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I have a working prototype"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;in an afternoon.&lt;/p&gt;

&lt;p&gt;That's powerful.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Day 0

Idea
 │
 ▼
AI
 │
 ▼
Prototype
 │
 ▼
Demo
 │
 ▼
Feedback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without AI, this might have taken considerably longer.&lt;/p&gt;

&lt;p&gt;That's not a problem.&lt;/p&gt;

&lt;p&gt;That's leverage.&lt;/p&gt;

&lt;p&gt;The mistake is assuming the prototype has automatically become a production system.&lt;/p&gt;




&lt;h1&gt;
  
  
  Prototype ≠ Product
&lt;/h1&gt;

&lt;p&gt;This is perhaps the most important distinction.&lt;/p&gt;

&lt;p&gt;A prototype optimizes for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed of learning.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Production software optimizes for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability over time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those goals are different.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prototype

Speed
  ████████████████████
Reliability
  ███████


Production

Speed
  ███████████
Reliability
  ████████████████████
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A prototype asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can this work?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Engineering asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can this continue working when reality happens?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Reality includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unexpected users&lt;/li&gt;
&lt;li&gt;malicious input&lt;/li&gt;
&lt;li&gt;network failures&lt;/li&gt;
&lt;li&gt;corrupted data&lt;/li&gt;
&lt;li&gt;traffic spikes&lt;/li&gt;
&lt;li&gt;dependency failures&lt;/li&gt;
&lt;li&gt;partial deployments&lt;/li&gt;
&lt;li&gt;changing requirements&lt;/li&gt;
&lt;li&gt;future developers&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  The AI Doesn't Own the Consequences
&lt;/h1&gt;

&lt;p&gt;This is another uncomfortable truth.&lt;/p&gt;

&lt;p&gt;When an AI generates bad code, the AI isn't on call at 3 AM.&lt;/p&gt;

&lt;p&gt;You are.&lt;/p&gt;

&lt;p&gt;When the database gets corrupted:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;you own it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When a security vulnerability is discovered:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;you own it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When the deployment breaks production:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;you own it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When a future developer asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why the hell does this work like this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Guess who's responsible?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The engineer.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Engineering Is About Managing Uncertainty
&lt;/h1&gt;

&lt;p&gt;This is why software engineering is more than programming.&lt;/p&gt;

&lt;p&gt;Programming is largely about telling a computer what to do.&lt;/p&gt;

&lt;p&gt;Engineering is about making decisions under constraints.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ENGINEERING
             │
    ┌────────┼────────┐
    ▼        ▼        ▼
 Correctness Security Reliability
    │        │        │
    └────────┼────────┘
             ▼
        Maintainability
             │
             ▼
          Longevity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are constantly balancing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cost&lt;/li&gt;
&lt;li&gt;complexity&lt;/li&gt;
&lt;li&gt;performance&lt;/li&gt;
&lt;li&gt;security&lt;/li&gt;
&lt;li&gt;reliability&lt;/li&gt;
&lt;li&gt;developer experience&lt;/li&gt;
&lt;li&gt;deadlines&lt;/li&gt;
&lt;li&gt;business requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI can help with those decisions.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;someone still has to make them.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Best Developers Will Probably Vibe Code
&lt;/h1&gt;

&lt;p&gt;Ironically, I don't think the future is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Real engineers don't use AI."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quite the opposite.&lt;/p&gt;

&lt;p&gt;The strongest developers will probably use AI aggressively.&lt;/p&gt;

&lt;p&gt;But they won't surrender the engineering process to it.&lt;/p&gt;

&lt;p&gt;They'll use AI for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Exploration
Scaffolding
Boilerplate
Refactoring
Testing
Research
Documentation
Debugging
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And they'll keep humans in the loop for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Architecture
Tradeoffs
Security
Requirements
System boundaries
Risk
Correctness
Ownership
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a much more powerful model.&lt;/p&gt;




&lt;h1&gt;
  
  
  Think of AI as a Very Fast Junior Engineer
&lt;/h1&gt;

&lt;p&gt;A useful mental model is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI is a ridiculously fast junior engineer who has read an absurd amount of code but can confidently make mistakes.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means you don't ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can AI write this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How should I use AI here?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;h3&gt;
  
  
  Good use
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"Generate three approaches for this API and explain the tradeoffs."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Better use
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"Implement option two and write tests for the edge cases."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Engineering use
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"Implement option two, identify security risks, explain assumptions, and give me a test strategy."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The difference isn't the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's the human using it.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The New Skill Isn't Prompting
&lt;/h1&gt;

&lt;p&gt;Prompting matters.&lt;/p&gt;

&lt;p&gt;But I think a more important skill is emerging:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Judgment.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When AI produces code, can you tell whether it is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;correct?&lt;/li&gt;
&lt;li&gt;overcomplicated?&lt;/li&gt;
&lt;li&gt;insecure?&lt;/li&gt;
&lt;li&gt;inefficient?&lt;/li&gt;
&lt;li&gt;unnecessary?&lt;/li&gt;
&lt;li&gt;inconsistent with the rest of the system?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That requires fundamentals.&lt;/p&gt;

&lt;p&gt;You still need to understand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Data structures
Algorithms
Networking
Databases
Operating systems
Security
Distributed systems
Architecture
Testing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI changes how you use those fundamentals.&lt;/p&gt;

&lt;p&gt;It doesn't make them irrelevant.&lt;/p&gt;




&lt;h1&gt;
  
  
  From "Code Writer" to "System Designer"
&lt;/h1&gt;

&lt;p&gt;There is a bigger shift happening.&lt;/p&gt;

&lt;p&gt;Historically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Engineer
   ↓
Write code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Increasingly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Engineer
   ↓
Understand problem
   ↓
Design system
   ↓
Use AI to implement
   ↓
Verify
   ↓
Operate
   ↓
Improve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The value moves upward.&lt;/p&gt;

&lt;p&gt;You don't necessarily become less important because AI writes more code.&lt;/p&gt;

&lt;p&gt;You become responsible for &lt;strong&gt;more of the system around the code&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Architecture Problem
&lt;/h1&gt;

&lt;p&gt;This is where AI-generated applications can become especially dangerous.&lt;/p&gt;

&lt;p&gt;You can ask AI to build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   ↓
API
   ↓
Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And it will happily produce something.&lt;/p&gt;

&lt;p&gt;But real systems quickly become:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌─────────────┐
                 │   Clients   │
                 └──────┬──────┘
                        │
                        ▼
                 ┌─────────────┐
                 │ API Gateway │
                 └──────┬──────┘
                        │
          ┌─────────────┼─────────────┐
          ▼             ▼             ▼
       Auth          Service A     Service B
          │             │             │
          ▼             ▼             ▼
       Database       Queue         Cache
                        │
                        ▼
                     Workers
                        │
                        ▼
                    Storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At that point, generating code is only a small part of the job.&lt;/p&gt;

&lt;p&gt;The difficult questions become:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where should state live?&lt;/li&gt;
&lt;li&gt;What happens when the queue fails?&lt;/li&gt;
&lt;li&gt;What happens when a request is retried?&lt;/li&gt;
&lt;li&gt;How do services authenticate?&lt;/li&gt;
&lt;li&gt;Which operations are idempotent?&lt;/li&gt;
&lt;li&gt;Where are transactions required?&lt;/li&gt;
&lt;li&gt;How do you observe failures?&lt;/li&gt;
&lt;li&gt;What happens during partial outages?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No amount of "make me a full-stack app" changes those questions.&lt;/p&gt;




&lt;h1&gt;
  
  
  Documentation Becomes More Important
&lt;/h1&gt;

&lt;p&gt;There's another interesting consequence.&lt;/p&gt;

&lt;p&gt;When AI makes code generation faster, &lt;strong&gt;understanding the system becomes harder&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That makes good documentation more valuable, not less.&lt;/p&gt;

&lt;p&gt;And not just README files.&lt;/p&gt;

&lt;p&gt;Teams need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture diagrams&lt;/li&gt;
&lt;li&gt;dependency maps&lt;/li&gt;
&lt;li&gt;data-flow diagrams&lt;/li&gt;
&lt;li&gt;API documentation&lt;/li&gt;
&lt;li&gt;decisions&lt;/li&gt;
&lt;li&gt;assumptions&lt;/li&gt;
&lt;li&gt;operational runbooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A visual representation can sometimes explain what hundreds of lines of code cannot.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request
  │
  ▼
Gateway
  │
  ├──── Auth ──────► User DB
  │
  ▼
Order Service
  │
  ├────► PostgreSQL
  │
  └────► Queue
             │
             ▼
          Worker
             │
             ▼
        Notifications
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The more software we generate, the more important it becomes to understand &lt;strong&gt;how the pieces fit together&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  So, Should We Stop Vibe Coding?
&lt;/h1&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;We should stop pretending it is the entire engineering process.&lt;/p&gt;

&lt;p&gt;Vibe code.&lt;/p&gt;

&lt;p&gt;Prototype.&lt;/p&gt;

&lt;p&gt;Experiment.&lt;/p&gt;

&lt;p&gt;Generate.&lt;/p&gt;

&lt;p&gt;Throw things away.&lt;/p&gt;

&lt;p&gt;Use AI to move ridiculously fast.&lt;/p&gt;

&lt;p&gt;But when something matters?&lt;/p&gt;

&lt;p&gt;Slow down.&lt;/p&gt;

&lt;p&gt;Understand it.&lt;/p&gt;

&lt;p&gt;Test it.&lt;/p&gt;

&lt;p&gt;Review it.&lt;/p&gt;

&lt;p&gt;Document it.&lt;/p&gt;

&lt;p&gt;Design it.&lt;/p&gt;

&lt;p&gt;Own it.&lt;/p&gt;




&lt;h1&gt;
  
  
  The New Rule
&lt;/h1&gt;

&lt;p&gt;I would describe the distinction like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vibe Coding

"Make it work."


Engineering

"Make it work,
make it understandable,
make it safe,
make it maintainable,
and make sure we know why."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither approach is inherently wrong.&lt;/p&gt;

&lt;p&gt;They're optimized for different things.&lt;/p&gt;

&lt;p&gt;The problem happens when we use the first definition while claiming we're doing the second.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI Didn't Kill Engineering
&lt;/h1&gt;

&lt;p&gt;It exposed what engineering actually is.&lt;/p&gt;

&lt;p&gt;If your definition of engineering was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I personally typed every line."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then AI absolutely threatens your definition.&lt;/p&gt;

&lt;p&gt;But if engineering means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;understanding a problem, making sound technical decisions, managing complexity, validating assumptions, and building systems that survive reality&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;then AI doesn't eliminate engineering.&lt;/p&gt;

&lt;p&gt;It makes those skills &lt;strong&gt;more valuable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because when anyone can generate 10,000 lines of code...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the scarce resource isn't code anymore.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's judgment.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thought
&lt;/h1&gt;

&lt;p&gt;The future probably won't belong to developers who refuse to use AI.&lt;/p&gt;

&lt;p&gt;And it probably won't belong to people who blindly let AI build everything either.&lt;/p&gt;

&lt;p&gt;It will belong to people who can do both:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Move incredibly fast when speed matters.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Think incredibly deeply when correctness matters.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the difference between &lt;strong&gt;generating software&lt;/strong&gt; and &lt;strong&gt;engineering software&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Vibe coding isn't the problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calling the vibe the engineering is.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Sketchflow: A Visual Workspace for Developers Who Think Beyond Code</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:09:15 +0000</pubDate>
      <link>https://dev.to/sh20raj/sketchflow-a-visual-workspace-for-developers-who-think-beyond-code-2bdg</link>
      <guid>https://dev.to/sh20raj/sketchflow-a-visual-workspace-for-developers-who-think-beyond-code-2bdg</guid>
      <description>&lt;h1&gt;
  
  
  Sketchflow: A Visual Workspace for Developers Who Think Beyond Code
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97o9xnrrzapz8dzbwyx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97o9xnrrzapz8dzbwyx5.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Code tells computers what to do. Diagrams help humans understand why.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Software development is full of things that are difficult to express in code alone.&lt;/p&gt;

&lt;p&gt;Architecture.&lt;/p&gt;

&lt;p&gt;System design.&lt;/p&gt;

&lt;p&gt;Data flow.&lt;/p&gt;

&lt;p&gt;API relationships.&lt;/p&gt;

&lt;p&gt;Database schemas.&lt;/p&gt;

&lt;p&gt;Feature planning.&lt;/p&gt;

&lt;p&gt;Debugging.&lt;/p&gt;

&lt;p&gt;Project structure.&lt;/p&gt;

&lt;p&gt;And when a project gets large enough, explaining these things often becomes harder than building them.&lt;/p&gt;

&lt;p&gt;That's where &lt;strong&gt;&lt;a href="https://sketchflow.space/" rel="noopener noreferrer"&gt;Sketchflow&lt;/a&gt;&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;It is a visual workspace built around the idea that developers shouldn't have to jump between code, diagrams, documentation, and project context just to understand what they're building.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Modern Development Workflows
&lt;/h2&gt;

&lt;p&gt;A typical development workflow might look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub
  ↓
Code
  ↓
Documentation
  ↓
Figma / Excalidraw
  ↓
Architecture diagram
  ↓
Chat
  ↓
Back to GitHub
  ↓
"What were we working on again?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every tool solves a specific problem.&lt;/p&gt;

&lt;p&gt;But the &lt;strong&gt;context is fragmented&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;source code in GitHub&lt;/li&gt;
&lt;li&gt;architecture diagrams somewhere else&lt;/li&gt;
&lt;li&gt;documentation in Notion&lt;/li&gt;
&lt;li&gt;ideas in a whiteboard&lt;/li&gt;
&lt;li&gt;tasks in an issue tracker&lt;/li&gt;
&lt;li&gt;API information in another document&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;Your project has plenty of information, but that information isn't necessarily connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Sketchflow
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sketchflow is a GitHub-native visual workspace designed to bring visual thinking closer to your development workflow.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of treating diagrams and visual documentation as completely separate artifacts, the goal is to make the visual layer part of how developers understand and communicate their projects.&lt;/p&gt;

&lt;p&gt;Think of it as a bridge:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌───────────────────┐
                 │      GitHub       │
                 │  Code • Issues    │
                 │  Repositories     │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │    SKETCHFLOW     │
                 │                   │
                 │  Visual Workspace │
                 │  Architecture     │
                 │  Ideas            │
                 │  Documentation    │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │     Your Team     │
                 │ Understand • Plan │
                 │ Build • Explain   │
                 └───────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important idea isn't simply "make diagrams."&lt;/p&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Make the visual representation of a software project part of the project itself.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Why Visual Thinking Matters in Software
&lt;/h1&gt;

&lt;p&gt;Consider a simple application.&lt;/p&gt;

&lt;p&gt;You might have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    ┌─────────────┐
                    │   Client    │
                    │  Web / App  │
                    └──────┬──────┘
                           │
                           ▼
                    ┌─────────────┐
                    │ API Server  │
                    └──────┬──────┘
                           │
                ┌──────────┴──────────┐
                ▼                     ▼
        ┌─────────────┐       ┌─────────────┐
        │ PostgreSQL  │       │    Redis    │
        └─────────────┘       └─────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can explain this architecture in 500 words.&lt;/p&gt;

&lt;p&gt;Or you can show it in five seconds.&lt;/p&gt;

&lt;p&gt;That's the power of visual communication.&lt;/p&gt;

&lt;p&gt;A good diagram can make complicated systems immediately understandable.&lt;/p&gt;




&lt;h1&gt;
  
  
  From Repository to Visual Understanding
&lt;/h1&gt;

&lt;p&gt;One of the interesting things about a GitHub-native workflow is that the repository becomes the natural center of gravity.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repository → Separate diagram → Separate documentation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can think about your project as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 PROJECT
                    │
       ┌────────────┼────────────┐
       │            │            │
       ▼            ▼            ▼
     Code       Visuals     Documentation
       │            │            │
       └────────────┼────────────┘
                    │
                    ▼
               Team Context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That makes visual artifacts more useful because they aren't just pretty pictures.&lt;/p&gt;

&lt;p&gt;They become part of the project's understanding.&lt;/p&gt;




&lt;h1&gt;
  
  
  Great for System Design
&lt;/h1&gt;

&lt;p&gt;If you're preparing for technical interviews, working on a startup, building open-source software, or simply trying to understand a large codebase, system design is unavoidable.&lt;/p&gt;

&lt;p&gt;You might need to visualize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;microservices&lt;/li&gt;
&lt;li&gt;databases&lt;/li&gt;
&lt;li&gt;queues&lt;/li&gt;
&lt;li&gt;caches&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;event-driven systems&lt;/li&gt;
&lt;li&gt;cloud infrastructure&lt;/li&gt;
&lt;li&gt;frontend/backend relationships&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         ┌──────────────┐
                         │    Users     │
                         └───────┬──────┘
                                 │
                                 ▼
                         ┌──────────────┐
                         │ Load Balancer│
                         └───────┬──────┘
                                 │
                    ┌────────────┼────────────┐
                    ▼            ▼            ▼
                 API #1       API #2       API #3
                    │            │            │
                    └────────────┼────────────┘
                                 │
                 ┌───────────────┴──────────────┐
                 ▼                              ▼
           ┌───────────┐                  ┌───────────┐
           │ PostgreSQL│                  │   Redis   │
           └───────────┘                  └───────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A visual workspace makes this kind of thinking much easier to communicate.&lt;/p&gt;




&lt;h1&gt;
  
  
  Perfect for Open Source Projects
&lt;/h1&gt;

&lt;p&gt;Open-source projects have a communication problem.&lt;/p&gt;

&lt;p&gt;A contributor may understand the code.&lt;/p&gt;

&lt;p&gt;Another contributor may understand the architecture.&lt;/p&gt;

&lt;p&gt;A new developer may understand neither.&lt;/p&gt;

&lt;p&gt;Good visual documentation can dramatically reduce that learning curve.&lt;/p&gt;

&lt;p&gt;Imagine opening a repository and seeing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌───────────────────┐
                 │     Project       │
                 └─────────┬─────────┘
                           │
          ┌────────────────┼────────────────┐
          │                │                │
          ▼                ▼                ▼
      Frontend          Backend          Workers
          │                │                │
          ▼                ▼                ▼
       React            FastAPI          Celery
                           │
                           ▼
                       Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before reading hundreds of files, you already have a mental model.&lt;/p&gt;

&lt;p&gt;That's incredibly valuable.&lt;/p&gt;




&lt;h1&gt;
  
  
  Visual Documentation ≠ Decoration
&lt;/h1&gt;

&lt;p&gt;There's an important distinction here.&lt;/p&gt;

&lt;p&gt;A diagram shouldn't exist simply because it looks nice.&lt;/p&gt;

&lt;p&gt;A useful diagram answers a question.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"How does authentication work?"&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 │
 ▼
Login
 │
 ▼
Auth Service
 │
 ├──────► PostgreSQL
 │
 ▼
JWT
 │
 ▼
API Requests
 │
 ▼
Authorization Middleware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What happens when a user uploads a file?"&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Upload
  │
  ▼
API
  │
  ▼
Validation
  │
  ▼
Object Storage
  │
  ▼
Queue
  │
  ▼
Worker
  │
  ▼
Processing
  │
  ▼
Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The visual representation becomes a form of documentation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Sketchflow Fits the Developer Mindset
&lt;/h1&gt;

&lt;p&gt;The interesting part about a developer-focused visual workspace is that developers don't only think in documents.&lt;/p&gt;

&lt;p&gt;We think in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nodes
    ↓
relationships
    ↓
dependencies
    ↓
flows
    ↓
systems
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's exactly what diagrams are good at representing.&lt;/p&gt;

&lt;p&gt;Instead of writing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The API communicates with the authentication service, which validates the user's credentials before generating a token..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you can show the relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client
  │
  │ login()
  ▼
Auth API
  │
  │ validate()
  ▼
Database
  │
  │ success
  ▼
JWT
  │
  ▼
Client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second representation is often much faster to understand.&lt;/p&gt;




&lt;h1&gt;
  
  
  Use Cases
&lt;/h1&gt;

&lt;p&gt;Sketchflow can be useful across different stages of development.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Brainstorming
&lt;/h3&gt;

&lt;p&gt;Turn an idea into a visual structure before writing code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IDEA
 │
 ├── Users
 ├── Features
 ├── Data
 ├── APIs
 └── Infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🏗️ Architecture
&lt;/h3&gt;

&lt;p&gt;Map out how your components communicate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   │
   ▼
API Gateway
   │
   ├── Auth
   ├── Users
   ├── Payments
   └── Notifications
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🐛 Debugging
&lt;/h3&gt;

&lt;p&gt;Visualize where a request or event is failing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client
  ↓
Gateway ✓
  ↓
API ✓
  ↓
Queue ✓
  ↓
Worker ✗
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📚 Documentation
&lt;/h3&gt;

&lt;p&gt;Give contributors a mental model of your system before they dive into the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  👥 Collaboration
&lt;/h3&gt;

&lt;p&gt;Discuss architecture visually instead of trying to explain everything through paragraphs of text.&lt;/p&gt;




&lt;h1&gt;
  
  
  A Better Development Loop
&lt;/h1&gt;

&lt;p&gt;A powerful workflow could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        IDEA
         │
         ▼
     VISUALIZE
         │
         ▼
      DESIGN
         │
         ▼
       CODE
         │
         ▼
       TEST
         │
         ▼
     DOCUMENT
         │
         ▼
      SHARE
         │
         └──────────► Iterate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The visual layer isn't necessarily something you use once.&lt;/p&gt;

&lt;p&gt;It can evolve with the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why GitHub-Native Matters
&lt;/h1&gt;

&lt;p&gt;Developers already live in GitHub.&lt;/p&gt;

&lt;p&gt;That's where repositories, pull requests, issues, commits, and collaboration happen.&lt;/p&gt;

&lt;p&gt;So putting visual project context closer to that ecosystem makes sense.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Where is the latest architecture diagram?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you want the answer to be much closer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It's part of the project."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the direction Sketchflow is taking with its GitHub-native visual workspace.&lt;/p&gt;




&lt;h1&gt;
  
  
  Built for More Than Developers
&lt;/h1&gt;

&lt;p&gt;Although the developer workflow is an obvious use case, visual workspaces can also be useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product teams&lt;/li&gt;
&lt;li&gt;technical writers&lt;/li&gt;
&lt;li&gt;startup founders&lt;/li&gt;
&lt;li&gt;designers&lt;/li&gt;
&lt;li&gt;students&lt;/li&gt;
&lt;li&gt;engineering teams&lt;/li&gt;
&lt;li&gt;open-source maintainers&lt;/li&gt;
&lt;li&gt;educators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anything that involves &lt;strong&gt;explaining relationships between things&lt;/strong&gt; can benefit from visualization.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Bigger Idea
&lt;/h1&gt;

&lt;p&gt;Tools often force us to choose between different representations of knowledge.&lt;/p&gt;

&lt;p&gt;Text.&lt;/p&gt;

&lt;p&gt;Code.&lt;/p&gt;

&lt;p&gt;Diagrams.&lt;/p&gt;

&lt;p&gt;Tables.&lt;/p&gt;

&lt;p&gt;Tasks.&lt;/p&gt;

&lt;p&gt;But real-world projects don't fit neatly into one format.&lt;/p&gt;

&lt;p&gt;A software project is simultaneously:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 PROJECT
                    │
       ┌────────────┼────────────┐
       ▼            ▼            ▼
      CODE       CONCEPTS     PEOPLE
       │            │            │
       ▼            ▼            ▼
    SYSTEMS      DIAGRAMS      TEAM
       │            │            │
       └────────────┼────────────┘
                    ▼
                KNOWLEDGE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The future of developer tooling isn't necessarily about creating yet another place to store information.&lt;/p&gt;

&lt;p&gt;It's about connecting the different ways we &lt;strong&gt;think about information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that's what makes the idea behind Sketchflow interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  Try Sketchflow
&lt;/h1&gt;

&lt;p&gt;If you've ever opened a large repository and thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I wish I could just see how all of this fits together."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's exactly the kind of problem worth solving visually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sketchflow is building toward a GitHub-native visual workspace where developers can think, explain, design, and understand their projects visually.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://sketchflow.space/" rel="noopener noreferrer"&gt;sketchflow.space&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't just read your codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See it. Understand it. Explain it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Software is becoming more complex.&lt;/p&gt;

&lt;p&gt;Teams are becoming more distributed.&lt;/p&gt;

&lt;p&gt;Codebases are becoming larger.&lt;/p&gt;

&lt;p&gt;And documentation isn't getting any easier.&lt;/p&gt;

&lt;p&gt;Maybe the answer isn't writing more documentation.&lt;/p&gt;

&lt;p&gt;Maybe it's giving developers better ways to &lt;strong&gt;visualize the systems they're already building.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the idea behind Sketchflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your code tells the computer what to do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your visual workspace helps humans understand it.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Harness Engineering Isn't Dead — It Just Moved</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:05:42 +0000</pubDate>
      <link>https://dev.to/sh20raj/harness-engineering-isnt-dead-it-just-moved-1028</link>
      <guid>https://dev.to/sh20raj/harness-engineering-isnt-dead-it-just-moved-1028</guid>
      <description>&lt;h1&gt;
  
  
  Harness Engineering Isn't Dead — It Just Moved
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI agents are getting easier to build. But the interesting part isn't that the harness disappeared — it's that more of the harness is becoming infrastructure.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a long time, building an AI agent meant building much more than an LLM call.&lt;/p&gt;

&lt;p&gt;You needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool calling&lt;/li&gt;
&lt;li&gt;Agent loops&lt;/li&gt;
&lt;li&gt;Retries&lt;/li&gt;
&lt;li&gt;Context management&lt;/li&gt;
&lt;li&gt;File handling&lt;/li&gt;
&lt;li&gt;Code execution&lt;/li&gt;
&lt;li&gt;Sandboxing&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;li&gt;Multi-agent orchestration&lt;/li&gt;
&lt;li&gt;Error recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, you needed a &lt;strong&gt;harness&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now, things are changing.&lt;/p&gt;

&lt;p&gt;On September 10, 2026, OpenAI introduced the &lt;strong&gt;Agents API&lt;/strong&gt;, a public-beta API that provides a managed Codex harness and infrastructure for running cloud agents. OpenAI says the harness manages things such as orchestration, long-running sessions, context management, and recovery, while developers can focus on their agent's tools, knowledge, and workflows.&lt;/p&gt;

&lt;p&gt;So is harness engineering dead?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But something important is happening:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Generic harness infrastructure is becoming a managed platform capability.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that changes what AI developers should spend their time building.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The simplest explanation
&lt;/h2&gt;

&lt;p&gt;Imagine an LLM is a very intelligent person.&lt;/p&gt;

&lt;p&gt;You give it a task:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Investigate why our API has a high error rate and create a report."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The model can reason.&lt;/p&gt;

&lt;p&gt;But reasoning alone isn't enough.&lt;/p&gt;

&lt;p&gt;It needs to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inspect logs&lt;/li&gt;
&lt;li&gt;Search files&lt;/li&gt;
&lt;li&gt;Run commands&lt;/li&gt;
&lt;li&gt;Call APIs&lt;/li&gt;
&lt;li&gt;Save intermediate results&lt;/li&gt;
&lt;li&gt;Retry failed operations&lt;/li&gt;
&lt;li&gt;Maintain context&lt;/li&gt;
&lt;li&gt;Possibly delegate work&lt;/li&gt;
&lt;li&gt;Produce the final report&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The model is only one component.&lt;/p&gt;

&lt;p&gt;Something has to coordinate all of this.&lt;/p&gt;

&lt;p&gt;That surrounding system is what we commonly call an &lt;strong&gt;agent harness&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A simplified view:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    U[User] --&amp;gt; A[Agent Application]
    A --&amp;gt; H[Agent Harness]
    H --&amp;gt; M[LLM]
    H --&amp;gt; T[Tools]
    H --&amp;gt; S[State &amp;amp; Context]
    H --&amp;gt; X[Execution Environment]
    H --&amp;gt; O[Observability]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The important idea is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An LLM generates decisions. The harness turns those decisions into a reliable workflow.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  1. What Exactly Is an Agent Harness?
&lt;/h1&gt;

&lt;p&gt;The term "harness" isn't a single universally standardized component.&lt;/p&gt;

&lt;p&gt;Different platforms may use the term differently.&lt;/p&gt;

&lt;p&gt;But conceptually, an agent harness is the system around the model that enables an agent to &lt;strong&gt;act repeatedly and reliably&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model
  ↓
"I need to inspect app.py"
  ↓
Harness
  ↓
File tool
  ↓
app.py
  ↓
Harness
  ↓
Model
  ↓
"I found the bug"
  ↓
Harness
  ↓
Edit file
  ↓
Run tests
  ↓
Model
  ↓
Final response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without something coordinating those steps, you're mostly dealing with a model that produces outputs.&lt;/p&gt;

&lt;p&gt;With a harness, you're building an &lt;strong&gt;agentic system&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. LLM vs Agent
&lt;/h1&gt;

&lt;p&gt;This distinction is extremely important.&lt;/p&gt;

&lt;h2&gt;
  
  
  An LLM call
&lt;/h2&gt;

&lt;p&gt;A basic application might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain this Python function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The flow is basically:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A[Application] --&amp;gt; B[LLM]
    B --&amp;gt; C[Response]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Simple.&lt;/p&gt;

&lt;p&gt;But now imagine:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Fix the bug in this repository."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent might need to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Read repository
     ↓
Find relevant files
     ↓
Understand code
     ↓
Edit code
     ↓
Run tests
     ↓
Read failures
     ↓
Modify code again
     ↓
Run tests again
     ↓
Produce result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's no longer one model call.&lt;/p&gt;

&lt;p&gt;It's a &lt;strong&gt;loop&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. The Agent Loop
&lt;/h1&gt;

&lt;p&gt;A simplified agent loop looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Start Task] --&amp;gt; B[Send Context to Model]
    B --&amp;gt; C{Model Decision}
    C --&amp;gt;|Final Answer| D[Return Result]
    C --&amp;gt;|Tool Call| E[Execute Tool]
    E --&amp;gt; F[Return Tool Result]
    F --&amp;gt; B&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The important part is the loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model
 ↓
Tool
 ↓
Result
 ↓
Model
 ↓
Tool
 ↓
Result
 ↓
Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where a lot of the engineering happens.&lt;/p&gt;

&lt;p&gt;You have to decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What tools exist?&lt;/li&gt;
&lt;li&gt;Which tools can the model use?&lt;/li&gt;
&lt;li&gt;What arguments are valid?&lt;/li&gt;
&lt;li&gt;How are failures handled?&lt;/li&gt;
&lt;li&gt;How long can execution continue?&lt;/li&gt;
&lt;li&gt;How is context maintained?&lt;/li&gt;
&lt;li&gt;When should the agent stop?&lt;/li&gt;
&lt;li&gt;When should it retry?&lt;/li&gt;
&lt;li&gt;When should a human approve an action?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's harness engineering.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. The Old Way: Build Everything Yourself
&lt;/h1&gt;

&lt;p&gt;Imagine you want to build a coding agent.&lt;/p&gt;

&lt;p&gt;A simplified architecture could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    U[User] --&amp;gt; A[Your Application]

    A --&amp;gt; H[Your Agent Harness]

    H --&amp;gt; M[LLM]
    H --&amp;gt; F[File System]
    H --&amp;gt; T[Tools]
    H --&amp;gt; C[Code Execution]
    H --&amp;gt; DB[Database]
    H --&amp;gt; L[Logs]

    C --&amp;gt; SB[Sandbox]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;You own almost everything.&lt;/p&gt;

&lt;p&gt;You might have to implement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent loop
Retry logic
Tool execution
Tool permissions
Context handling
State
File management
Code execution
Sandbox
Logging
Tracing
Error recovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first, this can feel manageable.&lt;/p&gt;

&lt;p&gt;Then your agent becomes more capable.&lt;/p&gt;

&lt;p&gt;And suddenly your "small AI project" has turned into an infrastructure project.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Why Sandboxing Is Hard
&lt;/h1&gt;

&lt;p&gt;This is one of the most important parts.&lt;/p&gt;

&lt;p&gt;Suppose your agent can execute code.&lt;/p&gt;

&lt;p&gt;The model generates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rm -rf important-data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You obviously don't want arbitrary model-generated code running directly on your production machine.&lt;/p&gt;

&lt;p&gt;So you need an isolated environment.&lt;/p&gt;

&lt;p&gt;Something like:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Agent] --&amp;gt; B[Sandbox]

    B --&amp;gt; C[Files]
    B --&amp;gt; D[Processes]
    B --&amp;gt; E[Python]
    B --&amp;gt; F[Shell]
    B --&amp;gt; G[Packages]

    B -. Restricted .-&amp;gt; H[Production Systems]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Now you need to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filesystem isolation&lt;/li&gt;
&lt;li&gt;Network access&lt;/li&gt;
&lt;li&gt;Secrets&lt;/li&gt;
&lt;li&gt;CPU limits&lt;/li&gt;
&lt;li&gt;Memory limits&lt;/li&gt;
&lt;li&gt;Process isolation&lt;/li&gt;
&lt;li&gt;Timeouts&lt;/li&gt;
&lt;li&gt;Cleanup&lt;/li&gt;
&lt;li&gt;Persistence&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a serious engineering problem.&lt;/p&gt;

&lt;p&gt;OpenAI has explicitly described the need for computer environments where agents can work with files, execute code, and persist intermediate results, and has also discussed the security controls required when agents act autonomously.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Then Came Agent SDKs
&lt;/h1&gt;

&lt;p&gt;The next abstraction was the &lt;strong&gt;Agent SDK&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of manually implementing every part of the agent loop, an SDK could provide abstractions for things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agents
Tools
Handoffs
Tracing
Approvals
Context
Execution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The architecture becomes:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    U[User] --&amp;gt; A[Your Application]
    A --&amp;gt; SDK[Agent SDK]

    SDK --&amp;gt; M[Model]
    SDK --&amp;gt; T[Tools]
    SDK --&amp;gt; O[Observability]
    SDK --&amp;gt; W[Workflow]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;This is much better.&lt;/p&gt;

&lt;p&gt;But there is still a distinction between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Using an SDK&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Using a fully managed agent runtime.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The SDK can simplify your application code while you may still be responsible for running and operating the environment.&lt;/p&gt;

&lt;p&gt;OpenAI's April 2026 update to the Agents SDK explicitly described a more capable harness with tools, approvals, tracing, handoffs, resume bookkeeping, and sandbox environments.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. The Next Step: Managed Agent Infrastructure
&lt;/h1&gt;

&lt;p&gt;Now we reach the interesting part.&lt;/p&gt;

&lt;p&gt;Instead of you operating the entire agent runtime, the platform can provide more of it.&lt;/p&gt;

&lt;p&gt;The conceptual shift looks like this:&lt;/p&gt;

&lt;h3&gt;
  
  
  Before
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Your App] --&amp;gt; B[Your Harness]
    B --&amp;gt; C[Your Sandbox]
    B --&amp;gt; D[Your State]
    B --&amp;gt; E[Your Observability]
    B --&amp;gt; F[Model Provider]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  With managed agent infrastructure
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Your App] --&amp;gt; B[Managed Agent Platform]

    B --&amp;gt; C[Agent Harness]
    B --&amp;gt; D[Session Management]
    B --&amp;gt; E[Context Management]
    B --&amp;gt; F[Tool Orchestration]
    B --&amp;gt; G[Observability]
    B --&amp;gt; H[Recovery]

    B --&amp;gt; I[Sandbox]
    B --&amp;gt; J[Model]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Now you can send a high-level task to the platform.&lt;/p&gt;

&lt;p&gt;The platform handles much more of the execution machinery.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. OpenAI's Agents API
&lt;/h1&gt;

&lt;p&gt;On September 10, 2026, OpenAI announced the &lt;strong&gt;Agents API&lt;/strong&gt; in public beta.&lt;/p&gt;

&lt;p&gt;Its core idea is straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build and run cloud agents using a managed Codex harness.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OpenAI says it hosts and maintains the harness while developers choose the agent's compute environment.&lt;/p&gt;

&lt;p&gt;Those environments can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI-hosted sandboxes&lt;/li&gt;
&lt;li&gt;Your own infrastructure&lt;/li&gt;
&lt;li&gt;Supported sandbox providers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The API is designed around long-running agent sessions, tool use, context management, recovery, and multi-agent workflows.&lt;/p&gt;

&lt;p&gt;This is a significant architectural shift.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. What OpenAI Is Actually Managing
&lt;/h1&gt;

&lt;p&gt;It's important not to misunderstand this.&lt;/p&gt;

&lt;p&gt;The Agents API doesn't mean:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"OpenAI builds your entire application."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead, the platform provides infrastructure around the agent.&lt;/p&gt;

&lt;p&gt;According to OpenAI, the managed harness includes capabilities around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context management&lt;/li&gt;
&lt;li&gt;Tool orchestration&lt;/li&gt;
&lt;li&gt;Long-running sessions&lt;/li&gt;
&lt;li&gt;Recovery&lt;/li&gt;
&lt;li&gt;Subagents&lt;/li&gt;
&lt;li&gt;Agent coordination&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenAI also provides hosted sandbox infrastructure where agents can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run code&lt;/li&gt;
&lt;li&gt;Work with files&lt;/li&gt;
&lt;li&gt;Produce artifacts&lt;/li&gt;
&lt;li&gt;Install packages&lt;/li&gt;
&lt;li&gt;Use configured capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it like this:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Your Product] --&amp;gt; B[Agents API]

    B --&amp;gt; C[Managed Harness]
    B --&amp;gt; D[Model]
    B --&amp;gt; E[Session]
    B --&amp;gt; F[Context]
    B --&amp;gt; G[Tool Orchestration]
    B --&amp;gt; H[Sandbox]

    A --&amp;gt; I[Your Business Logic]
    A --&amp;gt; J[Your Tools]
    A --&amp;gt; K[Your Data]
    A --&amp;gt; L[Your UX]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The platform handles generic agent infrastructure.&lt;/p&gt;

&lt;p&gt;You build the thing that makes your agent &lt;strong&gt;useful&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. So... Is Harness Engineering Dead?
&lt;/h1&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;This is the biggest misconception.&lt;/p&gt;

&lt;p&gt;A better statement is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Generic harness infrastructure is becoming commoditized and managed.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The harness hasn't disappeared.&lt;/p&gt;

&lt;p&gt;It has moved.&lt;/p&gt;

&lt;p&gt;Compare this to databases.&lt;/p&gt;

&lt;p&gt;You could run PostgreSQL yourself.&lt;/p&gt;

&lt;p&gt;Or you could use a managed database service.&lt;/p&gt;

&lt;p&gt;The database didn't disappear.&lt;/p&gt;

&lt;p&gt;The operational responsibility moved to another layer.&lt;/p&gt;

&lt;p&gt;The same idea applies here.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A[Build Everything Yourself] --&amp;gt; B[Use SDK]
    B --&amp;gt; C[Use Managed Agent Runtime]

    A --&amp;gt; D[Maximum Control]
    C --&amp;gt; E[Maximum Abstraction]&lt;/code&gt;&lt;/pre&gt;






&lt;h1&gt;
  
  
  11. The Harness Is Moving Up the Stack
&lt;/h1&gt;

&lt;p&gt;Think about the evolution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    ABSTRACTION
                         ↑

       Managed Agent Infrastructure
                    │
              Agent SDKs
                    │
              Raw Model APIs
                    │
                HTTP APIs

                         ↓
                    MORE WORK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart BT
    A[Raw Model API]
    B[Agent SDK]
    C[Managed Agent Runtime]
    D[Your Application]

    A --&amp;gt; B
    B --&amp;gt; C
    C --&amp;gt; D&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Every step upward removes some infrastructure work.&lt;/p&gt;

&lt;p&gt;But it also introduces trade-offs.&lt;/p&gt;




&lt;h1&gt;
  
  
  12. What Developers Still Need to Build
&lt;/h1&gt;

&lt;p&gt;This is where things get interesting.&lt;/p&gt;

&lt;p&gt;Imagine you're building an AI customer-support agent.&lt;/p&gt;

&lt;p&gt;The platform may provide:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent runtime
Tool execution
Context management
Sandbox
Tracing
Sessions
Recovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But it doesn't automatically know your business rules.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should this customer receive a $500 refund?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's your application.&lt;/p&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is this agent allowed to access the financial database?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's your authorization system.&lt;/p&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should an email require human approval?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's your workflow.&lt;/p&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What information should the agent never reveal?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's your policy and security layer.&lt;/p&gt;

&lt;p&gt;So the architecture becomes:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    U[User] --&amp;gt; A[Your Application]

    A --&amp;gt; BL[Business Logic]
    A --&amp;gt; AUTH[Authorization]
    A --&amp;gt; POL[Policies]
    A --&amp;gt; TOOLS[Your Tools]

    A --&amp;gt; AG[Managed Agent Runtime]

    AG --&amp;gt; H[Harness]
    AG --&amp;gt; S[Sandbox]
    AG --&amp;gt; CTX[Context]
    AG --&amp;gt; OBS[Observability]
    AG --&amp;gt; M[Model]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The infrastructure is managed.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;product intelligence&lt;/strong&gt; is still yours.&lt;/p&gt;




&lt;h1&gt;
  
  
  13. The 80/20 Shift
&lt;/h1&gt;

&lt;p&gt;A useful way to think about this is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BEFORE

80% infrastructure
20% application


AFTER

20% infrastructure
80% application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These percentages aren't literal benchmarks.&lt;/p&gt;

&lt;p&gt;They're a mental model.&lt;/p&gt;

&lt;p&gt;The point is that developers can spend less time rebuilding generic agent infrastructure.&lt;/p&gt;

&lt;p&gt;Instead, they can focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain-specific tools&lt;/li&gt;
&lt;li&gt;Business workflows&lt;/li&gt;
&lt;li&gt;Data&lt;/li&gt;
&lt;li&gt;User experience&lt;/li&gt;
&lt;li&gt;Permissions&lt;/li&gt;
&lt;li&gt;Evaluations&lt;/li&gt;
&lt;li&gt;Reliability&lt;/li&gt;
&lt;li&gt;Product design&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  14. But There Is a Trade-Off
&lt;/h1&gt;

&lt;p&gt;Managed infrastructure sounds perfect.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;p&gt;The more you outsource, the less control you have over certain layers.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Managed Platform
       │
       ├── Convenience
       ├── Faster development
       ├── Less infrastructure
       └── Less control
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may have questions around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data residency&lt;/li&gt;
&lt;li&gt;Privacy&lt;/li&gt;
&lt;li&gt;Network access&lt;/li&gt;
&lt;li&gt;Vendor lock-in&lt;/li&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;li&gt;Custom runtimes&lt;/li&gt;
&lt;li&gt;Debugging&lt;/li&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Compliance&lt;/li&gt;
&lt;li&gt;Security boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why the ability to choose your execution environment matters.&lt;/p&gt;

&lt;p&gt;OpenAI's Agents API allows developers to choose between OpenAI-hosted sandboxes, their own infrastructure, or supported sandbox providers.&lt;/p&gt;

&lt;p&gt;So the future isn't necessarily:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Everyone runs everything on OpenAI."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It can also be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"The harness and execution environment become separate layers."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  15. Harness vs Sandbox
&lt;/h1&gt;

&lt;p&gt;This distinction is extremely important.&lt;/p&gt;

&lt;p&gt;They're not the same thing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Harness
&lt;/h3&gt;

&lt;p&gt;The harness coordinates the agent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model
 ↓
Tool decision
 ↓
Tool execution
 ↓
Result
 ↓
Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sandbox
&lt;/h3&gt;

&lt;p&gt;The sandbox provides an environment where the agent can safely execute things.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Files
Processes
Commands
Packages
Runtime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can therefore have:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A[Agent Harness] --&amp;gt; B[Sandbox]
    A --&amp;gt; C[Model]
    A --&amp;gt; D[Tools]
    B --&amp;gt; E[Files]
    B --&amp;gt; F[Code]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;And importantly, they don't have to live on the same machine.&lt;/p&gt;

&lt;p&gt;OpenAI's Agents SDK documentation describes this separation as useful for isolation, durability, and security.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. Why This Matters for Security
&lt;/h1&gt;

&lt;p&gt;An agent that can execute code is fundamentally different from a chatbot.&lt;/p&gt;

&lt;p&gt;A chatbot might generate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Here is a Python script."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An agent might actually execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That changes the threat model.&lt;/p&gt;

&lt;p&gt;Now you need to think about:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        Agent
          │
          ▼
       Tools
          │
          ▼
      Permissions
          │
          ▼
       Sandbox
          │
          ▼
     External Systems
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every arrow is a potential security boundary.&lt;/p&gt;

&lt;p&gt;This is why "just give the agent tools" is not a sufficient production architecture.&lt;/p&gt;

&lt;p&gt;OpenAI has described the need for explicit boundaries, approval controls, and telemetry when deploying coding agents into real workflows.&lt;/p&gt;




&lt;h1&gt;
  
  
  17. What Happens to Agent Engineers?
&lt;/h1&gt;

&lt;p&gt;This is perhaps the most interesting career question.&lt;/p&gt;

&lt;p&gt;If platforms handle more of the generic harness, does that mean agent engineers become less important?&lt;/p&gt;

&lt;p&gt;I don't think so.&lt;/p&gt;

&lt;p&gt;Their responsibilities change.&lt;/p&gt;

&lt;p&gt;Instead of spending most of their time implementing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;retry()
tool_loop()
context_manager()
sandbox_manager()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;they may spend more time on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agent architecture
tool design
permissions
evaluation
workflow design
memory
reliability
cost optimization
security
domain logic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The abstraction level rises.&lt;/p&gt;




&lt;h1&gt;
  
  
  18. The New Agent Engineering Stack
&lt;/h1&gt;

&lt;p&gt;A useful model is:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart BT
    A[Foundation Models]
    B[Agent Runtime]
    C[Tools + Sandbox]
    D[Application Logic]
    E[Product]

    A --&amp;gt; B
    B --&amp;gt; C
    C --&amp;gt; D
    D --&amp;gt; E&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Each layer solves a different problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1 — Models
&lt;/h3&gt;

&lt;p&gt;Reasoning and generation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 2 — Agent Runtime
&lt;/h3&gt;

&lt;p&gt;Loops, context, orchestration, sessions, recovery.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3 — Tools &amp;amp; Execution
&lt;/h3&gt;

&lt;p&gt;Files, code execution, APIs, databases, browsers, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 4 — Application Logic
&lt;/h3&gt;

&lt;p&gt;Your business rules and workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 5 — Product
&lt;/h3&gt;

&lt;p&gt;What users actually experience.&lt;/p&gt;

&lt;p&gt;The more infrastructure providers manage, the more developers can concentrate on layers 3–5.&lt;/p&gt;




&lt;h1&gt;
  
  
  19. What About Custom Harnesses?
&lt;/h1&gt;

&lt;p&gt;They aren't going away.&lt;/p&gt;

&lt;p&gt;There will always be situations where you need more control.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Custom planning
Custom memory
Custom routing
Custom model selection
Custom evaluation
Custom security policies
Custom scheduling
Custom orchestration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A managed platform might give you the generic 80%.&lt;/p&gt;

&lt;p&gt;Your custom system may implement the remaining 20%.&lt;/p&gt;

&lt;p&gt;And sometimes that 20% is the actual competitive advantage.&lt;/p&gt;




&lt;h1&gt;
  
  
  20. Generic Harness vs Custom Harness
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Managed Harness&lt;/th&gt;
&lt;th&gt;Custom Harness&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basic agent loop&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool orchestration&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context management&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-running sessions&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sandbox infrastructure&lt;/td&gt;
&lt;td&gt;Often&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom execution&lt;/td&gt;
&lt;td&gt;Limited by platform&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business logic&lt;/td&gt;
&lt;td&gt;You build it&lt;/td&gt;
&lt;td&gt;You build it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maximum control&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Development speed&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure burden&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor dependency&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There isn't a universally correct choice.&lt;/p&gt;

&lt;p&gt;It depends on what you're building.&lt;/p&gt;




&lt;h1&gt;
  
  
  21. Why Codex Is Important to This Story
&lt;/h1&gt;

&lt;p&gt;The Agents API didn't appear out of nowhere.&lt;/p&gt;

&lt;p&gt;OpenAI has been building agent infrastructure through Codex.&lt;/p&gt;

&lt;p&gt;OpenAI describes the Codex harness as the system responsible for orchestrating interaction between the user, model, and tools.&lt;/p&gt;

&lt;p&gt;OpenAI also published its experience with &lt;strong&gt;harness engineering&lt;/strong&gt; after building a software product where Codex generated the code and the team focused heavily on environments, intent, feedback loops, tests, and agent-friendly infrastructure.&lt;/p&gt;

&lt;p&gt;This is important because it demonstrates something:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The harness itself can become an engineering product.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And now OpenAI is exposing more of that infrastructure through an API.&lt;/p&gt;




&lt;h1&gt;
  
  
  22. Harness Engineering Is Actually Becoming MORE Important
&lt;/h1&gt;

&lt;p&gt;Here's the paradox.&lt;/p&gt;

&lt;p&gt;We're saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The harness is becoming managed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But at the same time:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The harness is becoming more important."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Both can be true.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because as agents become more capable, the difference between:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model alone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model + system
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;becomes enormous.&lt;/p&gt;

&lt;p&gt;OpenAI's own engineering work describes the harness as a critical layer for making agents dependable in production. Its current Codex agent engineering roles explicitly cover harness behavior, sandboxing, orchestration, evaluation, observability, and reliability.&lt;/p&gt;

&lt;p&gt;So the harness isn't becoming irrelevant.&lt;/p&gt;

&lt;p&gt;It's becoming &lt;strong&gt;infrastructure&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  23. The Bigger Pattern in Software
&lt;/h1&gt;

&lt;p&gt;This isn't actually new.&lt;/p&gt;

&lt;p&gt;Look at the history of software.&lt;/p&gt;

&lt;h3&gt;
  
  
  Servers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Physical server
      ↓
Virtual machines
      ↓
Cloud
      ↓
Serverless
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Databases
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Manage database yourself
      ↓
Managed database
      ↓
Serverless database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Infrastructure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hardware
      ↓
Cloud infrastructure
      ↓
Managed services
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now:&lt;/p&gt;

&lt;h3&gt;
  
  
  AI agents
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Raw model
      ↓
Agent SDK
      ↓
Managed agent runtime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The pattern is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Infrastructure becomes abstraction.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  24. What Developers Should Learn Now
&lt;/h1&gt;

&lt;p&gt;If you're learning AI engineering today, don't focus only on API syntax.&lt;/p&gt;

&lt;p&gt;Learn these concepts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Agent loops
&lt;/h3&gt;

&lt;p&gt;Understand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model → Tool → Result → Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Tool design
&lt;/h3&gt;

&lt;p&gt;Learn how to give agents reliable tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Context management
&lt;/h3&gt;

&lt;p&gt;Understand what information the model receives and when.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Sandboxing
&lt;/h3&gt;

&lt;p&gt;Understand how code execution should be isolated.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Permissions
&lt;/h3&gt;

&lt;p&gt;Never assume the agent should have unlimited access.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Observability
&lt;/h3&gt;

&lt;p&gt;You need to know what your agent actually did.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Evaluation
&lt;/h3&gt;

&lt;p&gt;A working demo isn't necessarily a reliable agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Workflow design
&lt;/h3&gt;

&lt;p&gt;Understand when agents should act autonomously and when humans should approve actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Cost and latency
&lt;/h3&gt;

&lt;p&gt;More reasoning and more tool calls aren't free.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. System architecture
&lt;/h3&gt;

&lt;p&gt;Most importantly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Know which layer should own which responsibility.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  25. A Practical Mental Model
&lt;/h1&gt;

&lt;p&gt;Whenever you're building an AI agent, ask these questions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────┐
│ What does the model decide?        │
├────────────────────────────────────┤
│ What does the harness coordinate?  │
├────────────────────────────────────┤
│ What does the sandbox execute?     │
├────────────────────────────────────┤
│ What do my tools control?          │
├────────────────────────────────────┤
│ What does my application own?      │
├────────────────────────────────────┤
│ Where are the security boundaries? │
├────────────────────────────────────┤
│ Where is state stored?             │
├────────────────────────────────────┤
│ How do I evaluate the agent?       │
└────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you can answer all of these, you understand the architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  26. The Future
&lt;/h1&gt;

&lt;p&gt;I think we're moving toward a world where you won't start every AI project by asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How do I build an agent loop?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You'll start with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What should this agent accomplish?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then you'll choose how much infrastructure you want to own.&lt;/p&gt;

&lt;p&gt;Something like:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Problem] --&amp;gt; B{How much control?}

    B --&amp;gt;|Fastest| C[Managed Agent Runtime]
    B --&amp;gt;|More control| D[Agent SDK]
    B --&amp;gt;|Maximum control| E[Custom Harness]

    C --&amp;gt; F[Application]
    D --&amp;gt; F
    E --&amp;gt; F&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;That's much more interesting than simply saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Harness engineering is dead."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because it isn't.&lt;/p&gt;




&lt;h1&gt;
  
  
  27. The Final Takeaway
&lt;/h1&gt;

&lt;p&gt;The biggest change isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Developers don't need harnesses anymore."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Developers don't necessarily need to own the generic harness infrastructure anymore."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a huge difference.&lt;/p&gt;

&lt;p&gt;The future probably looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             YOUR PRODUCT
                  │
                  ▼
          YOUR APPLICATION
                  │
        ┌─────────┴─────────┐
        │                   │
 Business Logic       Custom Workflows
        │                   │
        └─────────┬─────────┘
                  │
                  ▼
          MANAGED AGENT
             RUNTIME
                  │
       ┌──────────┼──────────┐
       │          │          │
    Harness    Sandbox    Tools
       │          │          │
       └──────────┼──────────┘
                  │
                  ▼
                MODEL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Harness engineering isn't dead.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is being pushed down the stack.&lt;/p&gt;

&lt;p&gt;The generic parts are becoming platforms.&lt;/p&gt;

&lt;p&gt;The custom parts are becoming more valuable.&lt;/p&gt;

&lt;p&gt;And the job of the AI engineer is slowly moving from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"How do I make the agent run?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"How do I make the agent reliably solve the right problem?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a much more interesting engineering problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 If You're Building AI Agents
&lt;/h1&gt;

&lt;p&gt;Don't start by writing a giant agent framework.&lt;/p&gt;

&lt;p&gt;Start with three questions:&lt;/p&gt;

&lt;h3&gt;
  
  
  What should the agent do?
&lt;/h3&gt;

&lt;p&gt;Define the actual job.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the agent need access to?
&lt;/h3&gt;

&lt;p&gt;Define tools, data, files, and permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I own vs. outsource?
&lt;/h3&gt;

&lt;p&gt;Decide whether you need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Custom harness
        ↓
Agent SDK
        ↓
Managed agent runtime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The best architecture is not necessarily the one with the most code.&lt;/p&gt;

&lt;p&gt;It's the one where &lt;strong&gt;every layer has a clear responsibility.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  📚 Further Reading &amp;amp; Sources
&lt;/h1&gt;

&lt;h3&gt;
  
  
  OpenAI — Introducing the Agents API
&lt;/h3&gt;

&lt;p&gt;The primary announcement for the managed Codex harness, cloud agents, hosted sandboxes, long-running sessions, and execution environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/introducing-the-agents-api/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read the Agents API announcement&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI — Harness Engineering
&lt;/h3&gt;

&lt;p&gt;A detailed look at how OpenAI approached software development around Codex agents and why agent-friendly environments and feedback loops matter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/harness-engineering/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read Harness Engineering&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI — Unrolling the Codex Agent Loop
&lt;/h3&gt;

&lt;p&gt;A deeper explanation of the agent loop and the role of the Codex harness.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/unrolling-the-codex-agent-loop/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read Unrolling the Codex Agent Loop&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI — The Next Evolution of the Agents SDK
&lt;/h3&gt;

&lt;p&gt;Useful background on sandbox environments, tools, approvals, tracing, handoffs, and agent execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/the-next-evolution-of-the-agents-sdk/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read the Agents SDK article&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI — Running Codex Safely
&lt;/h3&gt;

&lt;p&gt;A useful introduction to the security boundaries, approvals, controls, and telemetry required for autonomous agents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/running-codex-safely/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read Running Codex Safely&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenAI — From Model to Agent
&lt;/h3&gt;

&lt;p&gt;Explains why agents need computer environments, execution, intermediate files, and reliable workflow infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/equip-responses-api-computer-environment/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Read From Model to Agent&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 What do you think?
&lt;/h2&gt;

&lt;p&gt;Do you think managed agent APIs will make custom harnesses obsolete?&lt;/p&gt;

&lt;p&gt;Or will the best AI products still require their own orchestration layer?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'd love to hear your take in the comments.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>openai</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Demystifying Compiler Design: From Source Code to Executable (Course Overview)</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Sat, 29 Aug 2026 16:35:18 +0000</pubDate>
      <link>https://dev.to/sh20raj/demystifying-compiler-design-from-source-code-to-executable-course-overview-24j7</link>
      <guid>https://dev.to/sh20raj/demystifying-compiler-design-from-source-code-to-executable-course-overview-24j7</guid>
      <description>&lt;h3&gt;
  
  
  Why Care About Compiler Design?
&lt;/h3&gt;

&lt;p&gt;Most developers treat compilers like a black box: write high-level code, hit build, and machine instructions come out. Understanding what happens inside that black box fundamentally changes how you write code, debug runtime failures, optimize performance, and design custom domain-specific languages (DSLs) or developer tools.&lt;/p&gt;

&lt;p&gt;This course breaks down the end-to-end architecture of modern compilers into practical, digestible concepts—spanning lexical analysis, parsing, semantic verification, intermediate code generation, runtime environments, and low-level code optimization.&lt;/p&gt;




&lt;h3&gt;
  
  
  What We Will Build &amp;amp; Learn
&lt;/h3&gt;

&lt;p&gt;The series is structured across five core milestones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ Source Code ] 
       │
       ▼
 [ Lexical Analysis (Tokens) ] ─────────► (DFA &amp;amp; Regex)
       │
       ▼
 [ Syntax Analysis (AST/CST) ] ─────────► (LL &amp;amp; LR Parsers)
       │
       ▼
 [ Semantic Analysis &amp;amp; SDTS ]  ─────────► (Type Checking &amp;amp; TAC)
       │
       ▼
 [ Intermediate Code &amp;amp; Runtime ] ───────► (Control Flow &amp;amp; Activation Records)
       │
       ▼
 [ Optimization &amp;amp; Assembly ]   ─────────► (CFG, Dead Code, Constant Folding)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Course Roadmap
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Lexical Analysis (Scanning)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Anatomy of compilers and compilation phases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tokenization, lexemes, and input buffering techniques.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Direct conversion of Regular Expressions to Deterministic Finite Automata (DFA).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Syntax Analysis (Parsing)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Context-Free Grammars (CFG) and ambiguity elimination.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Top-down parsing strategies: Recursive Descent and predictive $LL(1)$ tables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bottom-up parsing: Shift-reduce mechanisms, $LR(0)$, $SLR(1)$, $LALR(1)$, and canonical $LR(1)$.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practical error detection and recovery routines.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Semantic Analysis &amp;amp; Intermediate Code Generation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Syntax-Directed Definitions (SDD) and Syntax-Directed Translation Schemes (SDTS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Synthesized vs. Inherited attribute evaluation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static type checking and symbol table operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generating Three-Address Code (TAC) and translating complex array references.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Control Flow &amp;amp; Runtime Environments&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Evaluating boolean logic (short-circuit vs. complete evaluation).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resolving forward and backward branching in intermediate code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Runtime stack organization, activation records, and function calls/returns.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Optimization &amp;amp; Code Generation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Constructing Basic Blocks and Control Flow Graphs (CFGs).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Machine-independent local and global optimizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implementing Constant Folding, Dead Code Elimination, Common Subexpression Elimination, and Loop-Invariant Code Motion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emitting targeted machine instructions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Who This Series Is For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CS Students:&lt;/strong&gt; Preparing for core systems courses and technical interviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Software Engineers:&lt;/strong&gt; Wanting to build custom linters, transpilers, AST analyzers, or programming languages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Curious Builders:&lt;/strong&gt; Wanting to demystify low-level systems and execution runtimes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Follow along for **Part 1: The Anatomy of a Compiler &amp;amp; Building a Fast Lexical Scanner&lt;/em&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>compiler</category>
      <category>course</category>
      <category>compsci</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>🔐 How Does a VPN Work?</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Fri, 28 Aug 2026 15:20:06 +0000</pubDate>
      <link>https://dev.to/sh20raj/how-does-a-vpn-work-1keo</link>
      <guid>https://dev.to/sh20raj/how-does-a-vpn-work-1keo</guid>
      <description>&lt;h1&gt;
  
  
  🔐 How Does a VPN Work?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The Complete Visual Guide
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;VPN (Virtual Private Network)&lt;/strong&gt; creates an encrypted connection between your device and a VPN server. It changes the path your internet traffic takes and makes websites see the VPN server's public IP address instead of your own.&lt;/p&gt;

&lt;p&gt;But there is an important distinction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A VPN improves privacy and security. It does not make you completely anonymous.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/M_ec1-xDlD8" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  1. What Happens Without a VPN?
&lt;/h2&gt;

&lt;p&gt;Normally, when you access a website, your traffic follows roughly this path:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 Your Device"] --&amp;gt; B["📡 Router"]
    B --&amp;gt; C["🌐 ISP"]
    C --&amp;gt; D["🌍 Internet"]
    D --&amp;gt; E["🖥️ Website"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;For example, when you open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;your request travels through your network and ISP before reaching the destination.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who can see what?
&lt;/h3&gt;

&lt;p&gt;Your ISP can generally see information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;That you're communicating over the internet&lt;/li&gt;
&lt;li&gt;Which IP addresses you're connecting to&lt;/li&gt;
&lt;li&gt;Timing and amount of traffic&lt;/li&gt;
&lt;li&gt;Depending on the protocol and encryption, potentially more information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The website can see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your public IP address&lt;/li&gt;
&lt;li&gt;Approximate geographic location derived from that IP&lt;/li&gt;
&lt;li&gt;Your requests and account activity&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. What Changes When You Turn On a VPN?
&lt;/h1&gt;

&lt;p&gt;Now imagine switching on a VPN:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 Your Device"] --&amp;gt; B["🔒 VPN Tunnel"]
    B --&amp;gt; C["🖥️ VPN Server"]
    C --&amp;gt; D["🌍 Internet"]
    D --&amp;gt; E["🖥️ Website"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You → ISP → Website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the important part becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You → ISP → 🔒 VPN Server → Website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The connection between &lt;strong&gt;your device and the VPN server is encrypted&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is commonly described as an &lt;strong&gt;encrypted tunnel&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. What Is the VPN Tunnel?
&lt;/h1&gt;

&lt;p&gt;Think of your internet traffic as letters.&lt;/p&gt;

&lt;p&gt;Without additional encryption, someone along the route may be able to inspect the contents if the traffic isn't otherwise protected.&lt;/p&gt;

&lt;p&gt;A VPN puts that traffic inside an encrypted connection.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["📄 Original Data"] --&amp;gt; B["🔐 Encryption"]
    B --&amp;gt; C["📦 Encrypted Data"]
    C --&amp;gt; D["🚇 Secure VPN Tunnel"]
    D --&amp;gt; E["🖥️ VPN Server"]
    E --&amp;gt; F["🌐 Destination"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BEFORE

GET /profile
User-Agent: Chrome
Cookie: ...


        ↓ VPN encryption


AFTER

8F 91 A2 7C 4B 19 0D
A8 31 F2 91 72 44 ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual cryptographic protocols are considerably more sophisticated than simply converting readable text into random characters, but this gives you the right intuition.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. What Actually Happens to a Packet?
&lt;/h1&gt;

&lt;p&gt;Let's simplify the process.&lt;/p&gt;

&lt;p&gt;Suppose you want to access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your device creates network traffic containing information needed to deliver the request.&lt;/p&gt;

&lt;p&gt;The VPN client encrypts the appropriate traffic and sends it through the VPN connection.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;sequenceDiagram
    participant U as 💻 You
    participant V as 🔒 VPN Server
    participant W as 🌐 Website

    U-&amp;gt;&amp;gt;V: Encrypted VPN traffic
    V-&amp;gt;&amp;gt;W: Request from VPN server
    W-&amp;gt;&amp;gt;V: Response
    V-&amp;gt;&amp;gt;U: Encrypted response&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The VPN server acts as the &lt;strong&gt;middle point between you and the public internet&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Your IP Address Changes
&lt;/h1&gt;

&lt;p&gt;This is one of the most noticeable effects of a VPN.&lt;/p&gt;

&lt;h3&gt;
  
  
  Without VPN
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 You"] --&amp;gt; B["🌐 Website"]
    B --&amp;gt; C["Website sees:&amp;lt;br/&amp;gt;Your Public IP"]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  With VPN
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 You"] --&amp;gt; B["🔒 VPN Server"]
    B --&amp;gt; C["🌐 Website"]
    C --&amp;gt; D["Website sees:&amp;lt;br/&amp;gt;VPN Server IP"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;So if your actual public IP were:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;203.0.113.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the website might instead see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;198.51.100.25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;—the public IP of the VPN server.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. So Does the VPN Hide You From Your ISP?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Not completely.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is one of the biggest misconceptions about VPNs.&lt;/p&gt;

&lt;p&gt;Your ISP can still observe that your device is communicating with a VPN server.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 You"] --&amp;gt; B["ISP"]
    B --&amp;gt; C["🔒 VPN Server"]
    C --&amp;gt; D["🌐 Website"]

    B -. "Can see VPN connection" .-&amp;gt; C
    B -. "Cannot normally see inside VPN tunnel" .-&amp;gt; C&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The ISP generally doesn't get to see the contents of the traffic protected by the VPN tunnel.&lt;/p&gt;

&lt;p&gt;However, it can still observe &lt;strong&gt;metadata&lt;/strong&gt;, such as traffic timing, volume, and the VPN server you're connecting to.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. What Does the VPN Provider See?
&lt;/h1&gt;

&lt;p&gt;This is extremely important.&lt;/p&gt;

&lt;p&gt;When you use a VPN, you're shifting trust.&lt;/p&gt;

&lt;p&gt;Without a VPN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You → ISP → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With a VPN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You → ISP → VPN Provider → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The VPN provider operates the server through which your traffic exits.&lt;/p&gt;

&lt;p&gt;Therefore, your VPN provider may be able to observe significant information about your connection, depending on its infrastructure, logging practices, configuration, and the protocols/services involved.&lt;/p&gt;

&lt;h3&gt;
  
  
  The key idea:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A VPN doesn't eliminate trust. It moves part of that trust from your ISP to the VPN provider.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why choosing a trustworthy VPN provider matters.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. What Does the Website See?
&lt;/h1&gt;

&lt;p&gt;From the website's perspective:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 Your Device&amp;lt;br/&amp;gt;203.0.113.10"]
    B["🔒 VPN Server&amp;lt;br/&amp;gt;198.51.100.25"]
    C["🌐 Website"]

    A --&amp;gt; B
    B --&amp;gt; C&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The website generally sees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source IP:
198.51.100.25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;rather than:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;203.0.113.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is why VPNs can also make it appear as though you're connecting from another region when the VPN server is located there.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. But What About HTTPS?
&lt;/h1&gt;

&lt;p&gt;Here's an important layer that many basic VPN explanations skip.&lt;/p&gt;

&lt;p&gt;A VPN isn't the only thing protecting your data.&lt;/p&gt;

&lt;p&gt;When you visit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTPS typically provides encryption between your browser and the website.&lt;/p&gt;

&lt;p&gt;So you can think of the connection as having &lt;strong&gt;multiple security layers&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 Your Device"]
    B["🔒 VPN Encryption"]
    C["🌐 Internet"]
    D["🔐 HTTPS"]
    E["🖥️ Website"]

    A --&amp;gt; B --&amp;gt; C --&amp;gt; D --&amp;gt; E&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;A simplified mental model is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your Device
     │
     │ VPN encryption
     ▼
VPN Server
     │
     │ HTTPS encryption
     ▼
Website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is why saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Without a VPN, your ISP can read all your passwords"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is generally &lt;strong&gt;wrong for HTTPS websites&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Modern HTTPS already protects the contents of your web traffic from ordinary network observers.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. VPN vs HTTPS
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;VPN&lt;/th&gt;
&lt;th&gt;HTTPS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Encrypts connection between you and VPN server&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encrypts browser ↔ website traffic&lt;/td&gt;
&lt;td&gt;Not necessarily by itself&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hides your public IP from website&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hides VPN use from ISP&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protects against some hostile local networks&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ for HTTPS traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Makes you anonymous&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Best mental model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPN = protects the path to the VPN server
HTTPS = protects the connection to the website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using both can provide complementary protections.&lt;/p&gt;




&lt;h1&gt;
  
  
  11. The Complete Journey of a Request
&lt;/h1&gt;

&lt;p&gt;Let's put everything together.&lt;/p&gt;

&lt;p&gt;Suppose you type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;youtube.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 1 — Your device creates traffic
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💻 Browser
   ↓
Request for youtube.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2 — VPN encrypts the VPN connection
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💻 Device
   ↓
🔐 Encrypted VPN traffic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3 — Traffic travels to the VPN server
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💻 You
   ↓
🔒 VPN Tunnel
   ↓
🖥️ VPN Server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4 — VPN server sends the request onward
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPN Server
    ↓
🌐 Internet
    ↓
YouTube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5 — Website responds
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;YouTube
   ↓
VPN Server
   ↓
🔒 VPN Tunnel
   ↓
💻 You
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  12. The Complete VPN Flow
&lt;/h1&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["💻 YOU&amp;lt;br/&amp;gt;Real IP"] 
    B["🔐 Encrypt"]
    C["🚇 VPN Tunnel"]
    D["🖥️ VPN SERVER&amp;lt;br/&amp;gt;VPN IP"]
    E["🌍 INTERNET"]
    F["🌐 WEBSITE"]

    A --&amp;gt; B --&amp;gt; C --&amp;gt; D --&amp;gt; E --&amp;gt; F

    F --&amp;gt; E --&amp;gt; D --&amp;gt; C --&amp;gt; B --&amp;gt; A&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Or remember it as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;YOU
 │
 │  🔐 encrypted
 ▼
╔══════════════════════╗
║    VPN TUNNEL        ║
╚══════════════════════╝
 │
 ▼
VPN SERVER
 │
 │
 ▼
INTERNET
 │
 ▼
WEBSITE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  13. Why Use a VPN?
&lt;/h1&gt;

&lt;p&gt;VPNs can be useful for several legitimate reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  ☕ Public Wi-Fi
&lt;/h3&gt;

&lt;p&gt;On an untrusted network, a VPN can provide an additional encrypted layer between your device and the VPN server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop
   │
   │ 🔒
   ▼
Public Wi-Fi
   │
   ▼
VPN Server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🌍 Change apparent IP location
&lt;/h3&gt;

&lt;p&gt;The website sees the VPN server's IP rather than your own public IP.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ Additional privacy
&lt;/h3&gt;

&lt;p&gt;It prevents your ISP from directly seeing the contents of traffic protected by the VPN tunnel.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Remote work
&lt;/h3&gt;

&lt;p&gt;Organizations commonly use VPN technologies to provide secure access to internal resources.&lt;/p&gt;




&lt;h1&gt;
  
  
  14. What a VPN Does NOT Do
&lt;/h1&gt;

&lt;p&gt;A VPN is &lt;strong&gt;not an invisibility cloak&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ It doesn't make you completely anonymous
&lt;/h3&gt;

&lt;p&gt;If you log into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Google
Instagram
GitHub
YouTube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;those services can still associate activity with your account.&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ It doesn't make malware harmless
&lt;/h3&gt;

&lt;p&gt;If you download malware while connected to a VPN:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPN + Malware = Still Malware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ❌ It doesn't stop phishing
&lt;/h3&gt;

&lt;p&gt;A VPN won't prevent you from entering your password into a fake website.&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ It doesn't automatically stop tracking
&lt;/h3&gt;

&lt;p&gt;Websites can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cookies&lt;/li&gt;
&lt;li&gt;Browser fingerprinting&lt;/li&gt;
&lt;li&gt;Logged-in accounts&lt;/li&gt;
&lt;li&gt;Tracking technologies&lt;/li&gt;
&lt;li&gt;Other identifiers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A VPN mainly changes the network-level source IP and protects the VPN leg of the connection.&lt;/p&gt;




&lt;h1&gt;
  
  
  15. VPN ≠ Tor
&lt;/h1&gt;

&lt;p&gt;Another common misconception is that a VPN and Tor are the same thing.&lt;/p&gt;

&lt;p&gt;They're not.&lt;/p&gt;

&lt;h3&gt;
  
  
  VPN
&lt;/h3&gt;



&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["You"] --&amp;gt; B["VPN Server"] --&amp;gt; C["Website"]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  Tor
&lt;/h3&gt;

&lt;p&gt;Simplified:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart LR
    A["You"] --&amp;gt; B["Entry Node"] --&amp;gt; C["Middle Node"] --&amp;gt; D["Exit Node"] --&amp;gt; E["Website"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;Tor routes traffic through multiple relays rather than relying on one VPN server.&lt;/p&gt;

&lt;p&gt;Each technology has different goals, trade-offs, and threat models.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. A VPN in One Diagram
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FkO0jk9YbjjpaAtIZG27rvH2-qZ0D2-5OmxnUC9uGFmbkasrS2T-JusiEZ6c1m6TvpLSIJMHVhD6XcKGdLxn8pg7egYxRW4ffJcRKtJviy9629LTSBM480tmufmOschoZp3BxxgJpDhubdE_igiZ-j4OE2ywxUUX-YC8Uh4qnqFbPNamBZDPXJCh2NpatJoZS%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FkO0jk9YbjjpaAtIZG27rvH2-qZ0D2-5OmxnUC9uGFmbkasrS2T-JusiEZ6c1m6TvpLSIJMHVhD6XcKGdLxn8pg7egYxRW4ffJcRKtJviy9629LTSBM480tmufmOschoZp3BxxgJpDhubdE_igiZ-j4OE2ywxUUX-YC8Uh4qnqFbPNamBZDPXJCh2NpatJoZS%3Fpurpose%3Dfullsize" alt="Image" width="1999" height="1999"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2F41EMNjiMHcpExXfhSoGw-lHD6kqLtVZ21ziiZAai9GhWPXTVSWcooyNu7a42SddV7kJcRx6kuv_CSDUaPsWWVLUbZ6wbjU27bu0GHmJLhF2aYk-qQJKlf53Jm0KpXYyCn264yjpeObDZ7E61mJG3UTKVUkso0PRi1ebJfykxFR3aAie7rQGIMTs8TqnphHI-%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2F41EMNjiMHcpExXfhSoGw-lHD6kqLtVZ21ziiZAai9GhWPXTVSWcooyNu7a42SddV7kJcRx6kuv_CSDUaPsWWVLUbZ6wbjU27bu0GHmJLhF2aYk-qQJKlf53Jm0KpXYyCn264yjpeObDZ7E61mJG3UTKVUkso0PRi1ebJfykxFR3aAie7rQGIMTs8TqnphHI-%3Fpurpose%3Dfullsize" alt="Image" width="1536" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FUT3j0Y38Ho5IbKAF5tVxbv2R_rDo-MN65IahTm37l04w6S1wN4edXpDGlj7Yhr03mImaDuOvwO6l1Zzs5vl9atiZ4tkBgQp7K2lbO1ji49oZQwyq2okJghJh0IS5FS6-fmYkkySvH3-4hvjApNtLHnB8JWdYxdbFMNtyZatyivejQEIymlrHnN0O8lhyw4fd%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FUT3j0Y38Ho5IbKAF5tVxbv2R_rDo-MN65IahTm37l04w6S1wN4edXpDGlj7Yhr03mImaDuOvwO6l1Zzs5vl9atiZ4tkBgQp7K2lbO1ji49oZQwyq2okJghJh0IS5FS6-fmYkkySvH3-4hvjApNtLHnB8JWdYxdbFMNtyZatyivejQEIymlrHnN0O8lhyw4fd%3Fpurpose%3Dfullsize" alt="Image" width="1201" height="1381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2Fw8KgcU2_ozsYfGBM1-WUf0mLtEMFJqrB0j4KOQLu_sRta9HgP4uMLM5T4zKTGXAaMxkbISYeDFtPARfKw1r0WxDVMlVq48frQr5bMZhk3HoV__1XtlBAyjUOmePUDvncU_GkB7pB3RJCH3yrNT0oii8bPTZK2lhoa2c6dbXYXIabqfIQAyvgObsVG39Ps-8N%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2Fw8KgcU2_ozsYfGBM1-WUf0mLtEMFJqrB0j4KOQLu_sRta9HgP4uMLM5T4zKTGXAaMxkbISYeDFtPARfKw1r0WxDVMlVq48frQr5bMZhk3HoV__1XtlBAyjUOmePUDvncU_GkB7pB3RJCH3yrNT0oii8bPTZK2lhoa2c6dbXYXIabqfIQAyvgObsVG39Ps-8N%3Fpurpose%3Dfullsize" alt="Image" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FvY4lrqHJxm8pvvedQTSr948nKwwOpQRUClnkN9JN6mjY35Tr0dRHA1YKz58EdEKo-06CFBrQcg2WdrbL6ol5GD_BMa_I536e_HFJG0fV_rcOQgEFajsEQwEcZedqb2WlUYcQbSqgpcccgMcOYFQZl4bwUyQsI6FNb4Zmx8NREFAHbI4RFLOUFWGOIq5bdIOe%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FvY4lrqHJxm8pvvedQTSr948nKwwOpQRUClnkN9JN6mjY35Tr0dRHA1YKz58EdEKo-06CFBrQcg2WdrbL6ol5GD_BMa_I536e_HFJG0fV_rcOQgEFajsEQwEcZedqb2WlUYcQbSqgpcccgMcOYFQZl4bwUyQsI6FNb4Zmx8NREFAHbI4RFLOUFWGOIq5bdIOe%3Fpurpose%3Dfullsize" alt="Image" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FnipRfaGmFtpJAdCyipoAov-S3z5PpV62XKLuSmrwLZNAL7oOTyITpEys6a0Snse89tmZ-fASMXKKVXvrqe9u7_cdraDI9NWGLmETMoF1Q8ES0DqON8o-fdTd0Tm9sRePZYON2lw2npGGbvTYiUwXW_yA4R1Du7dqkOplfjaqjo0oOXzkQ5Z9gKskySLIYZnL%3Fpurpose%3Dfullsize" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.openai.com%2Fstatic-rsc-4%2FnipRfaGmFtpJAdCyipoAov-S3z5PpV62XKLuSmrwLZNAL7oOTyITpEys6a0Snse89tmZ-fASMXKKVXvrqe9u7_cdraDI9NWGLmETMoF1Q8ES0DqON8o-fdTd0Tm9sRePZYON2lw2npGGbvTYiUwXW_yA4R1Du7dqkOplfjaqjo0oOXzkQ5Z9gKskySLIYZnL%3Fpurpose%3Dfullsize" alt="Image" width="1024" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The simplest way to remember it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             WITHOUT VPN

YOU ──────── ISP ───────── WEBSITE
 │                           │
 └────── Your IP ────────────┘


              WITH VPN

YOU ───🔐 ENCRYPTED─── VPN SERVER ─── WEBSITE
                         │
                         └── Website sees VPN IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  17. The Most Important Concept
&lt;/h1&gt;

&lt;p&gt;Don't think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"A VPN makes me invisible."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"A VPN changes the path my traffic takes and encrypts the connection between my device and the VPN server."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a much more accurate mental model.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Final Takeaway
&lt;/h1&gt;

&lt;p&gt;A VPN essentially works like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. You connect to a VPN server
             ↓
2. A secure encrypted VPN connection is established
             ↓
3. Your traffic travels through that connection
             ↓
4. The VPN server sends traffic to the internet
             ↓
5. Websites see the VPN server's IP
             ↓
6. Responses return through the VPN connection
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  In one sentence:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A VPN creates an encrypted tunnel between your device and a VPN server, routing your internet traffic through that server so your public IP is masked from the destinations you connect to.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the most important caveat:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;VPN ≠ anonymity.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a &lt;strong&gt;privacy and security tool&lt;/strong&gt;, not magic.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎬 If you're turning this into your short
&lt;/h2&gt;

&lt;p&gt;The article gives you the complete technical foundation. For the Reel, I'd reduce it to &lt;strong&gt;one story&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Normal internet → VPN tunnel appears → packet gets encrypted → VPN server forwards it → website sees VPN IP → “But VPN ≠ anonymity.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That gives you a much stronger visual narrative than trying to explain every VPN protocol in 60 seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo28j5j0b8gt9mwbwktb8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo28j5j0b8gt9mwbwktb8.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vpn</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>layers</category>
    </item>
    <item>
      <title>Why Are We Still Running AI on Computers That Were Never Built for AI?</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Wed, 29 Jul 2026 18:06:31 +0000</pubDate>
      <link>https://dev.to/sh20raj/why-are-we-still-running-ai-on-computers-that-were-never-built-for-ai-4j44</link>
      <guid>https://dev.to/sh20raj/why-are-we-still-running-ai-on-computers-that-were-never-built-for-ai-4j44</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Why Are We Still Running AI on Computers That Were Never Built for AI?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsalff2duspg59xfnt1sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsalff2duspg59xfnt1sc.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The next trillion-dollar breakthrough may not be a bigger language model—it may be an entirely new way of computing.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Question Nobody Seems to Be Asking
&lt;/h2&gt;

&lt;p&gt;Every few months, a new AI model is released.&lt;/p&gt;

&lt;p&gt;It has more parameters.&lt;/p&gt;

&lt;p&gt;Requires more GPUs.&lt;/p&gt;

&lt;p&gt;Consumes more electricity.&lt;/p&gt;

&lt;p&gt;Costs more money to train.&lt;/p&gt;

&lt;p&gt;And everyone celebrates because it's "more powerful."&lt;/p&gt;

&lt;p&gt;But what if we're solving the wrong problem?&lt;/p&gt;

&lt;p&gt;What if the real bottleneck isn't the AI model at all?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if it's the computer?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Imagine Teaching a Fish to Climb a Tree
&lt;/h2&gt;

&lt;p&gt;Today's computers were never designed for Artificial Intelligence.&lt;/p&gt;

&lt;p&gt;The CPU in your laptop was designed to run operating systems, browsers, spreadsheets, games, compilers, and thousands of other applications.&lt;/p&gt;

&lt;p&gt;GPUs were originally built to render graphics for video games.&lt;/p&gt;

&lt;p&gt;Then one day researchers discovered that GPUs happened to be incredibly good at matrix multiplication, the mathematical operation behind deep learning.&lt;/p&gt;

&lt;p&gt;That accidental discovery changed AI forever.&lt;/p&gt;

&lt;p&gt;But here's the question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why are we still relying on hardware that wasn't originally built for AI?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Every Generation Keeps Upgrading the Wrong Thing
&lt;/h2&gt;

&lt;p&gt;Every year, researchers make AI models bigger.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More parameters&lt;/li&gt;
&lt;li&gt;More data&lt;/li&gt;
&lt;li&gt;More GPUs&lt;/li&gt;
&lt;li&gt;More memory&lt;/li&gt;
&lt;li&gt;More electricity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's like trying to make a car faster by adding bigger engines every year while keeping the same inefficient roads.&lt;/p&gt;

&lt;p&gt;Maybe the road is the real problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  We've Been Thinking Inside the Same Box for Decades
&lt;/h2&gt;

&lt;p&gt;Modern computers still follow principles developed many decades ago.&lt;/p&gt;

&lt;p&gt;Information moves between memory and processors.&lt;/p&gt;

&lt;p&gt;The processor performs calculations.&lt;/p&gt;

&lt;p&gt;The result goes back into memory.&lt;/p&gt;

&lt;p&gt;This happens billions of times every second.&lt;/p&gt;

&lt;p&gt;Ironically, much of the energy isn't spent calculating.&lt;/p&gt;

&lt;p&gt;It's spent &lt;strong&gt;moving data around.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine walking across your house every single time you wanted to use a pencil.&lt;/p&gt;

&lt;p&gt;Eventually, walking becomes more exhausting than writing.&lt;/p&gt;

&lt;p&gt;Modern AI systems face a similar inefficiency.&lt;/p&gt;




&lt;h2&gt;
  
  
  What If We Started From Zero?
&lt;/h2&gt;

&lt;p&gt;Forget CPUs.&lt;/p&gt;

&lt;p&gt;Forget GPUs.&lt;/p&gt;

&lt;p&gt;Forget operating systems.&lt;/p&gt;

&lt;p&gt;Forget even the assumption that computers must be general-purpose machines.&lt;/p&gt;

&lt;p&gt;Instead, ask a completely different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"If Artificial Intelligence were invented before the modern computer, what kind of hardware would we build?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question changes everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Computer That Knows Only AI
&lt;/h2&gt;

&lt;p&gt;Imagine buying a computer that cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Chrome&lt;/li&gt;
&lt;li&gt;Run Windows&lt;/li&gt;
&lt;li&gt;Play games&lt;/li&gt;
&lt;li&gt;Compile code&lt;/li&gt;
&lt;li&gt;Browse files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It has only one purpose.&lt;/p&gt;

&lt;p&gt;Running AI.&lt;/p&gt;

&lt;p&gt;Nothing else.&lt;/p&gt;

&lt;p&gt;Every transistor.&lt;/p&gt;

&lt;p&gt;Every circuit.&lt;/p&gt;

&lt;p&gt;Every electrical pathway.&lt;/p&gt;

&lt;p&gt;Every memory cell.&lt;/p&gt;

&lt;p&gt;Optimised for neural computation.&lt;/p&gt;

&lt;p&gt;Would it outperform today's hardware?&lt;/p&gt;

&lt;p&gt;Possibly by a huge margin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Maybe We Should Redesign the Flow of Electricity
&lt;/h2&gt;

&lt;p&gt;Here's an even more radical thought.&lt;/p&gt;

&lt;p&gt;Instead of asking,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How can we make AI software faster?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ask,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How should electricity flow if its only job is intelligence?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sounds strange.&lt;/p&gt;

&lt;p&gt;But remember...&lt;/p&gt;

&lt;p&gt;Every computer is ultimately just controlled movement of electrons.&lt;/p&gt;

&lt;p&gt;Voltage changes.&lt;/p&gt;

&lt;p&gt;Current flows.&lt;/p&gt;

&lt;p&gt;Tiny switches turning on and off.&lt;/p&gt;

&lt;p&gt;We've accepted one particular way of organising those switches because history led us there.&lt;/p&gt;

&lt;p&gt;But history isn't the same as perfection.&lt;/p&gt;

&lt;p&gt;Perhaps there are entirely different electrical architectures that make AI dramatically more efficient.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bigger Isn't Always Smarter
&lt;/h2&gt;

&lt;p&gt;Today's AI race often looks like this:&lt;/p&gt;

&lt;p&gt;More GPUs.&lt;/p&gt;

&lt;p&gt;More memory.&lt;/p&gt;

&lt;p&gt;More power.&lt;/p&gt;

&lt;p&gt;More cost.&lt;/p&gt;

&lt;p&gt;But biology tells a different story.&lt;/p&gt;

&lt;p&gt;The human brain runs on roughly the power of a small light bulb.&lt;/p&gt;

&lt;p&gt;Yet it performs extraordinary feats of perception, reasoning and learning.&lt;/p&gt;

&lt;p&gt;Clearly, intelligence does not necessarily require enormous energy.&lt;/p&gt;

&lt;p&gt;Maybe our approach does.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Revolution May Not Be Another AI Model
&lt;/h2&gt;

&lt;p&gt;The next breakthrough might not be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A better Transformer&lt;/li&gt;
&lt;li&gt;A larger language model&lt;/li&gt;
&lt;li&gt;A trillion parameters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It might be a completely different computing architecture.&lt;/p&gt;

&lt;p&gt;One where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory and computation become the same thing.&lt;/li&gt;
&lt;li&gt;Information doesn't constantly travel back and forth.&lt;/li&gt;
&lt;li&gt;Hardware itself represents knowledge.&lt;/li&gt;
&lt;li&gt;Physics performs part of the computation naturally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of forcing AI to adapt to computers...&lt;/p&gt;

&lt;p&gt;...we finally build computers that adapt to AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Isn't Everyone Doing This?
&lt;/h2&gt;

&lt;p&gt;Some researchers are.&lt;/p&gt;

&lt;p&gt;Work is already underway in areas like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Neuromorphic computing&lt;/li&gt;
&lt;li&gt;Optical computing&lt;/li&gt;
&lt;li&gt;Analogue AI chips&lt;/li&gt;
&lt;li&gt;Compute-in-memory&lt;/li&gt;
&lt;li&gt;Memristor-based hardware&lt;/li&gt;
&lt;li&gt;New semiconductor materials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But replacing an entire computing ecosystem isn't easy.&lt;/p&gt;

&lt;p&gt;The world has spent more than half a century refining today's hardware and software stack.&lt;/p&gt;

&lt;p&gt;Creating a fundamentally new one requires breakthroughs in physics, materials science, computer architecture, manufacturing, algorithms and software—all at the same time.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Next Computing Revolution
&lt;/h2&gt;

&lt;p&gt;History shows that every major leap in computing came from changing the hardware.&lt;/p&gt;

&lt;p&gt;Vacuum tubes became transistors.&lt;/p&gt;

&lt;p&gt;Transistors became integrated circuits.&lt;/p&gt;

&lt;p&gt;CPUs were joined by GPUs.&lt;/p&gt;

&lt;p&gt;GPUs were joined by AI accelerators.&lt;/p&gt;

&lt;p&gt;Perhaps the next step is even more radical.&lt;/p&gt;

&lt;p&gt;A machine that isn't a "computer" in the traditional sense.&lt;/p&gt;

&lt;p&gt;A machine whose sole purpose is intelligence.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;For decades we've been asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"How do we make AI fit our computers?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe it's finally time to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"How do we build computers that fit AI?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The next trillion-dollar company may not build the smartest AI model.&lt;/p&gt;

&lt;p&gt;It may build the first computer that truly understands what AI needs from the very first electron.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>computers</category>
      <category>hardware</category>
      <category>physics</category>
    </item>
    <item>
      <title>System Design Concepts Explained Simply: The Complete Beginner-to-Advanced Guide</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Sat, 18 Jul 2026 11:27:38 +0000</pubDate>
      <link>https://dev.to/sh20raj/system-design-concepts-explained-simply-the-complete-beginner-to-advanced-guide-egg</link>
      <guid>https://dev.to/sh20raj/system-design-concepts-explained-simply-the-complete-beginner-to-advanced-guide-egg</guid>
      <description>&lt;p&gt;Absolutely. A single, polished Dev.to article like that is feasible.&lt;/p&gt;

&lt;p&gt;I would structure it as a &lt;strong&gt;complete beginner-to-advanced handbook&lt;/strong&gt; rather than just notes from the video.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proposed Structure
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Title&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  System Design Concepts Explained Simply: The Complete Beginner-to-Advanced Guide
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Length&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;~15,000–20,000 words&lt;/li&gt;
&lt;li&gt;35–45 sections&lt;/li&gt;
&lt;li&gt;40+ Mermaid diagrams&lt;/li&gt;
&lt;li&gt;Dev.to compatible Markdown&lt;/li&gt;
&lt;li&gt;SEO optimized&lt;/li&gt;
&lt;li&gt;Course-style explanations&lt;/li&gt;
&lt;li&gt;Based on the video but significantly expanded with interview insights&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Every topic would include
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;## What is it?

Simple explanation

Why do we need it?

Real-world example

How it works

Mermaid diagram

Advantages

Disadvantages

Interview questions

When to use it

Production examples
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Topics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What is System Design?&lt;/li&gt;
&lt;li&gt;Why Software Engineers need it&lt;/li&gt;
&lt;li&gt;Functional vs Non-functional requirements&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Computer Fundamentals
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;RAM&lt;/li&gt;
&lt;li&gt;Cache&lt;/li&gt;
&lt;li&gt;SSD&lt;/li&gt;
&lt;li&gt;HDD&lt;/li&gt;
&lt;li&gt;Memory Hierarchy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mermaid diagrams&lt;/p&gt;




&lt;h3&gt;
  
  
  Client-Server Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;graph LR
User --&amp;gt; Browser
Browser --&amp;gt; Internet
Internet --&amp;gt; Server
Server --&amp;gt; Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  DNS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sequenceDiagram
Browser-&amp;gt;&amp;gt;DNS Resolver: example.com
Resolver-&amp;gt;&amp;gt;Root Server: Query
Root-&amp;gt;&amp;gt;TLD Server: .com
TLD-&amp;gt;&amp;gt;Authoritative DNS
Authoritative DNS--&amp;gt;&amp;gt;Resolver
Resolver--&amp;gt;&amp;gt;Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  TCP Handshake
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sequenceDiagram
Client-&amp;gt;&amp;gt;Server:SYN
Server-&amp;gt;&amp;gt;Client:SYN ACK
Client-&amp;gt;&amp;gt;Server:ACK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  HTTP Request Lifecycle
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flowchart LR
Browser
DNS
LoadBalancer
API
Database

Browser--&amp;gt;DNS
DNS--&amp;gt;LoadBalancer
LoadBalancer--&amp;gt;API
API--&amp;gt;Database
Database--&amp;gt;API
API--&amp;gt;Browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  REST APIs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GET&lt;/li&gt;
&lt;li&gt;POST&lt;/li&gt;
&lt;li&gt;PUT&lt;/li&gt;
&lt;li&gt;DELETE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mermaid request flow&lt;/p&gt;




&lt;h3&gt;
  
  
  GraphQL
&lt;/h3&gt;

&lt;p&gt;Comparison with REST&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  gRPC
&lt;/h3&gt;

&lt;p&gt;Protocol Buffers&lt;/p&gt;

&lt;p&gt;Architecture&lt;/p&gt;




&lt;h3&gt;
  
  
  WebSockets
&lt;/h3&gt;

&lt;p&gt;Real-time communication&lt;/p&gt;

&lt;p&gt;Sequence diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Reverse Proxy
&lt;/h3&gt;

&lt;p&gt;NGINX&lt;/p&gt;

&lt;p&gt;Cloudflare&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Load Balancer
&lt;/h3&gt;

&lt;p&gt;Round Robin&lt;/p&gt;

&lt;p&gt;Least Connections&lt;/p&gt;

&lt;p&gt;IP Hash&lt;/p&gt;

&lt;p&gt;Architecture&lt;/p&gt;




&lt;h3&gt;
  
  
  CDN
&lt;/h3&gt;

&lt;p&gt;Cloudflare&lt;/p&gt;

&lt;p&gt;Fastly&lt;/p&gt;

&lt;p&gt;Akamai&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Caching
&lt;/h3&gt;

&lt;p&gt;Browser Cache&lt;/p&gt;

&lt;p&gt;Redis&lt;/p&gt;

&lt;p&gt;Memory Cache&lt;/p&gt;

&lt;p&gt;Database Cache&lt;/p&gt;

&lt;p&gt;Cache Aside&lt;/p&gt;

&lt;p&gt;Write Through&lt;/p&gt;

&lt;p&gt;Write Back&lt;/p&gt;

&lt;p&gt;Read Through&lt;/p&gt;

&lt;p&gt;Each with Mermaid flowcharts.&lt;/p&gt;




&lt;h3&gt;
  
  
  SQL Databases
&lt;/h3&gt;

&lt;p&gt;ACID&lt;/p&gt;

&lt;p&gt;Normalization&lt;/p&gt;

&lt;p&gt;Indexes&lt;/p&gt;

&lt;p&gt;Transactions&lt;/p&gt;

&lt;p&gt;Architecture&lt;/p&gt;




&lt;h3&gt;
  
  
  NoSQL
&lt;/h3&gt;

&lt;p&gt;MongoDB&lt;/p&gt;

&lt;p&gt;Redis&lt;/p&gt;

&lt;p&gt;Cassandra&lt;/p&gt;

&lt;p&gt;Document databases&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  SQL vs NoSQL
&lt;/h3&gt;

&lt;p&gt;Comparison table&lt;/p&gt;

&lt;p&gt;Decision tree&lt;/p&gt;




&lt;h3&gt;
  
  
  Database Replication
&lt;/h3&gt;

&lt;p&gt;Master&lt;/p&gt;

&lt;p&gt;Replica&lt;/p&gt;

&lt;p&gt;Failover&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Database Sharding
&lt;/h3&gt;

&lt;p&gt;Horizontal partitioning&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  CAP Theorem
&lt;/h3&gt;

&lt;p&gt;Consistency&lt;/p&gt;

&lt;p&gt;Availability&lt;/p&gt;

&lt;p&gt;Partition Tolerance&lt;/p&gt;

&lt;p&gt;Triangle illustration in Mermaid&lt;/p&gt;




&lt;h3&gt;
  
  
  Vertical Scaling
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Horizontal Scaling
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Message Queue
&lt;/h3&gt;

&lt;p&gt;Kafka&lt;/p&gt;

&lt;p&gt;RabbitMQ&lt;/p&gt;

&lt;p&gt;SQS&lt;/p&gt;

&lt;p&gt;Producer Consumer&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Event Driven Architecture
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  CI/CD
&lt;/h3&gt;

&lt;p&gt;GitHub&lt;/p&gt;

&lt;p&gt;Tests&lt;/p&gt;

&lt;p&gt;Docker&lt;/p&gt;

&lt;p&gt;Deploy&lt;/p&gt;

&lt;p&gt;Production&lt;/p&gt;

&lt;p&gt;Pipeline diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Monitoring
&lt;/h3&gt;

&lt;p&gt;Prometheus&lt;/p&gt;

&lt;p&gt;Grafana&lt;/p&gt;

&lt;p&gt;Sentry&lt;/p&gt;

&lt;p&gt;Logs&lt;/p&gt;

&lt;p&gt;Metrics&lt;/p&gt;

&lt;p&gt;Tracing&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Complete Production Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
↓

Cloudflare
↓

Load Balancer
↓

NGINX
↓

API Servers
↓

Redis
↓

Kafka
↓

Database
↓

Replica

↓

S3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Converted into Mermaid.&lt;/p&gt;




&lt;h3&gt;
  
  
  TinyURL Design
&lt;/h3&gt;

&lt;p&gt;Architecture&lt;/p&gt;

&lt;p&gt;Database&lt;/p&gt;

&lt;p&gt;Cache&lt;/p&gt;

&lt;p&gt;Load Balancer&lt;/p&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Instagram Design
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  WhatsApp Design
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  YouTube Design
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Netflix Design
&lt;/h3&gt;

&lt;p&gt;Diagram&lt;/p&gt;




&lt;h3&gt;
  
  
  Interview Cheat Sheet
&lt;/h3&gt;

&lt;p&gt;Common questions&lt;/p&gt;

&lt;p&gt;Tradeoffs&lt;/p&gt;

&lt;p&gt;Red flags&lt;/p&gt;

&lt;p&gt;Decision trees&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Learning roadmap&lt;/p&gt;

&lt;p&gt;Books&lt;/p&gt;

&lt;p&gt;Free resources&lt;/p&gt;

&lt;p&gt;Practice questions&lt;/p&gt;




&lt;h2&gt;
  
  
  Mermaid Diagrams Included
&lt;/h2&gt;

&lt;p&gt;The article would contain approximately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 Flowcharts&lt;/li&gt;
&lt;li&gt;8 Sequence diagrams&lt;/li&gt;
&lt;li&gt;6 Architecture diagrams&lt;/li&gt;
&lt;li&gt;5 State diagrams&lt;/li&gt;
&lt;li&gt;4 Entity Relationship diagrams&lt;/li&gt;
&lt;li&gt;5 GitGraph diagrams&lt;/li&gt;
&lt;li&gt;3 Journey diagrams&lt;/li&gt;
&lt;li&gt;3 Class diagrams&lt;/li&gt;
&lt;li&gt;2 Mind maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total:&lt;/strong&gt; around &lt;strong&gt;45–50 Mermaid diagrams&lt;/strong&gt;, all supported by Dev.to.&lt;/p&gt;

&lt;p&gt;This would read like a &lt;strong&gt;free course&lt;/strong&gt;, starting with computer fundamentals and progressing to real-world architectures, with each concept explained in simple language, accompanied by diagrams, production examples, and interview-focused insights rather than being just a transcript of the referenced video.&lt;/p&gt;

</description>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Best React UI Libraries Listed</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Tue, 30 Jun 2026 17:25:26 +0000</pubDate>
      <link>https://dev.to/sh20raj/best-react-ui-libraries-listed-ajh</link>
      <guid>https://dev.to/sh20raj/best-react-ui-libraries-listed-ajh</guid>
      <description>&lt;p&gt;If you're using &lt;strong&gt;Next.js + Tailwind + shadcn/ui&lt;/strong&gt;, here's what I'd consider the ultimate collection of UI resources in 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏆 S-Tier (Must Know)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Library&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;shadcn/ui&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Foundation for almost every modern React app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ReUI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dashboards, CRUD, Admin Panels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Magic UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Animations, effects, hero sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Aceternity UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Landing pages &amp;amp; premium interactions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cult UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apple-inspired components &amp;amp; AI apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kokonut UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;SaaS sections and polished blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⭐ A-Tier
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Origin UI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://originui.com" rel="noopener noreferrer"&gt;https://originui.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the cleanest shadcn-based libraries.&lt;/p&gt;

&lt;p&gt;Contains&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forms&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Pricing&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Dashboard components&lt;/li&gt;
&lt;li&gt;Navigation&lt;/li&gt;
&lt;li&gt;Empty states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Very underrated.&lt;/p&gt;




&lt;h3&gt;
  
  
  React Bits
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://reactbits.dev" rel="noopener noreferrer"&gt;https://reactbits.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazing animations.&lt;/p&gt;

&lt;p&gt;Includes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text Effects&lt;/li&gt;
&lt;li&gt;Cursor Effects&lt;/li&gt;
&lt;li&gt;Mouse Trails&lt;/li&gt;
&lt;li&gt;Magnetic Buttons&lt;/li&gt;
&lt;li&gt;Scroll Animations&lt;/li&gt;
&lt;li&gt;Loading Animations&lt;/li&gt;
&lt;li&gt;Interactive Cards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perfect companion to Magic UI.&lt;/p&gt;




&lt;h3&gt;
  
  
  Motion Primitives
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://motion-primitives.com" rel="noopener noreferrer"&gt;https://motion-primitives.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Very underrated.&lt;/p&gt;

&lt;p&gt;Beautiful components built with Motion.&lt;/p&gt;

&lt;p&gt;Examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Floating Dock&lt;/li&gt;
&lt;li&gt;Spotlight&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;Hero Sections&lt;/li&gt;
&lt;li&gt;Reveal Animations&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Animate UI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://animate-ui.com" rel="noopener noreferrer"&gt;https://animate-ui.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Focuses on animation-first components.&lt;/p&gt;

&lt;p&gt;Great replacement for writing custom Motion code.&lt;/p&gt;




&lt;h3&gt;
  
  
  21st.dev
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://21st.dev" rel="noopener noreferrer"&gt;https://21st.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Probably one of the coolest discoveries.&lt;/p&gt;

&lt;p&gt;Think of it as&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub for UI Components&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thousands of community components&lt;/li&gt;
&lt;li&gt;AI search&lt;/li&gt;
&lt;li&gt;Copy/Paste&lt;/li&gt;
&lt;li&gt;shadcn compatible&lt;/li&gt;
&lt;li&gt;React compatible&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Tailark
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://tailark.com" rel="noopener noreferrer"&gt;https://tailark.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Premium-looking Tailwind landing page blocks.&lt;/p&gt;

&lt;p&gt;Very underrated.&lt;/p&gt;




&lt;h3&gt;
  
  
  Preline UI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://preline.co" rel="noopener noreferrer"&gt;https://preline.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Excellent for&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Forms&lt;/li&gt;
&lt;li&gt;Enterprise Apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lots of production-ready components.&lt;/p&gt;




&lt;h3&gt;
  
  
  HyperUI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.hyperui.dev" rel="noopener noreferrer"&gt;https://www.hyperui.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Huge collection of&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tailwind Components&lt;/li&gt;
&lt;li&gt;Marketing Pages&lt;/li&gt;
&lt;li&gt;Ecommerce&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pure Tailwind.&lt;/p&gt;

&lt;p&gt;Very lightweight.&lt;/p&gt;




&lt;h3&gt;
  
  
  Sailboat UI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://sailboatui.com" rel="noopener noreferrer"&gt;https://sailboatui.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lots of beautiful Tailwind components.&lt;/p&gt;

&lt;p&gt;Very clean styling.&lt;/p&gt;

&lt;p&gt;Underrated. (&lt;a href="https://www.greatfrontend.com/blog/10-best-free-tailwind-based-component-libraries-and-ui-kits?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;GreatFrontEnd&lt;/a&gt;)&lt;/p&gt;




&lt;h3&gt;
  
  
  Flowbite
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://flowbite.com" rel="noopener noreferrer"&gt;https://flowbite.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great for&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;li&gt;Admin&lt;/li&gt;
&lt;li&gt;Charts&lt;/li&gt;
&lt;li&gt;Components&lt;/li&gt;
&lt;li&gt;Templates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Huge ecosystem. (&lt;a href="https://flowbite.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Flowbite&lt;/a&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  🎨 Inspiration Libraries
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Components.work
&lt;/h3&gt;

&lt;p&gt;Directory of UI libraries.&lt;/p&gt;




&lt;h3&gt;
  
  
  UI Layouts
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://uilayouts.dev" rel="noopener noreferrer"&gt;https://uilayouts.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Landing page inspiration.&lt;/p&gt;




&lt;h3&gt;
  
  
  Landbook
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://land-book.com" rel="noopener noreferrer"&gt;https://land-book.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Best landing page inspiration.&lt;/p&gt;




&lt;h3&gt;
  
  
  Lapa Ninja
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.lapa.ninja" rel="noopener noreferrer"&gt;https://www.lapa.ninja&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thousands of startup websites.&lt;/p&gt;




&lt;h3&gt;
  
  
  Godly
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://godly.website" rel="noopener noreferrer"&gt;https://godly.website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Award-winning websites.&lt;/p&gt;




&lt;h3&gt;
  
  
  Mobbin
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://mobbin.com" rel="noopener noreferrer"&gt;https://mobbin.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mobile UI inspiration.&lt;/p&gt;




&lt;h3&gt;
  
  
  Refero
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://refero.design" rel="noopener noreferrer"&gt;https://refero.design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web UI inspiration.&lt;/p&gt;




&lt;h3&gt;
  
  
  SaaSFrame
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.saasframe.io" rel="noopener noreferrer"&gt;https://www.saasframe.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SaaS landing pages.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎭 Background / Effects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Magic UI&lt;/li&gt;
&lt;li&gt;Aceternity UI&lt;/li&gt;
&lt;li&gt;Ali Imam Components&lt;/li&gt;
&lt;li&gt;React Bits&lt;/li&gt;
&lt;li&gt;Motion Primitives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These together cover almost every modern visual effect.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Icons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Lucide&lt;/li&gt;
&lt;li&gt;Tabler Icons&lt;/li&gt;
&lt;li&gt;Heroicons&lt;/li&gt;
&lt;li&gt;Phosphor Icons&lt;/li&gt;
&lt;li&gt;Remix Icons&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📊 Charts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tremor&lt;/li&gt;
&lt;li&gt;Recharts&lt;/li&gt;
&lt;li&gt;Nivo&lt;/li&gt;
&lt;li&gt;Visx&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 If I could only bookmark 20 websites
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;li&gt;ReUI&lt;/li&gt;
&lt;li&gt;Magic UI&lt;/li&gt;
&lt;li&gt;Aceternity UI&lt;/li&gt;
&lt;li&gt;Cult UI&lt;/li&gt;
&lt;li&gt;Kokonut UI&lt;/li&gt;
&lt;li&gt;Origin UI&lt;/li&gt;
&lt;li&gt;React Bits&lt;/li&gt;
&lt;li&gt;Motion Primitives&lt;/li&gt;
&lt;li&gt;Animate UI&lt;/li&gt;
&lt;li&gt;21st.dev&lt;/li&gt;
&lt;li&gt;Tailark&lt;/li&gt;
&lt;li&gt;Preline UI&lt;/li&gt;
&lt;li&gt;HyperUI&lt;/li&gt;
&lt;li&gt;Flowbite&lt;/li&gt;
&lt;li&gt;Components.work&lt;/li&gt;
&lt;li&gt;Mobbin&lt;/li&gt;
&lt;li&gt;Landbook&lt;/li&gt;
&lt;li&gt;Refero&lt;/li&gt;
&lt;li&gt;SaaSFrame&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This collection covers virtually everything needed for modern React/Next.js development: production-ready components, dashboards, marketing blocks, advanced animations, design inspiration, icons, and data visualization. Many of these libraries are widely used alongside shadcn/ui, while tools like Magic UI, Aceternity UI, ReUI, and 21st.dev have become especially popular in the current React ecosystem. (&lt;a href="https://adminlte.io/blog/shadcn-ui-block-libraries/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;adminlte.io&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why Hand-Drawn Portfolios Are Making a Comeback in 2026 ✏️</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Tue, 23 Jun 2026 19:25:09 +0000</pubDate>
      <link>https://dev.to/sh20raj/why-hand-drawn-portfolios-are-making-a-comeback-in-2026-58kh</link>
      <guid>https://dev.to/sh20raj/why-hand-drawn-portfolios-are-making-a-comeback-in-2026-58kh</guid>
      <description>&lt;h1&gt;
  
  
  Why Hand-Drawn Portfolios Are Making a Comeback in 2026 ✏️
&lt;/h1&gt;

&lt;p&gt;For years, the web has been obsessed with the same design trends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Glassmorphism&lt;/li&gt;
&lt;li&gt;Dark mode&lt;/li&gt;
&lt;li&gt;SaaS-style landing pages&lt;/li&gt;
&lt;li&gt;Minimal portfolios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;Most portfolios look nearly identical.&lt;/p&gt;

&lt;p&gt;That's why hand-drawn and illustrated websites are becoming increasingly popular again.&lt;/p&gt;

&lt;p&gt;They feel personal.&lt;/p&gt;

&lt;p&gt;They feel memorable.&lt;/p&gt;

&lt;p&gt;And most importantly—they don't look like everyone else's website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foszsqfujo7o16ceqizzj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foszsqfujo7o16ceqizzj.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Modern Portfolios
&lt;/h2&gt;

&lt;p&gt;Recruiters, clients, and visitors browse hundreds of portfolios every month.&lt;/p&gt;

&lt;p&gt;Most are forgotten within seconds.&lt;/p&gt;

&lt;p&gt;Not because the work is bad.&lt;/p&gt;

&lt;p&gt;Because nothing stands out.&lt;/p&gt;

&lt;p&gt;A portfolio should communicate personality before visitors even start reading.&lt;/p&gt;

&lt;p&gt;That's exactly where illustrated designs shine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet Kraft — Premium 3D Hand Drawn Portfolio Theme
&lt;/h2&gt;

&lt;p&gt;Kraft combines modern web design with handcrafted illustrations and 3D elements to create a portfolio that instantly feels unique.&lt;/p&gt;

&lt;p&gt;Instead of another generic template, visitors experience a creative environment that feels designed specifically for a human, not generated from a design trend.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/fRuEn344MVU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Hand-Drawn Design Works
&lt;/h2&gt;

&lt;p&gt;Hand-drawn interfaces create something most websites lack:&lt;/p&gt;

&lt;h3&gt;
  
  
  Personality
&lt;/h3&gt;

&lt;p&gt;People remember things that feel human.&lt;/p&gt;

&lt;p&gt;Illustrations naturally create emotional connection and curiosity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memorability
&lt;/h3&gt;

&lt;p&gt;A unique visual style helps visitors remember your portfolio long after they leave.&lt;/p&gt;

&lt;h3&gt;
  
  
  Better Branding
&lt;/h3&gt;

&lt;p&gt;Your portfolio becomes more than a project showcase.&lt;/p&gt;

&lt;p&gt;It becomes part of your personal brand.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2069502994731995442-310" src="https://platform.twitter.com/embed/Tweet.html?id=2069502994731995442"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2069502994731995442-310');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2069502994731995442&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  Perfect For
&lt;/h2&gt;

&lt;p&gt;This theme works exceptionally well for:&lt;/p&gt;

&lt;p&gt;🎨 Designers&lt;/p&gt;

&lt;p&gt;💻 Developers&lt;/p&gt;

&lt;p&gt;🚀 Startup Founders&lt;/p&gt;

&lt;p&gt;✍️ Creators&lt;/p&gt;

&lt;p&gt;🎬 Content Creators&lt;/p&gt;

&lt;p&gt;📸 Freelancers&lt;/p&gt;

&lt;p&gt;🎓 Students Building Their First Portfolio&lt;/p&gt;

&lt;p&gt;If your goal is standing out rather than blending in, this style can make a huge difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ Premium hand-drawn design&lt;/p&gt;

&lt;p&gt;✅ Modern 3D visual elements&lt;/p&gt;

&lt;p&gt;✅ Smooth animations&lt;/p&gt;

&lt;p&gt;✅ Mobile responsive&lt;/p&gt;

&lt;p&gt;✅ Fast loading&lt;/p&gt;

&lt;p&gt;✅ Professional layout&lt;/p&gt;

&lt;p&gt;✅ Easy customization&lt;/p&gt;

&lt;p&gt;✅ Unique visual identity&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13pmaxsyaug9j1v6213f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13pmaxsyaug9j1v6213f.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First Impressions Matter
&lt;/h2&gt;

&lt;p&gt;Most visitors decide whether to continue exploring a website within a few seconds.&lt;/p&gt;

&lt;p&gt;A memorable design buys attention.&lt;/p&gt;

&lt;p&gt;Attention creates engagement.&lt;/p&gt;

&lt;p&gt;Engagement creates opportunities.&lt;/p&gt;

&lt;p&gt;Whether you're looking for clients, internships, freelance work, or a full-time role, your portfolio is often your first impression.&lt;/p&gt;

&lt;p&gt;Make it count.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Preview
&lt;/h2&gt;

&lt;p&gt;🎥 Full Website Walkthrough - &lt;a href="https://kraft-portfolio-theme.surge.sh/" rel="noopener noreferrer"&gt;https://kraft-portfolio-theme.surge.sh/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2F30tools%2Fscriptly-assets%2Freleases%2Fdownload%2Fdwq%2Fportfolio.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2F30tools%2Fscriptly-assets%2Freleases%2Fdownload%2Fdwq%2Fportfolio.gif" alt="  GIF  " width="199" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 Additional Screenshots&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbyrvgoutkybladm44t1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbyrvgoutkybladm44t1x.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffseprqaxjte9rktfo7cr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffseprqaxjte9rktfo7cr.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13pmaxsyaug9j1v6213f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13pmaxsyaug9j1v6213f.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F65zqxli70nm9nfd43aqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F65zqxli70nm9nfd43aqq.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Kraft
&lt;/h2&gt;

&lt;p&gt;If you're tired of generic portfolio templates and want something that actually feels creative, check out Kraft Premium 3D Hand Drawn Portfolio Theme.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://scriptly.store/products/kraft-premium-3d-hand-drawn-portfolio-theme" rel="noopener noreferrer"&gt;https://scriptly.store/products/kraft-premium-3d-hand-drawn-portfolio-theme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best portfolio isn't always the most complex.&lt;/p&gt;

&lt;p&gt;It's the one people remember.&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stop Building Boring Portfolios: This Scroll-Driven Travel Portfolio Changes Everything 🌍</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Tue, 23 Jun 2026 19:19:17 +0000</pubDate>
      <link>https://dev.to/sh20raj/stop-building-boring-portfolios-this-scroll-driven-travel-portfolio-changes-everything-2ld0</link>
      <guid>https://dev.to/sh20raj/stop-building-boring-portfolios-this-scroll-driven-travel-portfolio-changes-everything-2ld0</guid>
      <description>&lt;h1&gt;
  
  
  Stop Building Boring Portfolios: This Scroll-Driven Travel Portfolio Changes Everything 🌍
&lt;/h1&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2069503536296296815-946" src="https://platform.twitter.com/embed/Tweet.html?id=2069503536296296815"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2069503536296296815-946');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2069503536296296815&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Most portfolios look identical.&lt;/p&gt;

&lt;p&gt;A hero section.&lt;br&gt;
A projects section.&lt;br&gt;
A contact form.&lt;/p&gt;

&lt;p&gt;And that's it.&lt;/p&gt;

&lt;p&gt;In a world where everyone is competing for attention, a portfolio should be more than a collection of links—it should be an experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fexao0a7haypi5lg94bx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fexao0a7haypi5lg94bx5.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes This Portfolio Different?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Panda Scroll Travel Animation Portfolio&lt;/strong&gt; transforms a simple portfolio into an interactive journey.&lt;/p&gt;

&lt;p&gt;As visitors scroll, the website comes alive with immersive animations, smooth transitions, and storytelling-inspired effects that keep users engaged from start to finish.&lt;/p&gt;

&lt;p&gt;Instead of simply showing your work, it helps you present it in a way people actually remember.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy1p9ibyb3is1mgd8x9k6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy1p9ibyb3is1mgd8x9k6.gif" alt=" " width="80" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Scroll-Based Storytelling Works
&lt;/h2&gt;

&lt;p&gt;Modern websites from top brands often use scroll-driven storytelling because it naturally captures attention.&lt;/p&gt;

&lt;p&gt;Benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Higher visitor engagement&lt;/li&gt;
&lt;li&gt;Longer session duration&lt;/li&gt;
&lt;li&gt;Better first impressions&lt;/li&gt;
&lt;li&gt;More memorable personal branding&lt;/li&gt;
&lt;li&gt;Premium visual appeal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When content unfolds as users scroll, curiosity keeps them moving forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9kgblgg4aqieoum59xv7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9kgblgg4aqieoum59xv7.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Perfect For
&lt;/h2&gt;

&lt;p&gt;This template is ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers&lt;/li&gt;
&lt;li&gt;Designers&lt;/li&gt;
&lt;li&gt;Freelancers&lt;/li&gt;
&lt;li&gt;Creative agencies&lt;/li&gt;
&lt;li&gt;Travel creators&lt;/li&gt;
&lt;li&gt;Students building a personal brand&lt;/li&gt;
&lt;li&gt;Anyone wanting a premium portfolio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're applying for internships, freelancing clients, or showcasing personal projects, a unique portfolio can help you stand out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ Stunning scroll animations&lt;/p&gt;

&lt;p&gt;✅ Smooth storytelling experience&lt;/p&gt;

&lt;p&gt;✅ Modern premium design&lt;/p&gt;

&lt;p&gt;✅ Mobile responsive&lt;/p&gt;

&lt;p&gt;✅ Fast loading&lt;/p&gt;

&lt;p&gt;✅ Easy customization&lt;/p&gt;

&lt;p&gt;✅ Clean code structure&lt;/p&gt;

&lt;p&gt;![Feature Showcase Screenshot Here]&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Buy Instead of Building?
&lt;/h2&gt;

&lt;p&gt;Creating a polished scroll-animation website from scratch requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Animation expertise&lt;/li&gt;
&lt;li&gt;Design skills&lt;/li&gt;
&lt;li&gt;Hours of tweaking&lt;/li&gt;
&lt;li&gt;Performance optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This template lets you skip weeks of work and launch much faster.&lt;/p&gt;

&lt;p&gt;Simply customize the content, add your projects, and make it your own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;🎥 &lt;strong&gt;GIF Preview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2F30tools%2Fcoders%2Freleases%2Fdownload%2Ffew%2Fezgif-2ee9d1440f71911b.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2F30tools%2Fcoders%2Freleases%2Fdownload%2Ffew%2Fezgif-2ee9d1440f71911b.gif" alt="GIF" width="80" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 &lt;strong&gt;Screenshots&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgm0b33dn197j09vf2p2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgm0b33dn197j09vf2p2m.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ubj80o66g53u4yb2qxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ubj80o66g53u4yb2qxq.png" alt=" " width="799" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjt01yxtyfvz41tymz6fu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjt01yxtyfvz41tymz6fu.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnucbzjatt5z229cx4x8z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnucbzjatt5z229cx4x8z.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5rnofhwl9c77g0touzys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5rnofhwl9c77g0touzys.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Get The Template
&lt;/h2&gt;

&lt;p&gt;If you're looking for a portfolio that actually leaves an impression, check out the Panda Scroll Travel Animation Portfolio.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://scriptly.store/products/panda-scroll-travel-animation-portfolio" rel="noopener noreferrer"&gt;https://scriptly.store/products/panda-scroll-travel-animation-portfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A portfolio isn't just where you display your work.&lt;/p&gt;

&lt;p&gt;It's often the first impression people have of you.&lt;/p&gt;

&lt;p&gt;Make it memorable.&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Can You Beat Alan Turing? A Solstice-Themed Psychological Deduction Game</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Fri, 19 Jun 2026 20:02:18 +0000</pubDate>
      <link>https://dev.to/sh20raj/can-you-beat-alan-turing-a-game-that-makes-you-question-every-conversation-1aeb</link>
      <guid>https://dev.to/sh20raj/can-you-beat-alan-turing-a-game-that-makes-you-question-every-conversation-1aeb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxewed0zz21ih6a4p9q98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxewed0zz21ih6a4p9q98.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Can You Beat Alan Turing? A Solstice-Themed Psychological Deduction Game
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Submission for the June Solstice Game Jam&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Categories&lt;/strong&gt;: Best Google AI Usage, Best Ode to Alan Turing&lt;/p&gt;

&lt;p&gt;Have you ever wondered if the person you're talking to on the internet is real? In 1950, Alan Turing asked the same question.&lt;/p&gt;

&lt;p&gt;For this Game Jam, I wanted to build something that wasn't just a traditional 2D platformer, but a psychological thriller disguised as a chat interface. &lt;/p&gt;

&lt;p&gt;Welcome to &lt;strong&gt;"Can You Beat Alan Turing?"&lt;/strong&gt; — a modern, browser-based reimagining of the Turing Test wrapped in the atmospheric metaphors of the June Solstice.&lt;/p&gt;
&lt;h2&gt;
  
  
  Play the Game
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://beat-alan-turing.pages.dev" rel="noopener noreferrer"&gt;&lt;strong&gt;Play it Live Here&lt;/strong&gt;&lt;/a&gt; &lt;br&gt;
&lt;em&gt;(Note: Headphones recommended for focus. The clock is ticking!)&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🌓 The Concept: Turing Meets the Solstice
&lt;/h2&gt;

&lt;p&gt;In this game, you are placed in a verification terminal. The Solstice Dial sits at the top of your screen, representing 10 available transmissions (questions). You must interrogate three distinct "character nodes" and guess which ones are human, and which are highly advanced AI.&lt;/p&gt;

&lt;p&gt;I wove the themes of the &lt;strong&gt;June Solstice&lt;/strong&gt; and &lt;strong&gt;Alan Turing&lt;/strong&gt; directly into the game mechanics and UI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Metaphor of Light&lt;/strong&gt;: Sunlight represents logical certainty; shadows represent doubt. The game's UI uses Framer Motion to slowly fade from a bright, golden amber (Zenith) into a deep twilight indigo as you use up your transmissions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Solstice Dial&lt;/strong&gt;: The countdown isn't a timer, it's a sun cycle. You only have 10 transmissions before the sun sets and you must submit your final verdict.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Bletchley Park Tribute&lt;/strong&gt;: One of the characters you can interrogate, Arthur Pendelton, is a retired cryptanalyst—a direct nod to Turing's monumental work at Bletchley Park. The other characters also reference Turing's philosophies on logic vs. emotion in their hidden dialogue.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🤖 Best Google AI Usage: "Cognitive Signature Analysis"
&lt;/h2&gt;

&lt;p&gt;This game isn't just a static chat app. It uses the &lt;strong&gt;Gemini 1.5 Flash API&lt;/strong&gt; to drive the core gameplay loop.&lt;/p&gt;

&lt;p&gt;Instead of just hooking up an LLM to a chat box, I used Gemini to create &lt;strong&gt;strict behavioral profiles&lt;/strong&gt;. I prompt Gemini to act either as a human with specific flaws (complaining about heat, making typos) or an AI trying &lt;em&gt;too hard&lt;/em&gt; to sound human (using overly precise mathematical syntax, avoiding contractions).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Signature Analysis Tool&lt;/strong&gt;&lt;br&gt;
If you get stuck, you can spend 2 of your precious 10 transmissions to use the &lt;strong&gt;Cognitive Signature Analysis&lt;/strong&gt; tool. This sends the entire chat history back to Gemini with a highly specific meta-prompt: &lt;em&gt;"Analyze this transcript and give a cryptic, poetic hint about whether the entity shows signs of a beating heart or silicon perfection."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;It's a "hint" system powered entirely by real-time LLM analysis of your own unique conversation! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note: If the API goes offline, I built a custom local "Simulator Mode" fallback that uses regex-based keyword parsing so the game is always 100% playable for the judges).&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠️ The Tech Stack
&lt;/h2&gt;

&lt;p&gt;I built this over the weekend using a modern web stack aimed at maximum visual polish and edge performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 14 (App Router)&lt;/strong&gt; &amp;amp; &lt;strong&gt;React&lt;/strong&gt;: For the core state machine and UI rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS v4&lt;/strong&gt;: Extensive use of custom glassmorphism, glowing amber/indigo borders, and CRT scanline overlays to create a "retro-futuristic terminal" vibe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framer Motion&lt;/strong&gt;: Smooth page transitions and UI micro-interactions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Pages&lt;/strong&gt;: The entire app, including the Gemini AI edge routes (&lt;code&gt;/api/chat&lt;/code&gt; and &lt;code&gt;/api/analyze&lt;/code&gt;), is deployed on Cloudflare Pages for instant global response times.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canvas Confetti&lt;/strong&gt;: Because every game needs a reward for winning!&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🐛 Challenges Faced
&lt;/h2&gt;

&lt;p&gt;The biggest challenge was "taming" the LLM. Gemini is so smart that it's actually hard to make it sound like a flawed, tired human barista (one of the characters). I spent hours tuning the system prompts. For example, to make the AI character have a "tell", I specifically instructed Gemini: &lt;em&gt;"You are an AI pretending to be a human. Your tell is that you NEVER use contractions and you accidentally use structural parallelism in your sentences."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Getting the UI to feel "alive" was also tricky. Implementing the custom text-scramble decryption effect for incoming AI messages really added that final layer of polish that makes it feel like a premium game rather than a web app.&lt;/p&gt;


&lt;h2&gt;
  
  
  🏁 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building this was an incredible experience. It really made me think about Turing's original 1950 paper. If we can build an AI that can convincingly complain about the summer heat and a sore back... have they passed the test?&lt;/p&gt;

&lt;p&gt;I hope you enjoy interrogating these characters as much as I enjoyed building them!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SH20RAJ" rel="noopener noreferrer"&gt;
        SH20RAJ
      &lt;/a&gt; / &lt;a href="https://github.com/SH20RAJ/beat-alan-turing" rel="noopener noreferrer"&gt;
        beat-alan-turing
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A polished, atmospheric browser-based deduction game built for the June Solstice Game Jam 2026. This project serves as a double submission for the Best Google AI Usage and Best Ode to Alan Turing prize categories.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Can You Beat Alan Turing?&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A polished, atmospheric browser-based deduction game built for the &lt;strong&gt;June Solstice Game Jam&lt;/strong&gt;. This project serves as a double submission for the &lt;strong&gt;Best Google AI Usage&lt;/strong&gt; and &lt;strong&gt;Best Ode to Alan Turing&lt;/strong&gt; prize categories.&lt;/p&gt;
&lt;p&gt;The core gameplay centers around a modern reimagining of the classic Turing Test, framed through the visual and narrative metaphors of the June Solstice (light vs. shadow, certainty vs. doubt, cycles).&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌓 The Concept &amp;amp; Jam Themes&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Best Ode to Alan Turing&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;In 1950, Alan Turing famously proposed the "Imitation Game" (now known as the Turing Test) as a practical answer to the question "Can machines think?".&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Gameplay&lt;/strong&gt;: You enter a verification chamber where you must communicate with three different mind nodes. Your task is to interrogate them, search for cognitive flaws, and guess who is human and who is AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Tribute&lt;/strong&gt;: The game features…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SH20RAJ/beat-alan-turing" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;My Failed Attempt&lt;/strong&gt;&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/Nw7w-OYvHxY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;/&lt;em&gt;You must play it with sound on.&lt;/em&gt;/&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy Solstice, and happy interrogating!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gamechallenge</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>How I Freed 50GB of Disk Space Using a Git Trick You’ve Never Heard Of</title>
      <dc:creator>Sh Raj</dc:creator>
      <pubDate>Fri, 19 Jun 2026 11:23:25 +0000</pubDate>
      <link>https://dev.to/sh20raj/how-i-freed-50gb-of-disk-space-using-a-git-trick-youve-never-heard-of-41l1</link>
      <guid>https://dev.to/sh20raj/how-i-freed-50gb-of-disk-space-using-a-git-trick-youve-never-heard-of-41l1</guid>
      <description>&lt;h1&gt;
  
  
  How I Freed 50GB of Disk Space Using a Git Trick You’ve Never Heard Of
&lt;/h1&gt;

&lt;p&gt;Are your local &lt;code&gt;~/Downloads&lt;/code&gt;, &lt;code&gt;~/Desktop&lt;/code&gt;, or &lt;code&gt;~/Documents&lt;/code&gt; folders slowly drowning under a mountain of screenshots, screen recordings, zoom logs, and random design mockups? &lt;/p&gt;

&lt;p&gt;If you are like most developers, designers, or technical writers, you probably have gigabytes of screen recordings and screenshots cluttering your local disk. You need to keep them for future reference, but they are eating away at your SSD, slowing down your system, and making backups a nightmare.&lt;/p&gt;

&lt;p&gt;You could buy iCloud or Google Drive storage. Or you could use this &lt;strong&gt;insane Git workflow&lt;/strong&gt; that stores your files permanently on GitHub, keeps them fully browsable on the web, but consumes &lt;strong&gt;exactly 0 bytes&lt;/strong&gt; of your local storage.&lt;/p&gt;

&lt;p&gt;In this deep-dive article, we will show you how to set up a permanent, automated media vault on GitHub using &lt;strong&gt;Git Sparse-Checkout&lt;/strong&gt; and &lt;strong&gt;Git LFS (Large File Storage)&lt;/strong&gt;—and provide a complete automation script and "Skill" file so your AI coding assistants can run it for you!&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: The Standard Backup Trap
&lt;/h2&gt;

&lt;p&gt;Usually, backing up files to GitHub means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pushing the files.&lt;/li&gt;
&lt;li&gt;Keeping them locally.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you delete them locally and commit the deletion, they disappear from GitHub's main directory browser. If you don't commit the deletion, your local working tree is dirty forever, and &lt;code&gt;git status&lt;/code&gt; screams at you with hundreds of red lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Changes not staged &lt;span class="k"&gt;for &lt;/span&gt;commit:
  deleted:    Screenshot 2026-04-12 at 5.32.00 PM.png
  deleted:    Screen Recording 2026-04-13 at 10.00.04 PM.mov
  ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is there a way to &lt;strong&gt;keep them on GitHub&lt;/strong&gt; but &lt;strong&gt;free up local space&lt;/strong&gt; while keeping your &lt;code&gt;git status&lt;/code&gt; clean?&lt;/p&gt;

&lt;p&gt;Yes. It's called &lt;strong&gt;Git Sparse-Checkout&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The Secret Weapon: Git Sparse-Checkout
&lt;/h2&gt;

&lt;p&gt;Sparse-checkout is a native Git feature designed for giant monorepos. It allows you to tell Git: &lt;em&gt;"Keep these files committed in the remote repository history, but do not physically download or extract them to my local machine."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Combine this with &lt;strong&gt;Git LFS&lt;/strong&gt; for large video files, and you have a free, infinite, automated cloud storage locker.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Step-by-Step Implementation Guide
&lt;/h2&gt;

&lt;p&gt;Let's walk through how to build this system from scratch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Initialize Git and Setup LFS (Large File Storage)
&lt;/h3&gt;

&lt;p&gt;If you have large recordings (over 100MB), standard GitHub commits will reject them due to GitHub's file size limits. We'll set up Git LFS first.&lt;/p&gt;

&lt;p&gt;Open your terminal in your media folder (e.g. &lt;code&gt;~/Documents&lt;/code&gt;) and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install Git LFS (on macOS)&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;git-lfs

&lt;span class="c"&gt;# 2. Initialize LFS in your folder&lt;/span&gt;
git lfs &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 3. Track heavy video formats with LFS&lt;/span&gt;
git lfs track &lt;span class="s2"&gt;"*.mov"&lt;/span&gt;
git lfs track &lt;span class="s2"&gt;"*.mp4"&lt;/span&gt;

&lt;span class="c"&gt;# 4. Commit LFS configurations&lt;/span&gt;
git add .gitattributes
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"setup: track video formats via LFS"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Configure Sparse-Checkout (Exclusion Patterns)
&lt;/h3&gt;

&lt;p&gt;Now, we set up the exclusion rules. We want to tell Git to exclude the folders where we store our images and videos locally, but keep the index, readme, and scripts checked out.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Enable sparse-checkout in non-cone (custom pattern) mode&lt;/span&gt;
git sparse-checkout init &lt;span class="nt"&gt;--no-cone&lt;/span&gt;

&lt;span class="c"&gt;# 2. Set the exclusion rules in Git's sparse config&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'/*
!/images/
!/videos/'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; .git/info/sparse-checkout

&lt;span class="c"&gt;# 3. Apply the rules&lt;/span&gt;
git sparse-checkout reapply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What does this pattern mean?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/*&lt;/code&gt; checks out all files at the root level (like &lt;code&gt;README.md&lt;/code&gt;, &lt;code&gt;INDEX.md&lt;/code&gt;, &lt;code&gt;backup.sh&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;!/images/&lt;/code&gt; and &lt;code&gt;!/videos/&lt;/code&gt; tells Git &lt;strong&gt;never&lt;/strong&gt; to check out or keep the &lt;code&gt;images&lt;/code&gt; or &lt;code&gt;videos&lt;/code&gt; directories on your local drive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any existing files matching these directories will be &lt;strong&gt;deleted instantly&lt;/strong&gt; from your local disk, but remain safe on GitHub!&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Step 3: Automate It (The One-Click Script)
&lt;/h2&gt;

&lt;p&gt;To make this effortless, here is a bash script (&lt;code&gt;backup.sh&lt;/code&gt;) that automates the entire flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scans the root directory for new screenshots or videos.&lt;/li&gt;
&lt;li&gt;Moves them automatically into folders organized by date and type (&lt;code&gt;images/YYYY-MM/&lt;/code&gt; and &lt;code&gt;videos/YYYY-MM/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Commits and pushes them to GitHub.&lt;/li&gt;
&lt;li&gt;Grabs the &lt;strong&gt;full 40-character commit SHA&lt;/strong&gt; (important to avoid raw usercontent 404s).&lt;/li&gt;
&lt;li&gt;Rebuilds a markdown catalog (&lt;code&gt;INDEX.md&lt;/code&gt;) listing download URLs.&lt;/li&gt;
&lt;li&gt;Reapplies the sparse-checkout rules to wipe the local files and reclaim your disk space!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is the script &lt;code&gt;backup.sh&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class="c"&gt;# backup.sh - Automatically organize, backup new screenshots/videos to subfolders, update INDEX.md, push to GitHub, and clean up local space.&lt;/span&gt;

&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;

&lt;span class="nv"&gt;REPO_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_REPO"&lt;/span&gt;
&lt;span class="nv"&gt;INDEX_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"INDEX.md"&lt;/span&gt;
&lt;span class="nv"&gt;BRANCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"main"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🔍 Scanning for new media files to back up..."&lt;/span&gt;

&lt;span class="c"&gt;# Find new untracked/modified media files at root or inside subdirs&lt;/span&gt;
&lt;span class="nv"&gt;NEW_FILES&lt;/span&gt;&lt;span class="o"&gt;=()&lt;/span&gt;
&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nv"&gt;IFS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;read&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt; file&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    &lt;/span&gt;&lt;span class="nv"&gt;relative&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="p"&gt;#./&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$relative&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ &lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;png|jpg|jpeg|mov|mp4&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;NEW_FILES+&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$relative&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;fi
done&lt;/span&gt; &amp;lt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;git status &lt;span class="nt"&gt;--porcelain&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'^\?\?|^ M'&lt;/span&gt; | &lt;span class="nb"&gt;cut&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt; &lt;span class="nt"&gt;-c4-&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-z&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nv"&gt;TOTAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${#&lt;/span&gt;&lt;span class="nv"&gt;NEW_FILES&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$TOTAL&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-eq&lt;/span&gt; 0 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ No new media files found to back up."&lt;/span&gt;
    &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📊 Found &lt;/span&gt;&lt;span class="nv"&gt;$TOTAL&lt;/span&gt;&lt;span class="s2"&gt; new files to process."&lt;/span&gt;

&lt;span class="c"&gt;# Move files to date-based folders if they are at the root level&lt;/span&gt;
&lt;span class="nv"&gt;MOVED_FILES&lt;/span&gt;&lt;span class="o"&gt;=()&lt;/span&gt;
&lt;span class="k"&gt;for &lt;/span&gt;f &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NEW_FILES&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="s2"&gt;"/"&lt;/span&gt;&lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
        &lt;span class="c"&gt;# Parse date from name or default to current year-month&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ &lt;span class="o"&gt;[&lt;/span&gt;0-9]&lt;span class="o"&gt;{&lt;/span&gt;4&lt;span class="o"&gt;}&lt;/span&gt;-[0-9]&lt;span class="o"&gt;{&lt;/span&gt;2&lt;span class="o"&gt;}&lt;/span&gt;-[0-9]&lt;span class="o"&gt;{&lt;/span&gt;2&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
            &lt;/span&gt;&lt;span class="nv"&gt;DATE_STR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;BASH_REMATCH&lt;/span&gt;&lt;span class="p"&gt;[0]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
            &lt;span class="nv"&gt;YM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DATE_STR&lt;/span&gt;:0:7&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="c"&gt;# YYYY-MM&lt;/span&gt;
        &lt;span class="k"&gt;else
            &lt;/span&gt;&lt;span class="nv"&gt;YM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="s1"&gt;'+%Y-%m'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Fallback to current year-month&lt;/span&gt;
        &lt;span class="k"&gt;fi

        if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ &lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;png|jpg|jpeg&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
            &lt;/span&gt;&lt;span class="nv"&gt;dest_dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"images/&lt;/span&gt;&lt;span class="nv"&gt;$YM&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;else
            &lt;/span&gt;&lt;span class="nv"&gt;dest_dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"videos/&lt;/span&gt;&lt;span class="nv"&gt;$YM&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;fi

        &lt;/span&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest_dir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="nv"&gt;dest_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest_dir&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📂 Moving root file: &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$dest_path&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest_path&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        git add &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest_path&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        MOVED_FILES+&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dest_path&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else
        &lt;/span&gt;git add &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        MOVED_FILES+&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;fi
done&lt;/span&gt;

&lt;span class="c"&gt;# Commit and Push the files first to get the commit SHA&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"💾 Committing new organized files..."&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"backup: add &lt;/span&gt;&lt;span class="nv"&gt;$TOTAL&lt;/span&gt;&lt;span class="s2"&gt; new files organized by date"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🚀 Pushing files to GitHub..."&lt;/span&gt;
git push origin &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BRANCH&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Get the full 40-character commit SHA&lt;/span&gt;
&lt;span class="nv"&gt;COMMIT_SHA&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git rev-parse HEAD&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✅ Pushed successfully! Commit: &lt;/span&gt;&lt;span class="nv"&gt;$COMMIT_SHA&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Rebuild INDEX.md using Python to keep it clean and ordered&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"📝 Rebuilding INDEX.md..."&lt;/span&gt;
python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
import os
import urllib.parse
from datetime import datetime

repo_url_base = '&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;REPO_URL&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;COMMIT_SHA&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;'
index_file_path = '&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;INDEX_FILE&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;'

def get_human_size(path):
    try:
        size = os.path.getsize(path)
        if size &amp;gt;= 1073741824:
            return f'{size / 1073741824:.1f} GB'
        elif size &amp;gt;= 1048576:
            return f'{size / 1048576:.1f} MB'
        elif size &amp;gt;= 1024:
            return f'{size / 1024:.1f} KB'
        else:
            return f'{size} B'
    except Exception:
        return 'Unknown'

# Collect images
images = []
for root, dirs, files in os.walk('images'):
    for f in files:
        if f.endswith('.png'):
            relative_path = os.path.join(root, f)
            images.append(relative_path)
images.sort()

# Collect videos
videos = []
for root, dirs, files in os.walk('videos'):
    for f in files:
        if f.endswith('.mov') or f.endswith('.mp4'):
            relative_path = os.path.join(root, f)
            videos.append(relative_path)
videos.sort()

# Read the first commit SHA for other files
first_sha = os.popen('git log --oneline | tail -1 | cut -d&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; -f1').read().strip()

with open(index_file_path, 'w') as f_obj:
    f_obj.write('# 📁 Documents Index&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('&amp;gt; Auto-generated index of all files backed up to this repository.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('&amp;gt; Use the Raw URL to download any file, even after local deletion.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write(f'&amp;gt; Generated on: {datetime.now().strftime(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;%Y-%m-%d %H:%M:%S&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;)}&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;')

    f_obj.write('## 🖼️ Images (PNG Screenshots)&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('| # | File | Size | Commit | Raw URL |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('|---|------|------|--------|---------|&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    for idx, path in enumerate(images, 1):
        size = get_human_size(path)
        encoded = urllib.parse.quote(path, safe='/')
        f_obj.write(f'| {idx} | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;path&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | {size} | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;COMMIT_SHA[:7]&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | [Download]({repo_url_base}/{encoded}) |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')

    f_obj.write('&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;## 🎥 Videos (Screen Recordings)&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('| # | File | Size | Commit | Raw URL |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('|---|------|------|--------|---------|&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    for idx, path in enumerate(videos, 1):
        size = get_human_size(path)
        encoded = urllib.parse.quote(path, safe='/')
        f_obj.write(f'| {idx} | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;path&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | {size} | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;COMMIT_SHA[:7]&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | [Download]({repo_url_base}/{encoded}) |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')

    f_obj.write('&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;## 📄 Other Files&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('| # | File | Size | Commit | Raw URL |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write('|---|------|------|--------|---------|&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
    f_obj.write(f'| 1 | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;hls-video.excalidraw&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | {get_human_size(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hls-video.excalidraw&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;)} | &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;first_sha&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt; | [Download]({repo_url_base}/hls-video.excalidraw) |&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;')
"&lt;/span&gt;

&lt;span class="c"&gt;# Commit and Push INDEX.md&lt;/span&gt;
git add &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$INDEX_FILE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"index: update INDEX.md with new backup file mappings"&lt;/span&gt;
git push origin &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BRANCH&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Reapply sparse checkout to reclaim local disk space&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🧹 Reclaiming local disk space (running sparse-checkout)..."&lt;/span&gt;
git sparse-checkout reapply

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"🎉 Backup complete! Local space is cleared, and files are safe on GitHub."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make it executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x backup.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🤖 Step 4: The AI Assistant "Skill" File
&lt;/h2&gt;

&lt;p&gt;If you are using AI agents (like Claude, Gemini, or Copilot) to help you develop, they can automate this backup system completely. By checking in a &lt;strong&gt;Skill Markdown&lt;/strong&gt; file to your repository, future agents will immediately understand the repository rules and can safely execute the backups for you!&lt;/p&gt;

&lt;p&gt;Here is the exact &lt;strong&gt;&lt;code&gt;backup.skill.md&lt;/code&gt;&lt;/strong&gt; file you should add to the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Skill: Organized Documents Backup and Space Reclaiming&lt;/span&gt;

This skill provides instructions for AI coding agents to back up new screenshots, screen recordings, and media files from the local computer to the GitHub repository using Git LFS and Git Sparse-Checkout, keeping files organized by date and type.

&lt;span class="gu"&gt;## 📁 Repository Directory Structure&lt;/span&gt;

Files are organized in folders automatically by date and type:
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="sb"&gt;`/images/YYYY-MM/`&lt;/span&gt; — Screenshot PNGs grouped by month
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="sb"&gt;`/videos/YYYY-MM/`&lt;/span&gt; — Screen Recording MOVs and MP4s grouped by month
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## 🛠️ How to Back Up New Files (Agent Flow)&lt;/span&gt;

If the user drops new files into the folder, you should run the automated script.

&lt;span class="gu"&gt;### Option A: Automated (Recommended)&lt;/span&gt;
Run the backup script directly:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
./backup.sh&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;This script will:
1. Detect any untracked or modified images/videos.
2. Automatically parse dates from filenames (e.g. `2026-04-12`) and move them to their respective `images/YYYY-MM/` or `videos/YYYY-MM/` subdirectory.
3. Stage, commit, and push them to GitHub.
4. Fetch the **full 40-character commit SHA** (required for raw GitHub usercontent links to prevent 404s).
5. Rebuild `INDEX.md` using python to catalog all files with their paths, sizes, and direct raw download links.
6. Commit and push the updated `INDEX.md`.
7. Run `git sparse-checkout reapply` to clean up the local disk.

### Option B: Manual Execution
If the script needs debugging or you want to run it manually:

1. **Move files into directories**:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   mkdir -p images/YYYY-MM&lt;br&gt;
   git mv "Screenshot YYYY-MM-DD ...png" images/YYYY-MM/&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2. **Stage and commit the new files**:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   git commit -m "backup: add new files"&lt;br&gt;
   git push origin main&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3. **Retrieve the full commit SHA**:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   COMMIT_SHA=$(git rev-parse HEAD)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4. **Format entry for INDEX.md**:
   Add rows to `INDEX.md` under the appropriate table header:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
markdown&lt;br&gt;
   | # | File | Size | Commit | Raw URL |&lt;br&gt;
   |---|------|------|--------|---------|&lt;br&gt;
   | [Index] | &lt;code&gt;images/YYYY-MM/[Filename]&lt;/code&gt; | [Size MB] MB | &lt;code&gt;[Commit SHA]&lt;/code&gt; | &lt;a href="https://raw.githubusercontent.com/USER/REPO/[Full%20COMMIT_SHA]/images/YYYY-MM/[URL%20Encoded%20Filename]" rel="noopener noreferrer"&gt;Download&lt;/a&gt; |&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;5. **Push INDEX.md**:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   git add INDEX.md&lt;br&gt;
   git commit -m "index: update entries"&lt;br&gt;
   git push origin main&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;6. **Reapply sparse checkout to delete local files**:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   git sparse-checkout reapply&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

## 📥 How to Restore a File for the User

If the user requests to restore one or more files to their computer:
1. Locate the file in `INDEX.md` to get its path.
2. Tell Git to stop skipping the file:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   git sparse-checkout add "images/YYYY-MM/filename.png"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   *Note: This will immediately download the file from GitHub to the local directory.*
3. To exclude it again after use:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
   git sparse-checkout reapply&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
shell&lt;/p&gt;


&lt;h2&gt;
  
  
  💡 How This Helps You: 5 Real-World Benefits
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Zero Disk Usage
&lt;/h3&gt;

&lt;p&gt;The main benefit. Your local project folders stay incredibly clean and compact, preserving your SSD life and leaving space for active coding projects.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Fully Browsable on GitHub
&lt;/h3&gt;

&lt;p&gt;Unlike standard backup archives (like &lt;code&gt;.zip&lt;/code&gt; or &lt;code&gt;.tar&lt;/code&gt;), your files aren't locked away in a compressed format. You can click through &lt;code&gt;/images/2026-06/&lt;/code&gt; on GitHub's website and browse them instantly.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Bulletproof, Unbreakable Links
&lt;/h3&gt;

&lt;p&gt;By pointing the download URLs in &lt;code&gt;INDEX.md&lt;/code&gt; to the &lt;strong&gt;full commit SHA&lt;/strong&gt; (&lt;code&gt;/Documents/a2b2ed5a43.../images/file.png&lt;/code&gt;) instead of &lt;code&gt;/main/&lt;/code&gt;, these links will work &lt;strong&gt;forever&lt;/strong&gt;. Even if you delete or modify the files on the &lt;code&gt;main&lt;/code&gt; branch later to clean up remote storage, the historical commit raw URLs remain functional.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Zero Maintenance for Future Assistant Agents
&lt;/h3&gt;

&lt;p&gt;If you use coding agents, you can check in the &lt;code&gt;backup.skill.md&lt;/code&gt; file. Future agents entering your workspace will automatically understand how to restore files or perform backups without you having to guide them.&lt;/p&gt;
&lt;h3&gt;
  
  
  5. Restore Files Instantly
&lt;/h3&gt;

&lt;p&gt;Need a file back? You don't have to download it from a web browser. Just tell Git to stop skipping it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git sparse-checkout add &lt;span class="s2"&gt;"images/2026-04/screenshot.png"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git will instantly fetch it from GitHub and drop it back into your local folder. Once you are done, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git sparse-checkout reapply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And it disappears from your disk again!&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Conclusion
&lt;/h2&gt;

&lt;p&gt;Stop letting screenshots and screen recordings choke your machine's performance. Git was built to track changes, but with &lt;strong&gt;Sparse-Checkout&lt;/strong&gt;, it becomes a premium, automated, zero-local-footprint cloud drive.&lt;/p&gt;

&lt;p&gt;Have you ever used sparse checkout? Let me know in the comments how you manage local file clutter!&lt;/p&gt;

</description>
      <category>git</category>
      <category>space</category>
      <category>mac</category>
      <category>cloudstorage</category>
    </item>
  </channel>
</rss>
