<?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: Avinash Kanneboyina</title>
    <description>The latest articles on DEV Community by Avinash Kanneboyina (@avinash_kanneboyina_0c24b).</description>
    <link>https://dev.to/avinash_kanneboyina_0c24b</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%2F4109625%2F4e2cd549-8122-4545-8409-b113b41ad198.png</url>
      <title>DEV Community: Avinash Kanneboyina</title>
      <link>https://dev.to/avinash_kanneboyina_0c24b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/avinash_kanneboyina_0c24b"/>
    <language>en</language>
    <item>
      <title>I Built a File Organizer Without Installing a Single Package</title>
      <dc:creator>Avinash Kanneboyina</dc:creator>
      <pubDate>Fri, 04 Sep 2026 11:29:07 +0000</pubDate>
      <link>https://dev.to/avinash_kanneboyina_0c24b/i-built-a-file-organizer-without-installing-a-single-package-3j2c</link>
      <guid>https://dev.to/avinash_kanneboyina_0c24b/i-built-a-file-organizer-without-installing-a-single-package-3j2c</guid>
      <description>&lt;h1&gt;
  
  
  🧹 I Built a File Organizer Without Installing a Single Package
&lt;/h1&gt;

&lt;p&gt;What happens when you're told to build a useful developer tool — but you &lt;strong&gt;cannot install a single third-party runtime package&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;That was the challenge I took on during the &lt;strong&gt;Zero Dependency 2026 Hackathon&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of reaching for frameworks and libraries I normally use, I built &lt;strong&gt;CleanDesk&lt;/strong&gt;, a file organization and analysis tool using only &lt;strong&gt;Python's standard library&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://cleandesk.onrender.com/" rel="noopener noreferrer"&gt;https://cleandesk.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/avinashkanneboyina-sys/CleanDesk" rel="noopener noreferrer"&gt;https://github.com/avinashkanneboyina-sys/CleanDesk&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What is CleanDesk?
&lt;/h2&gt;

&lt;p&gt;CleanDesk is a file organization and analysis tool designed to help clean up messy folders.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;📊 Analyze files and folders&lt;/li&gt;
&lt;li&gt;🗂️ Organize files by type&lt;/li&gt;
&lt;li&gt;👀 Preview changes before moving anything&lt;/li&gt;
&lt;li&gt;🔍 Find duplicate files&lt;/li&gt;
&lt;li&gt;📦 Detect large files&lt;/li&gt;
&lt;li&gt;🔎 Search for files&lt;/li&gt;
&lt;li&gt;📄 Generate JSON reports&lt;/li&gt;
&lt;li&gt;↩️ Undo organization&lt;/li&gt;
&lt;li&gt;🌐 Provide a web-based demo&lt;/li&gt;
&lt;li&gt;🧪 Run automated tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are zero third-party runtime dependencies.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 The Zero-Dependency Challenge
&lt;/h2&gt;

&lt;p&gt;Normally, when building a Python application, it's easy to install a package whenever a problem appears.&lt;/p&gt;

&lt;p&gt;Need a better CLI?&lt;/p&gt;

&lt;p&gt;Install a CLI framework.&lt;/p&gt;

&lt;p&gt;Need file utilities?&lt;/p&gt;

&lt;p&gt;Install a package.&lt;/p&gt;

&lt;p&gt;Need a web server?&lt;/p&gt;

&lt;p&gt;Install Flask or another framework.&lt;/p&gt;

&lt;p&gt;Need better testing?&lt;/p&gt;

&lt;p&gt;Install another testing tool.&lt;/p&gt;

&lt;p&gt;But this hackathon changed the rules.&lt;/p&gt;

&lt;p&gt;I had to ask myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can I build this functionality myself using only what Python already provides?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That turned out to be much more interesting than simply installing libraries.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 What I Would Normally Install
&lt;/h2&gt;

&lt;p&gt;Here's the interesting comparison:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Typical Choice&lt;/th&gt;
&lt;th&gt;CleanDesk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Command-line interface&lt;/td&gt;
&lt;td&gt;Click / Typer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;argparse&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File handling&lt;/td&gt;
&lt;td&gt;External utilities&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pathlib&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moving files&lt;/td&gt;
&lt;td&gt;File-management libraries&lt;/td&gt;
&lt;td&gt;&lt;code&gt;shutil&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duplicate detection&lt;/td&gt;
&lt;td&gt;Duplicate-file packages&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hashlib&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JSON reports&lt;/td&gt;
&lt;td&gt;External utilities&lt;/td&gt;
&lt;td&gt;&lt;code&gt;json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web server&lt;/td&gt;
&lt;td&gt;Flask / FastAPI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http.server&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;pytest&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unittest&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Instead of installing these packages, I used Python's standard library and implemented the functionality myself.&lt;/p&gt;

&lt;p&gt;That sounds simple when written in a table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It wasn't.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ Replacing the Dependencies
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Building the CLI
&lt;/h2&gt;

&lt;p&gt;A normal project might use Click or Typer to create a command-line interface.&lt;/p&gt;

&lt;p&gt;For CleanDesk, I used:&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;argparse&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allowed me to build commands such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;analyze
organize
duplicates
large
search
report
undo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result is a CLI that can be used directly from the terminal without installing another package.&lt;/p&gt;




&lt;h2&gt;
  
  
  📁 2. File Organization with pathlib and shutil
&lt;/h2&gt;

&lt;p&gt;File management is the core of CleanDesk.&lt;/p&gt;

&lt;p&gt;I used:&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;pathlib&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to work with directories and files.&lt;/p&gt;

&lt;p&gt;For moving files, I used:&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;shutil&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CleanDesk can inspect a folder, determine the appropriate category, create destination folders, and move files.&lt;/p&gt;

&lt;p&gt;For example, a messy folder might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Messy Folder
│
├── photo.jpg
├── music.mp3
├── report.pdf
├── video.mp4
└── notes.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CleanDesk can organize it into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Images/
Audio/
Documents/
Videos/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn a messy directory into an organized one automatically.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  👀 3. Preview Mode
&lt;/h1&gt;

&lt;p&gt;One feature I particularly wanted was &lt;strong&gt;safe organization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Moving files automatically can be risky.&lt;/p&gt;

&lt;p&gt;So I implemented a preview mode.&lt;/p&gt;

&lt;p&gt;Instead of immediately moving files, CleanDesk shows what it would do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Would move:

photo.jpg       -&amp;gt; Images/
music.mp3       -&amp;gt; Audio/
report.pdf      -&amp;gt; Documents/
video.mp4       -&amp;gt; Videos/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing is actually moved.&lt;/p&gt;

&lt;p&gt;This gives the user a chance to inspect the proposed changes before committing them.&lt;/p&gt;

&lt;p&gt;This small feature makes automated file organization much safer.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 4. Duplicate Detection with SHA-256
&lt;/h1&gt;

&lt;p&gt;Duplicate detection was another feature where I could have used an external package.&lt;/p&gt;

&lt;p&gt;Instead, I used Python's built-in:&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;hashlib&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CleanDesk calculates a SHA-256 hash for files.&lt;/p&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;File A → SHA-256 → ABC123...

File B → SHA-256 → ABC123...

Same hash → potential duplicate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was a good example of how much functionality is already available inside Python's standard library.&lt;/p&gt;




&lt;h1&gt;
  
  
  📦 5. Detecting Large Files
&lt;/h1&gt;

&lt;p&gt;CleanDesk can also identify large files.&lt;/p&gt;

&lt;p&gt;For this, I used file metadata available through Python's standard library instead of installing a separate package.&lt;/p&gt;

&lt;p&gt;The program checks file sizes and reports files that meet the selected threshold.&lt;/p&gt;

&lt;p&gt;The principle is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use what the language already gives you before adding another dependency.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🔎 6. File Search
&lt;/h1&gt;

&lt;p&gt;CleanDesk also includes a search command.&lt;/p&gt;

&lt;p&gt;The search functionality recursively checks folders and matches filenames.&lt;/p&gt;

&lt;p&gt;Instead of installing a search library, I used:&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;Path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rglob&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes it possible to search through nested directories while keeping the project dependency-free.&lt;/p&gt;




&lt;h1&gt;
  
  
  📄 7. JSON Reports
&lt;/h1&gt;

&lt;p&gt;CleanDesk can generate reports containing information about files and analysis results.&lt;/p&gt;

&lt;p&gt;For JSON handling, there was no reason to install anything.&lt;/p&gt;

&lt;p&gt;Python already provides:&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;json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So I used the standard library to generate structured JSON reports.&lt;/p&gt;

&lt;p&gt;This keeps the reporting system lightweight and portable.&lt;/p&gt;




&lt;h1&gt;
  
  
  ↩️ 8. Undo Organization
&lt;/h1&gt;

&lt;p&gt;File organization shouldn't feel irreversible.&lt;/p&gt;

&lt;p&gt;CleanDesk keeps track of organization operations so that they can be undone.&lt;/p&gt;

&lt;p&gt;This feature forced me to think beyond simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Move this file from A to B."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I also had to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where did the file come from?&lt;/li&gt;
&lt;li&gt;Where was it moved?&lt;/li&gt;
&lt;li&gt;How can the operation be reversed?&lt;/li&gt;
&lt;li&gt;What happens if something changes after the move?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That made the organizer more than just a simple file-moving script.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌐 9. Building the Web Demo Without Flask
&lt;/h1&gt;

&lt;p&gt;This was one of the more interesting parts of the project.&lt;/p&gt;

&lt;p&gt;Normally, for a Python web application, I might immediately reach for Flask or FastAPI.&lt;/p&gt;

&lt;p&gt;But those were not allowed.&lt;/p&gt;

&lt;p&gt;So I used Python's built-in:&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;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result is a web interface for demonstrating CleanDesk.&lt;/p&gt;

&lt;p&gt;The website allows users to interact with the major CleanDesk features and see their results.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Try the Live Demo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cleandesk.onrender.com/" rel="noopener noreferrer"&gt;https://cleandesk.onrender.com/&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🧪 10. Testing Without pytest
&lt;/h1&gt;

&lt;p&gt;Testing was another place where I could have installed a third-party package.&lt;/p&gt;

&lt;p&gt;Instead, I used:&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;unittest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CleanDesk currently has &lt;strong&gt;59 automated tests&lt;/strong&gt; covering different parts of the application.&lt;/p&gt;

&lt;p&gt;I ran:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; unittest discover &lt;span class="nt"&gt;-s&lt;/span&gt; tests &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the test suite completed successfully:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ran 59 tests

OK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For me, this was an important part of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero dependencies shouldn't mean zero quality.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  😅 What Was Actually Difficult?
&lt;/h1&gt;

&lt;p&gt;The hardest part wasn't writing individual functions.&lt;/p&gt;

&lt;p&gt;The hardest part was changing my development mindset.&lt;/p&gt;

&lt;p&gt;When you have access to thousands of packages, it's easy to think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"There must already be a library for this."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Zero Dependency constraint forced me to stop and ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can I implement this with the standard library?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes the answer was surprisingly easy.&lt;/p&gt;

&lt;p&gt;Sometimes I had to write considerably more code than I would have written using a third-party package.&lt;/p&gt;

&lt;p&gt;But that extra work was exactly what made the project valuable.&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 What I Learned
&lt;/h1&gt;

&lt;p&gt;The biggest lesson from building CleanDesk was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Dependencies are useful, but understanding the underlying problem is even more useful.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I learned more about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python's standard library&lt;/li&gt;
&lt;li&gt;File-system operations&lt;/li&gt;
&lt;li&gt;Hashing&lt;/li&gt;
&lt;li&gt;CLI design&lt;/li&gt;
&lt;li&gt;Recursive file searching&lt;/li&gt;
&lt;li&gt;Safe file manipulation&lt;/li&gt;
&lt;li&gt;JSON generation&lt;/li&gt;
&lt;li&gt;HTTP servers&lt;/li&gt;
&lt;li&gt;Automated testing&lt;/li&gt;
&lt;li&gt;Designing reversible operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, I learned &lt;strong&gt;not to reach for a dependency automatically&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sometimes the functionality you need is already sitting inside the language itself.&lt;/p&gt;




&lt;h1&gt;
  
  
  🏗️ What's Next?
&lt;/h1&gt;

&lt;p&gt;CleanDesk started as a hackathon project, but there are several directions I would like to explore.&lt;/p&gt;

&lt;p&gt;Some possibilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More file classification rules&lt;/li&gt;
&lt;li&gt;Better reporting&lt;/li&gt;
&lt;li&gt;More robust undo functionality&lt;/li&gt;
&lt;li&gt;Additional safety checks&lt;/li&gt;
&lt;li&gt;More automated tests&lt;/li&gt;
&lt;li&gt;A richer web interface&lt;/li&gt;
&lt;li&gt;Better configuration options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal would remain the same:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep the tool useful without turning the project into a dependency-heavy application.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🔗 Try CleanDesk
&lt;/h1&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://cleandesk.onrender.com/" rel="noopener noreferrer"&gt;https://cleandesk.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;Source Code:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/avinashkanneboyina-sys/CleanDesk" rel="noopener noreferrer"&gt;https://github.com/avinashkanneboyina-sys/CleanDesk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in seeing how far you can go without installing another package, check out the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🏁 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;The Zero Dependency challenge initially sounded restrictive.&lt;/p&gt;

&lt;p&gt;In practice, it became a design challenge.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"Which package should I install?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I started asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What can I build myself?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That change in mindset was the most valuable part of building CleanDesk.&lt;/p&gt;

&lt;p&gt;A messy folder became a file organizer.&lt;/p&gt;

&lt;p&gt;A dependency restriction became an engineering challenge.&lt;/p&gt;

&lt;p&gt;And Python's standard library turned out to be more capable than I expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's CleanDesk. 🧹🐍&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>programming</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
