<?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: Aditya Sorathiya</title>
    <description>The latest articles on DEV Community by Aditya Sorathiya (@aditya_sorathiya_069252f4).</description>
    <link>https://dev.to/aditya_sorathiya_069252f4</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%2F4023995%2F485e9466-24ea-4f21-b88a-2a5fb850b430.png</url>
      <title>DEV Community: Aditya Sorathiya</title>
      <link>https://dev.to/aditya_sorathiya_069252f4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditya_sorathiya_069252f4"/>
    <language>en</language>
    <item>
      <title>I built an E2EE paste utility with 12K users (1,800+ commits). Is a local HTML/CSS/JS Android wrapper a good idea?</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:49:14 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-built-an-e2ee-paste-utility-with-12k-users-1800-commits-is-a-local-htmlcssjs-android-52m0</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-built-an-e2ee-paste-utility-with-12k-users-1800-commits-is-a-local-htmlcssjs-android-52m0</guid>
      <description>&lt;p&gt;Hey DEV community! 👋 &lt;/p&gt;

&lt;p&gt;I'm a 10th-grade self-taught developer, and for the past several months, I've been working as a one-man army (handling coding, testing, DevOps, and SEO) on my project: &lt;strong&gt;&lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;PasteDB&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;To give you an idea of the scale, the ecosystem currently spans across a web interface, an npm CLI tool (&lt;code&gt;pastedb-cli&lt;/code&gt;), two SDKs (Node.js/Python), and a live VS Code Marketplace extension. The core repository alone has over &lt;strong&gt;1,800+ verified commits&lt;/strong&gt;, and we just crossed &lt;strong&gt;12,000+ active users&lt;/strong&gt; completely organically. &lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Our Current Tech Stack (Running at ₹0)
&lt;/h3&gt;

&lt;p&gt;Because I am a student, I've architected everything to run smoothly on cloud free-tiers with a strict ₹0 maintenance budget:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla HTML, CSS, JavaScript (Hosted on Netlify)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI / Python (Deployed on Render's free tier)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; MongoDB Atlas (Free tier cluster) + Cloudinary for images&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔐 The Core Problem &amp;amp; Features
&lt;/h3&gt;

&lt;p&gt;PasteDB isn't just a standard text dump. It features client-side &lt;strong&gt;End-to-End Encryption (E2EE)&lt;/strong&gt; where encryption keys never touch my database server. It also supports automated "Burn After Read" pastes, an in-viewer code execution engine, automatic rolling version control history (up to 10 versions), and a 3-finger gesture-based Nearby Transfer protocol and many more…&lt;/p&gt;




&lt;h3&gt;
  
  
  📱 The Upcoming Milestone: A Native Android App
&lt;/h3&gt;

&lt;p&gt;Now that my 1st-term school exams are wrapping up, my next major goal during vacation is to launch an official &lt;strong&gt;PasteDB Android App&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Because I want to minimize development time, maintain our tight browser-side cryptographic logic, and ensure the app loads instantly on slow networks, I am planning to build a &lt;strong&gt;Local Hybrid Architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of pulling the UI over the internet, my plan is to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Embed our exact web &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, and crypto-heavy &lt;code&gt;script.js&lt;/code&gt; files directly inside the Android project's &lt;code&gt;assets/&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Build a lightweight &lt;strong&gt;Kotlin wrapper&lt;/strong&gt; using Jetpack Compose.&lt;/li&gt;
&lt;li&gt;Use Android's view container to render the UI entirely from local disk storage via &lt;code&gt;loadUrl("file:///android_asset/index.html")&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Point all fetch requests in the JS script to the absolute Render URL of our FastAPI backend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means &lt;strong&gt;no web browser layout is involved for the user&lt;/strong&gt;, and the application interface will load instantaneously without costing a rupee in frontend bandwidth.&lt;/p&gt;




&lt;h3&gt;
  
  
  🤔 My Question to Senior Engineers: Is this a good idea?
&lt;/h3&gt;

&lt;p&gt;Since this is my first time deep-diving into Android deployment, I want to know your thoughts on this approach. Specifically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security &amp;amp; Cryptography:&lt;/strong&gt; Our client-side E2EE relies entirely on browser-based JS crypto execution. Will loading these scripts locally via &lt;code&gt;file:///&lt;/code&gt; inside an Android WebView introduce any native sandbox security leaks or quirks?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance Constraints:&lt;/strong&gt; Are there significant performance penalties for letting local vanilla JS handle DOM updates inside a Kotlin wrapper compared to writing a completely native Kotlin UI?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardware Access:&lt;/strong&gt; Will the local asset container successfully allow hardware-level access if I request native Android permissions (like Location/Bluetooth for our Nearby Transfer feature, or Camera access for scanning QR codes)?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'd love to hear your feedback, architectural warnings, or library recommendations (should I stick to standard Android WebViews, or explore engines like QuickJS for the crypto backend?). &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Drop your advice in the comments below!&lt;/em&gt; 👇&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>android</category>
      <category>webdev</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Hardware Limits Couldn't Stop Me From Building PasteDB</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Wed, 23 Sep 2026 09:49:41 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/hardware-limits-couldnt-stop-me-from-building-pastedb-24b8</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/hardware-limits-couldnt-stop-me-from-building-pastedb-24b8</guid>
      <description>&lt;p&gt;I built PasteDB, an open-source developer tool, largely using a damaged bleeding smartphone. This is the story of building software despite hardware limitations and why imperfect hardware doesn't have to stop you from learning, coding, creating and SHIPPING.&lt;/p&gt;

&lt;p&gt;The real image today (23/9/2026)&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%2Fqjbo8be4safymwzdqiz0.jpg" 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%2Fqjbo8be4safymwzdqiz0.jpg" alt="Bleedin Phone - PasteDB" width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image was clicked with my father's phone&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>showdev</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I searched “pastebin cli” on Google... and i got my project??? 🔎</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Sun, 20 Sep 2026 14:33:41 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-searched-pastebin-cli-on-google-and-i-got-my-project-4fn6</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-searched-pastebin-cli-on-google-and-i-got-my-project-4fn6</guid>
      <description>&lt;p&gt;One of those small milestones that feels surprisingly big. 🚀&lt;/p&gt;

&lt;p&gt;I searched Google for:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;pastebin cli&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And PasteDB CLI appeared on the first page of results.&lt;/p&gt;

&lt;p&gt;Google is showing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“PasteDB CLI – Pastebin Command Line Tool for Developers”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The result appears below Google's AI Overview.&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%2Falr369lxv2a3lvevk34l.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%2Falr369lxv2a3lvevk34l.png" alt=" " width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PasteDB is an open-source developer-focused paste platform I've been building, and the CLI lets developers work with pastes directly from their terminal.&lt;/p&gt;

&lt;p&gt;It supports things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create pastes&lt;/li&gt;
&lt;li&gt;Read pastes&lt;/li&gt;
&lt;li&gt;Update pastes&lt;/li&gt;
&lt;li&gt;Delete pastes&lt;/li&gt;
&lt;li&gt;Explore pastes&lt;/li&gt;
&lt;li&gt;Work with the PasteDB API directly from the terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What makes this milestone exciting to me isn't just seeing my project's name in Google.&lt;/p&gt;

&lt;p&gt;It's that someone searching for a generic term like &lt;strong&gt;“pastebin cli”&lt;/strong&gt; can potentially discover a project I built.&lt;/p&gt;

&lt;p&gt;It's a small SEO/discoverability milestone, but for an indie/student developer, these little moments are really motivating. 😄&lt;/p&gt;

&lt;p&gt;PasteDB:&lt;br&gt;
&lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;https://pastedb.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/pastedb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you ever had a project unexpectedly start appearing for generic searches? I'd love to hear about it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The API Worked Locally. Then Production Broke It. 💀</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Wed, 16 Sep 2026 11:58:31 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/the-api-worked-locally-then-production-broke-it-26fb</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/the-api-worked-locally-then-production-broke-it-26fb</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────┐
│ 🧪 API HEALTH CHECK                  │
├──────────────────────────────────────┤
│                                      │
│ 💻 Local                             │
│    GET /api/test                     │
│    → 200 OK ✅                       │
│                                      │
│ ☁️ Production                        │
│    GET /api/test                     │
│    → 500 Internal Server Error 💀    │
│                                      │
└──────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's where the debugging began.&lt;/p&gt;

&lt;p&gt;Locally, everything was working exactly as expected. The API responded correctly, the frontend connected, and there were no obvious errors. But after deployment, something had changed. &lt;/p&gt;

&lt;p&gt;So what broke? &lt;/p&gt;

&lt;p&gt;You know that feeling when everything works perfectly on localhost?&lt;/p&gt;

&lt;p&gt;The API responds.&lt;br&gt;
The frontend gets the data.&lt;br&gt;
Authentication works.&lt;br&gt;
You test it five times.&lt;/p&gt;

&lt;p&gt;So you deploy it.&lt;/p&gt;

&lt;p&gt;And suddenly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💥 500 Internal Server Error
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing changed.&lt;/p&gt;

&lt;p&gt;Except… everything.&lt;/p&gt;

&lt;p&gt;The classic situation&lt;/p&gt;

&lt;p&gt;During development, I had something like:&lt;/p&gt;

&lt;p&gt;Frontend → localhost API → Database&lt;/p&gt;

&lt;p&gt;I tested the endpoint and got exactly what I expected.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hello from the API"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perfect.&lt;/p&gt;

&lt;p&gt;Then I deployed the backend.&lt;/p&gt;

&lt;p&gt;Frontend → Production API → Database&lt;/p&gt;

&lt;p&gt;And the frontend started throwing errors.&lt;/p&gt;

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

&lt;p&gt;The API worked when I tested some endpoints manually.&lt;/p&gt;

&lt;p&gt;That made it even more confusing.&lt;/p&gt;

&lt;p&gt;So what actually changed?&lt;/p&gt;

&lt;p&gt;A production environment isn't just your local computer moved to the internet.&lt;/p&gt;

&lt;p&gt;There are a lot of things that can be different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Environment variables&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CORS configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database connection strings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTTPS vs HTTP&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Allowed origins&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;File paths&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Case-sensitive filenames&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependency versions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python/Node versions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proxy configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication cookies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API URLs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment-specific filesystem behavior&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One tiny assumption in development can become a production bug.&lt;/p&gt;

&lt;p&gt;One of my favorite examples: environment variables&lt;/p&gt;

&lt;p&gt;Locally, you might have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;API_URL&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;But your deployed frontend might still be trying to call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From the user's browser, localhost means their computer, not your server.&lt;/p&gt;

&lt;p&gt;So your API isn't even being contacted.&lt;/p&gt;

&lt;p&gt;That bug can be surprisingly easy to miss if you're only testing locally.&lt;/p&gt;

&lt;p&gt;Another one: CORS&lt;/p&gt;

&lt;p&gt;You might test your frontend and backend locally with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:5500
&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;http://localhost:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then production becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://myapp.com
&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;https://api.myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your backend needs to know that the production frontend is allowed to make requests.&lt;/p&gt;

&lt;p&gt;A configuration that worked locally isn't necessarily correct for production.&lt;/p&gt;

&lt;p&gt;And then there's the database 😭&lt;/p&gt;

&lt;p&gt;Your local machine 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;mongodb://localhost:27017/mydb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Production obviously can't use your laptop's MongoDB.&lt;/p&gt;

&lt;p&gt;So you replace it with a hosted database connection string.&lt;/p&gt;

&lt;p&gt;Then you discover:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Authentication failed.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Connection refused.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Network access denied.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The API code itself might be completely fine.&lt;/p&gt;

&lt;p&gt;The environment around it isn't.&lt;/p&gt;

&lt;p&gt;The lesson I learned&lt;/p&gt;

&lt;p&gt;When something breaks after deployment, don't immediately rewrite the endpoint.&lt;/p&gt;

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

&lt;p&gt;"What is different between local and production?"&lt;/p&gt;

&lt;p&gt;I now mentally go through 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;Environment variables
        ↓
API URL
        ↓
CORS
        ↓
Database
        ↓
Authentication
        ↓
Dependencies
        ↓
File paths
        ↓
HTTPS / proxy
        ↓
Production logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only after checking those do I start changing application code.&lt;/p&gt;

&lt;p&gt;Production is a different environment&lt;/p&gt;

&lt;p&gt;This is probably one of the biggest lessons I've learned while building web projects.&lt;/p&gt;

&lt;p&gt;"It works on my machine" isn't the end of testing.&lt;/p&gt;

&lt;p&gt;It's actually the beginning of a new type of debugging.&lt;/p&gt;

&lt;p&gt;Local development tells you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The code can work."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Production testing tells you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The entire system works together."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And those are two very different things.&lt;/p&gt;




&lt;p&gt;What's the strangest "works locally, breaks in production" bug you've encountered?&lt;/p&gt;

&lt;p&gt;I'd love to hear the weird ones. 👇&lt;/p&gt;

</description>
      <category>programming</category>
      <category>api</category>
      <category>backend</category>
      <category>devops</category>
    </item>
    <item>
      <title>My Computer Teacher Marked My Correct Answer Wrong — So I Investigated It</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Mon, 14 Sep 2026 16:32:49 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/my-computer-teacher-marked-my-correct-answer-wrong-so-i-investigated-it-4nc2</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/my-computer-teacher-marked-my-correct-answer-wrong-so-i-investigated-it-4nc2</guid>
      <description>&lt;p&gt;My Computer Teacher Marked My Correct Answer Wrong — So I Investigated It&lt;/p&gt;

&lt;p&gt;A few days before my Class 9 annual exams, something happened during a computer science test that I still remember.&lt;/p&gt;

&lt;p&gt;It wasn't a huge incident. It was just one MCQ worth one mark.&lt;/p&gt;

&lt;p&gt;But that one mark taught me something much more valuable: being a student doesn't mean you should stop questioning an answer when you have evidence that something is wrong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: This story is completely unrelated to my PasteDB project. It is a personal experience from my Class 9 computer science test.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The 19/20&lt;/p&gt;

&lt;p&gt;It was March, a few days before our Class 9 annual examinations.&lt;/p&gt;

&lt;p&gt;Our computer science teacher conducted a 20-mark test containing 20 multiple-choice questions.&lt;/p&gt;

&lt;p&gt;A few days later, we received our papers.&lt;/p&gt;

&lt;p&gt;I got 19/20.&lt;/p&gt;

&lt;p&gt;Everything looked normal until I reached Question 8.&lt;/p&gt;

&lt;p&gt;The question was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which of the following is not a limitation of a mobile phone?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There were four options. I don't remember options A and B exactly, but the two relevant options were:&lt;/p&gt;

&lt;p&gt;C. Memory&lt;/p&gt;

&lt;p&gt;D. Network&lt;/p&gt;

&lt;p&gt;I had selected D. Network.&lt;/p&gt;

&lt;p&gt;But my answer had been marked wrong.&lt;/p&gt;

&lt;p&gt;According to the answer key, C. Memory was considered correct.&lt;/p&gt;

&lt;p&gt;I immediately wondered:&lt;/p&gt;

&lt;p&gt;How could network not be a limitation of a mobile phone?&lt;/p&gt;

&lt;p&gt;I decided to ask about it.&lt;/p&gt;




&lt;p&gt;Going to the Staff Room&lt;/p&gt;

&lt;p&gt;I took my computer paper and went to the staff room with two of my friends.&lt;/p&gt;

&lt;p&gt;There were two teachers there — my computer teacher and my maths teacher.&lt;/p&gt;

&lt;p&gt;One of my friends had come to discuss his maths paper. After his discussion was finished, he left.&lt;/p&gt;

&lt;p&gt;My other friend stayed with me.&lt;/p&gt;

&lt;p&gt;I showed my computer teacher Question 8 and asked whether my mark could be reconsidered.&lt;/p&gt;

&lt;p&gt;Initially, she didn't change it.&lt;/p&gt;

&lt;p&gt;Instead, she opened the textbook to check the topic.&lt;/p&gt;

&lt;p&gt;She was looking through one chapter, but I remembered that the relevant topic was actually in another chapter. I pointed that out.&lt;/p&gt;

&lt;p&gt;Eventually, she found the question in the textbook exercise.&lt;/p&gt;

&lt;p&gt;And that's where the real discussion started.&lt;/p&gt;




&lt;p&gt;The Debate&lt;/p&gt;

&lt;p&gt;My teacher believed that Memory was the answer.&lt;/p&gt;

&lt;p&gt;I explained why I believed Network was the correct answer.&lt;/p&gt;

&lt;p&gt;My reasoning was simple:&lt;/p&gt;

&lt;p&gt;A mobile phone depends on network connectivity for many communication-related functions. Lack of network connectivity can therefore be a limitation.&lt;/p&gt;

&lt;p&gt;Meanwhile, I didn't understand how memory itself could be considered the answer to a question asking what is not a limitation.&lt;/p&gt;

&lt;p&gt;We went back and forth for quite some time.&lt;/p&gt;

&lt;p&gt;I wasn't trying to disrespect my teacher.&lt;/p&gt;

&lt;p&gt;I simply couldn't make the explanation fit with what I understood from the textbook.&lt;/p&gt;

&lt;p&gt;Eventually, after the discussion had gone on for quite a while, my teacher increased my mark.&lt;/p&gt;

&lt;p&gt;So I got my 20/20.&lt;/p&gt;

&lt;p&gt;I thought that was the end of it.&lt;/p&gt;

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




&lt;p&gt;My Friend Had the Same Answer&lt;/p&gt;

&lt;p&gt;The next working day, my friend came to me.&lt;/p&gt;

&lt;p&gt;He had also selected D. Network.&lt;/p&gt;

&lt;p&gt;He told me that he should receive the mark too.&lt;/p&gt;

&lt;p&gt;I agreed.&lt;/p&gt;

&lt;p&gt;But I suggested something slightly different.&lt;/p&gt;

&lt;p&gt;Instead of simply asking the teacher to give him the mark, I told him to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If this exact question appears in the annual examination, which option should we select?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question mattered.&lt;/p&gt;

&lt;p&gt;Because getting one mark back was one thing.&lt;/p&gt;

&lt;p&gt;Knowing the correct answer for the actual examination was much more important.&lt;/p&gt;

&lt;p&gt;My friend asked the teacher about it.&lt;/p&gt;

&lt;p&gt;The answer he got was still C. Memory.&lt;/p&gt;

&lt;p&gt;And I couldn't understand it.&lt;/p&gt;

&lt;p&gt;If the question appeared in our annual exam, I didn't want to knowingly select an answer I believed was technically incorrect.&lt;/p&gt;




&lt;p&gt;Taking the Question to the Principal&lt;/p&gt;

&lt;p&gt;It was examination time, so teachers were busy with invigilation and other responsibilities.&lt;/p&gt;

&lt;p&gt;My friend's paper wasn't resolved immediately.&lt;/p&gt;

&lt;p&gt;So I decided to ask someone else.&lt;/p&gt;

&lt;p&gt;I went to the principal during dispersal.&lt;/p&gt;

&lt;p&gt;I explained that I had a doubt regarding a previous computer science unit test.&lt;/p&gt;

&lt;p&gt;At first, the principal was understandably annoyed because it was exam time and I was bringing up an old test.&lt;/p&gt;

&lt;p&gt;But once I explained the actual issue, she said that it would be clarified.&lt;/p&gt;

&lt;p&gt;I went home.&lt;/p&gt;

&lt;p&gt;And instead of just thinking about the argument, I did something more useful.&lt;/p&gt;

&lt;p&gt;I started looking for evidence.&lt;/p&gt;




&lt;p&gt;I Went Back to the Textbook&lt;/p&gt;

&lt;p&gt;I searched through the textbook again.&lt;/p&gt;

&lt;p&gt;This time, I wasn't looking for something that would simply prove me right.&lt;/p&gt;

&lt;p&gt;I was looking for the actual explanation of the concept.&lt;/p&gt;

&lt;p&gt;And then I found it.&lt;/p&gt;

&lt;p&gt;There was a line in the textbook that supported my interpretation of the question.&lt;/p&gt;

&lt;p&gt;That was important.&lt;/p&gt;

&lt;p&gt;Now I wasn't relying only on my memory or opinion.&lt;/p&gt;

&lt;p&gt;I had a source.&lt;/p&gt;




&lt;p&gt;The Next Day&lt;/p&gt;

&lt;p&gt;When I came to class the next day, my class teacher asked me about the situation.&lt;/p&gt;

&lt;p&gt;She knew that I had taken the question to the principal.&lt;/p&gt;

&lt;p&gt;I explained what had happened.&lt;/p&gt;

&lt;p&gt;Then she checked the question independently.&lt;/p&gt;

&lt;p&gt;The answer she got was:&lt;/p&gt;

&lt;p&gt;D. Network.&lt;/p&gt;

&lt;p&gt;I also showed her the relevant line from the textbook.&lt;/p&gt;

&lt;p&gt;At that point, there was evidence from the textbook supporting my answer as well.&lt;/p&gt;

&lt;p&gt;The issue was finally clear.&lt;/p&gt;

&lt;p&gt;The original answer I had been marked wrong for was actually the answer I should have received credit for.&lt;/p&gt;




&lt;p&gt;What I Learned From One Mark&lt;/p&gt;

&lt;p&gt;Looking back, the most important part of this story isn't that I got one additional mark.&lt;/p&gt;

&lt;p&gt;It's what happened while trying to resolve the disagreement.&lt;/p&gt;

&lt;p&gt;I learned that authority doesn't automatically make an answer correct.&lt;/p&gt;

&lt;p&gt;A teacher can know far more about a subject than a student and still make an occasional mistake.&lt;/p&gt;

&lt;p&gt;A textbook can contain an unclear question.&lt;/p&gt;

&lt;p&gt;An answer key can be wrong.&lt;/p&gt;

&lt;p&gt;And a student can misunderstand something.&lt;/p&gt;

&lt;p&gt;That's why evidence matters.&lt;/p&gt;




&lt;p&gt;Don't Argue Just to Prove Yourself Right&lt;/p&gt;

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

&lt;p&gt;I'm not saying students should challenge teachers about everything.&lt;/p&gt;

&lt;p&gt;And I'm definitely not saying that students should assume their teachers are wrong.&lt;/p&gt;

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

&lt;p&gt;If you believe something is technically incorrect, investigate it.&lt;/p&gt;

&lt;p&gt;Don't just say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'm right."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What does the textbook say?"&lt;/p&gt;

&lt;p&gt;"What does the documentation say?"&lt;/p&gt;

&lt;p&gt;"Can I find another reliable source?"&lt;/p&gt;

&lt;p&gt;"Can I explain why I believe this answer is correct?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That changes an argument into an investigation.&lt;/p&gt;




&lt;p&gt;The Internet Makes This Even More Important&lt;/p&gt;

&lt;p&gt;As someone who enjoys computer science and software development, I've started noticing this even more.&lt;/p&gt;

&lt;p&gt;In technology, you can't always rely on someone's authority.&lt;/p&gt;

&lt;p&gt;A person might confidently tell you that an API works one way.&lt;/p&gt;

&lt;p&gt;The documentation might say otherwise.&lt;/p&gt;

&lt;p&gt;Someone might tell you a programming concept is impossible.&lt;/p&gt;

&lt;p&gt;You might test it and discover that it isn't.&lt;/p&gt;

&lt;p&gt;Someone might tell you that a particular piece of code is correct.&lt;/p&gt;

&lt;p&gt;Running it might prove otherwise.&lt;/p&gt;

&lt;p&gt;That's why one of the most valuable skills for a developer is learning to verify information.&lt;/p&gt;




&lt;p&gt;What Would You Have Done?&lt;/p&gt;

&lt;p&gt;If you were in my situation, what would you have done?&lt;/p&gt;

&lt;p&gt;Would you have:&lt;/p&gt;

&lt;p&gt;Accepted the answer and moved on?&lt;/p&gt;

&lt;p&gt;Asked the teacher again?&lt;/p&gt;

&lt;p&gt;Checked the textbook?&lt;/p&gt;

&lt;p&gt;Looked for another reliable source?&lt;/p&gt;

&lt;p&gt;Asked another teacher?&lt;/p&gt;

&lt;p&gt;Taken the issue to the principal?&lt;/p&gt;

&lt;p&gt;For me, the biggest lesson wasn't getting 20/20.&lt;/p&gt;

&lt;p&gt;It was learning that asking questions respectfully and finding evidence can be more powerful than simply arguing.&lt;/p&gt;

&lt;p&gt;And sometimes, the answer really is worth investigating.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>education</category>
      <category>discuss</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I’m a Student Developer. Is Building Projects Actually Better Than Following Tutorials?</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Mon, 14 Sep 2026 15:33:10 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/im-a-student-developer-is-building-projects-actually-better-than-following-tutorials-28n4</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/im-a-student-developer-is-building-projects-actually-better-than-following-tutorials-28n4</guid>
      <description>&lt;p&gt;I've spent the last few months building and maintaining my own projects instead of constantly jumping between tutorials.&lt;/p&gt;

&lt;p&gt;It has been frustrating sometimes. I've had bugs that took hours to understand, deployments that broke, features that I later had to rewrite, and projects that nobody used.&lt;/p&gt;

&lt;p&gt;But I've also learned things that I don't think I would have learned by simply completing tutorials.&lt;/p&gt;

&lt;p&gt;So I'm curious:&lt;/p&gt;

&lt;p&gt;For someone learning development, what do you think is more valuable — building projects or following structured courses?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>I Just Made PasteDB Pasts Editable Directly Inside VS Code 🚀</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Mon, 14 Sep 2026 05:07:02 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-just-made-pastedb-pasts-editable-directly-inside-vs-code-l2o</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-just-made-pastedb-pasts-editable-directly-inside-vs-code-l2o</guid>
      <description>&lt;p&gt;I just released PasteDB VS Code Extension v0.3.0, and this update adds one of the features I wanted most: Update Paste. You can now open an existing PasteDB paste in a VS Code editor, edit it like normal code, and update it with Ctrl + Shift + U — without going back to the browser. In this post, I'll share how I redesigned the update workflow and why I chose an editor-first UX.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=adityasorathiya.pastedb" rel="noopener noreferrer"&gt;PasteDB VS Code Extension&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;PasteDB on GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;PasteDB&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Making PasteDB Easier to Read: Word Wrap &amp; Font Size Controls</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Fri, 11 Sep 2026 15:57:51 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/making-pastedb-easier-to-read-word-wrap-font-size-controls-22m3</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/making-pastedb-easier-to-read-word-wrap-font-size-controls-22m3</guid>
      <description>&lt;h3&gt;
  
  
  Hey everyone! 👋
&lt;/h3&gt;

&lt;p&gt;I'm Aditya, a student developer, and I'm building PasteDB — a paste-sharing platform for code, text, notes, logs, and more.&lt;/p&gt;

&lt;p&gt;While using PasteDB myself, I noticed a small but annoying problem.&lt;/p&gt;

&lt;p&gt;If a paste contained a very long line, the viewer would require horizontal scrolling.&lt;/p&gt;

&lt;p&gt;That isn't a huge problem for code, but for normal text, notes, documentation, or things like copied questions, it can make reading pretty uncomfortable.&lt;/p&gt;

&lt;p&gt;So I decided to improve the viewer.&lt;/p&gt;

&lt;h2&gt;
  
  
  📝 Introducing Word Wrap
&lt;/h2&gt;

&lt;p&gt;PasteDB's viewer now has a Word Wrap option.&lt;/p&gt;

&lt;p&gt;When word wrap is disabled, long lines stay on a single line:&lt;/p&gt;

&lt;p&gt;This is a very long line that continues and continues and requires horizontal scrolling...&lt;/p&gt;

&lt;p&gt;When enabled, the same content can automatically wrap inside the viewer:&lt;/p&gt;

&lt;p&gt;This is a very long line that continues&lt;br&gt;
and continues and now wraps naturally&lt;br&gt;
inside the available space.&lt;/p&gt;

&lt;p&gt;The important part is that this is soft wrapping.&lt;/p&gt;

&lt;p&gt;The actual paste content isn't modified.&lt;/p&gt;

&lt;p&gt;So copying the paste still gives you the original content exactly as it was.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔤 Font Size Control
&lt;/h2&gt;

&lt;p&gt;I also added a font-size slider.&lt;/p&gt;

&lt;p&gt;Instead of having only one fixed font size, you can adjust the viewer to whatever feels comfortable.&lt;/p&gt;

&lt;p&gt;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;Small  ────────●─────────  Large
                 16px

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

&lt;/div&gt;



&lt;p&gt;The selected size is applied to the paste viewer and the output area as well.&lt;/p&gt;

&lt;p&gt;This is particularly useful when viewing PasteDB on different screen sizes.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Why I put them inside "More Options"
&lt;/h2&gt;

&lt;p&gt;Initially, I considered putting both controls directly in the toolbar.&lt;/p&gt;

&lt;p&gt;But the PasteDB viewer already has several actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Copy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Raw&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Images&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nearby Share&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding two more buttons would make the toolbar increasingly crowded, especially on mobile.&lt;/p&gt;

&lt;p&gt;So I decided to keep the main actions visible and put the reading controls inside a More Options menu.&lt;/p&gt;

&lt;p&gt;That keeps the interface cleaner while still making the settings easy to access.&lt;/p&gt;




&lt;h2&gt;
  
  
  💾 Your preference is remembered
&lt;/h2&gt;

&lt;p&gt;I didn't want users to have to enable Word Wrap every time they opened a paste.&lt;/p&gt;

&lt;p&gt;So PasteDB stores the preferences locally using localStorage.&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pastedb_word_wrap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the font size is stored similarly.&lt;/p&gt;

&lt;p&gt;This means your viewer preferences can persist between paste views without requiring an account or changing the actual paste.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ A small technical challenge
&lt;/h2&gt;

&lt;p&gt;Getting word wrapping to work properly wasn't just adding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;white-space&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;pre-wrap&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PasteDB's viewer uses &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt;&lt;br&gt;
 and &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; elements, and the &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; originally had a min-width based on the content.&lt;/p&gt;

&lt;p&gt;That meant a very long line could force the code block to become wider than the screen.&lt;/p&gt;

&lt;p&gt;So the important part was allowing the code block to shrink to the available width:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;min-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the code itself can wrap:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;code&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;white-space&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;pre-wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;overflow-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;anywhere&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without fixing the width behavior, the "word wrap" setting doesn't really feel like word wrap.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Why these small features matter
&lt;/h2&gt;

&lt;p&gt;This isn't a huge feature.&lt;/p&gt;

&lt;p&gt;It's basically two viewer settings.&lt;/p&gt;

&lt;p&gt;But I think these are the kinds of small improvements that make a product feel much better to use.&lt;/p&gt;

&lt;p&gt;PasteDB isn't only used for code. You can paste:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;📝 Notes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;💻 Source code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📋 Logs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📄 Long text&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📚 Documentation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔗 Links&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🖼️ Images&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔐 Private/encrypted content&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the viewer needs to work well for more than just programmers looking at code.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What's next for PasteDB?
&lt;/h2&gt;

&lt;p&gt;I'm continuing to improve PasteDB and add features based on things I actually need while using it.&lt;/p&gt;

&lt;p&gt;Some of the things I've already worked on include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Syntax highlighting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Markdown preview&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom URLs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste expiration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Password-protected pastes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Image pastes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;QR sharing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nearby transfer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version history&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API access&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;End-to-end encrypted pastes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A built-in code runner&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there are still a lot more ideas I want to experiment with.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 I'd love your feedback
&lt;/h2&gt;

&lt;p&gt;If you use PasteDB, I'd love to know:&lt;/p&gt;

&lt;p&gt;What would you improve about the viewer?&lt;/p&gt;

&lt;p&gt;Is there a feature that would make reading or sharing pastes easier?&lt;/p&gt;

&lt;p&gt;I'm especially interested in small UX improvements like this one.&lt;/p&gt;

&lt;p&gt;Thanks for reading! ❤️&lt;/p&gt;

&lt;p&gt;PasteDB: &lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;https://pastedb.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/pastedb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The cover image is AI generated &lt;br&gt;
The real UI is like &lt;br&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%2Fsszehtx5digdsibn9777.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%2Fsszehtx5digdsibn9777.png" alt="Actual UI Image" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The UI may change after time&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Found a “Case Study” About My Open-Source Project — But Its Development History Didn't Match Reality</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Wed, 09 Sep 2026 16:09:05 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-found-a-case-study-about-my-open-source-project-but-its-development-history-didnt-match-1i4k</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-found-a-case-study-about-my-open-source-project-but-its-development-history-didnt-match-1i4k</guid>
      <description>&lt;p&gt;I recently discovered an article about PasteDB, an open-source project I built.&lt;/p&gt;

&lt;p&gt;At first, I was actually happy to see someone writing about the project.&lt;/p&gt;

&lt;p&gt;Then I started reading it.&lt;br&gt;
I found that several parts of the article described PasteDB's technology, development process, and history in ways that don't match the actual project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The article
&lt;/h2&gt;

&lt;p&gt;The article is titled:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Crafting a Product in Three Months: The Journey of Building PasteDB”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://ayubbaba.in/blog/crafting-a-product-in-three-months-the-journey-of-building-pastedb" rel="noopener noreferrer"&gt;Read the article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Several important details don't match the actual project.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The technology stack is incorrect
&lt;/h2&gt;

&lt;p&gt;The article claims that PasteDB uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;React.js&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Heroku&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It even provides a Flask/PostgreSQL code example as part of the supposed PasteDB development process.&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%2F35ajomftgw8b07xtc8w1.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%2F35ajomftgw8b07xtc8w1.png" alt="Screenshot showing the technology stack claimed in the article" width="800" height="1579"&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%2Ff1oqac5hcbgv1to0zzjo.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%2Ff1oqac5hcbgv1to0zzjo.png" alt="Screenshot showing the Flask and PostgreSQL code example in the article" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, that isn't the technology stack of my actual PasteDB project.&lt;/p&gt;

&lt;p&gt;The real repository is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/pastedb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository and its history provide the actual implementation and development record.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The article describes a development process that wasn't mine
&lt;/h2&gt;

&lt;p&gt;The article describes things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;specific development sprints&lt;/li&gt;
&lt;li&gt;a Flask REST API&lt;/li&gt;
&lt;li&gt;PostgreSQL models&lt;/li&gt;
&lt;li&gt;React components&lt;/li&gt;
&lt;li&gt;unit and integration testing&lt;/li&gt;
&lt;li&gt;deployment to Heroku&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are presented as the development journey of PasteDB.&lt;/p&gt;

&lt;p&gt;But they don't represent how I actually built the project.&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%2Fdkqlf15egv8dlopsiqkj.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%2Fdkqlf15egv8dlopsiqkj.png" alt="half site shot of article" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The article's footer identifies the website as being designed and developed by its operator:&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%2Fkvo8ojhtxeykgkxfognt.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%2Fkvo8ojhtxeykgkxfognt.png" alt="Image containing the footer of the false article" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what surprised me the most.&lt;/p&gt;

&lt;p&gt;It's one thing to write an article about an open-source project.&lt;/p&gt;

&lt;p&gt;It's another thing to present a development history as the project's actual history when that history does not match the project's repository and documented development.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. What PasteDB actually is
&lt;/h2&gt;

&lt;p&gt;PasteDB is a developer-focused paste-sharing platform that I've been building from my own repository.&lt;/p&gt;

&lt;p&gt;The project has evolved considerably over time.&lt;/p&gt;

&lt;p&gt;Some of the things I've built include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;End-to-end encryption&lt;/li&gt;
&lt;li&gt;Public, private and unlisted pastes&lt;/li&gt;
&lt;li&gt;Expiration and burn-after-read options&lt;/li&gt;
&lt;li&gt;Markdown and syntax highlighting&lt;/li&gt;
&lt;li&gt;Image sharing&lt;/li&gt;
&lt;li&gt;QR sharing&lt;/li&gt;
&lt;li&gt;Nearby transfer&lt;/li&gt;
&lt;li&gt;Search and Explore&lt;/li&gt;
&lt;li&gt;Version history&lt;/li&gt;
&lt;li&gt;REST API&lt;/li&gt;
&lt;li&gt;Python/Node tooling&lt;/li&gt;
&lt;li&gt;CLI&lt;/li&gt;
&lt;li&gt;VS Code extension&lt;/li&gt;
&lt;li&gt;Code execution&lt;/li&gt;
&lt;li&gt;Dashboard and analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PasteDB: &lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;https://pastedb.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/pastedb&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. I tried contacting the website
&lt;/h2&gt;

&lt;p&gt;Before escalating the issue, I tried contacting the website using the email addresses available to me.&lt;/p&gt;

&lt;p&gt;I found the following email addresses on the website's pages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ayubbaba.in/terms-conditions" rel="noopener noreferrer"&gt;https://ayubbaba.in/terms-conditions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ayubbaba.in/" rel="noopener noreferrer"&gt;https://ayubbaba.in/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fjpi6m42rg8ipgmrm8dhe.jpg" 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%2Fjpi6m42rg8ipgmrm8dhe.jpg" alt="image prove for emails found" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, the messages weren't delivered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Attempt 1
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;me@ayubbaba.in&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;554 5.7.1 — Relay access denied&lt;/p&gt;
&lt;/blockquote&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%2Fyzra1a0m1mm9gh04e7wo.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%2Fyzra1a0m1mm9gh04e7wo.png" alt="email not exists" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Attempt 2
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;legal@ayubbaba.in&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;554 5.7.1 — Relay access denied&lt;/p&gt;
&lt;/blockquote&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%2F1dzemf24wrl9dg91v4zw.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%2F1dzemf24wrl9dg91v4zw.png" alt="email not exists" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wasn't able to establish contact through those addresses.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The issue has now been resolved (14/9/26)
&lt;/h2&gt;

&lt;p&gt;The website operator directly got back to me and acknowledged the attribution issue.I got the email from operator on 13/9/26 at 9 PM&lt;/p&gt;

&lt;p&gt;They explained that they had been inactive for some time and apologized for the delayed response.&lt;/p&gt;

&lt;p&gt;Most importantly, they confirmed that they had &lt;strong&gt;removed the article completely&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I checked the original URL myself:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ayubbaba.in/blog/crafting-a-product-in-three-months-the-journey-of-building-pastedb" rel="noopener noreferrer"&gt;https://ayubbaba.in/blog/crafting-a-product-in-three-months-the-journey-of-building-pastedb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The PasteDB article is no longer there. The URL now displays the operator's portfolio page instead.&lt;/p&gt;

&lt;p&gt;So from my side, the issue has now been resolved.&lt;/p&gt;

&lt;p&gt;I also informed Hostinger about the situation, but since the website operator has already removed the article, I don't expect any further action to be necessary.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I'm keeping this post
&lt;/h2&gt;

&lt;p&gt;I'm not keeping this post up to attack the website operator.&lt;/p&gt;

&lt;p&gt;The original article contained screenshots and information that documented what happened, and I think the situation provides an interesting lesson for other open-source developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your repository isn't just your code. It's also a record of your work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Commit history, releases, documentation, licenses and timestamps can help establish how a project actually evolved.&lt;/p&gt;

&lt;p&gt;If you're building something publicly, keeping that history organized is valuable.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Keep your repository history
&lt;/h3&gt;

&lt;p&gt;Don't treat Git history as something disposable.&lt;/p&gt;

&lt;p&gt;It can become an important record of how a project evolved.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep your documentation accurate
&lt;/h3&gt;

&lt;p&gt;A clear README and changelog make it easier for others to understand what your project actually does.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep licenses visible
&lt;/h3&gt;

&lt;p&gt;Open-source licenses explain what other people can and cannot do with your code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Document everything
&lt;/h3&gt;

&lt;p&gt;When you find an issue involving your work, keep records of what you found.&lt;/p&gt;

&lt;p&gt;Screenshots, URLs, emails, error messages, repository history, and timestamps can help establish what happened and what steps you took to resolve it.&lt;/p&gt;

&lt;p&gt;In my case, keeping the original article screenshots and documenting my attempts to contact the website helped me keep a clear record of the situation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify claims before publishing them
&lt;/h3&gt;

&lt;p&gt;A publicly available project can be researched and discussed, but technical details and development history should be verified before being presented as fact.&lt;/p&gt;




&lt;h2&gt;
  
  
  An update for anyone reading this later
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The original article has been removed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The website operator confirmed the removal directly to me, and I verified that the article is no longer available at its original URL.&lt;/p&gt;

&lt;p&gt;I'm leaving this post as a record of the situation rather than as an ongoing complaint.&lt;/p&gt;




&lt;h2&gt;
  
  
  I'd like to hear from other developers
&lt;/h2&gt;

&lt;p&gt;Have you ever found an article, video, tutorial, or website describing your open-source project incorrectly?&lt;/p&gt;

&lt;p&gt;How did you handle it?&lt;/p&gt;

&lt;p&gt;Did you contact the author first, report it to the platform, or simply leave it alone?&lt;/p&gt;

&lt;p&gt;I'd be interested in hearing how other developers handle situations like this.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;PasteDB:&lt;/strong&gt; &lt;a href="https://pastedb.netlify.app" rel="noopener noreferrer"&gt;https://pastedb.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/sorathiya903/pastedb" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/pastedb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PasteDB development story:&lt;/strong&gt; &lt;a href="https://pastedb.netlify.app/about" rel="noopener noreferrer"&gt;https://pastedb.netlify.app/about&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>I built a Neo-Brutalist website for MagicDrop — a local-network file sharing CLI</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Mon, 07 Sep 2026 16:24:08 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-built-a-neo-brutalist-website-for-magicdrop-a-local-network-file-sharing-cli-531i</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-built-a-neo-brutalist-website-for-magicdrop-a-local-network-file-sharing-cli-531i</guid>
      <description>&lt;p&gt;I just launched a new website for MagicDrop, my local-network file and text sharing CLI.&lt;/p&gt;

&lt;p&gt;I wanted the website to feel as unique as the project itself, so I redesigned it with a bold neo-brutalist UI — thick borders, hard shadows, high-contrast typography, and vibrant lime accents.&lt;/p&gt;

&lt;p&gt;For now, the website has two pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🏠 Landing / Home page — introduces MagicDrop, features, installation, commands, browser sharing, local-network architecture, and the latest release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📦 Releases page — a dedicated release history showing MagicDrop 0.0.2 and the first 0.0.1 release.&lt;br&gt;
The site is built with plain HTML, CSS and JavaScript, with responsive navigation and small reveal/copy interactions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2F1udq28vrrgo5pg6vxyyq.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%2F1udq28vrrgo5pg6vxyyq.png" alt="Home page shot" width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MagicDrop: a simple way to share files and text between terminal and browser over the same local network, without cloud storage.&lt;/p&gt;

&lt;p&gt;🔗 Website: &lt;a href="https://magicdrop-cli.netlify.app" rel="noopener noreferrer"&gt;https://magicdrop-cli.netlify.app&lt;/a&gt;&lt;br&gt;
📦 NPM: &lt;a href="https://www.npmjs.com/package/magicdrop-cli" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/magicdrop-cli&lt;/a&gt;&lt;br&gt;
💻 GitHub: &lt;a href="https://github.com/sorathiya903/MagicDrop" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/MagicDrop&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why only 2 pages for now?
&lt;/h2&gt;

&lt;p&gt;I m a student,so now my tests are going one.&lt;br&gt;
The other pages can be released after 20/9/26&lt;/p&gt;

&lt;p&gt;I'd love to hear what you think about the design and what I could improve in future pages!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>css</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Added Server-Side File Size Limits to a WebSocket File Sharing App</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Fri, 04 Sep 2026 10:06:29 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/magicdrop-002-added-configurable-file-size-limits-3hm</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/magicdrop-002-added-configurable-file-size-limits-3hm</guid>
      <description>&lt;h2&gt;
  
  
  🚀 MagicDrop 0.0.2 is here!
&lt;/h2&gt;

&lt;p&gt;I just added a configurable file-size limit to MagicDrop, my local-network file and text sharing tool for terminal and browser.&lt;/p&gt;

&lt;p&gt;📦 &lt;strong&gt;Default limit: 512 MB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now set your own limit when starting MagicDrop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;md start &lt;span class="nt"&gt;--limit&lt;/span&gt; 1GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Supported:&lt;br&gt;
• KB&lt;br&gt;
• MB&lt;br&gt;
• GB&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%2Fsp3513r056jco5e19xaq.jpg" 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%2Fsp3513r056jco5e19xaq.jpg" alt="Setting File limit example" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The limit is enforced on the server, with browser-side validation too.&lt;/p&gt;

&lt;p&gt;I also improved the browser UI and fixed several file-transfer issues.&lt;/p&gt;

&lt;p&gt;📦 NPM:&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/magicdrop-cli" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/magicdrop-cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ GitHub:&lt;br&gt;
&lt;a href="https://github.com/sorathiya903/magicdrop" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/magicdrop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear your feedback! 🙌&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>A tool which can share files and text between your terminal and browser over your local network. No cloud storage or internet needed.</title>
      <dc:creator>Aditya Sorathiya</dc:creator>
      <pubDate>Thu, 03 Sep 2026 01:19:24 +0000</pubDate>
      <link>https://dev.to/aditya_sorathiya_069252f4/i-built-magicdrop-share-files-and-text-between-your-terminal-and-browser-over-your-local-network-p8e</link>
      <guid>https://dev.to/aditya_sorathiya_069252f4/i-built-magicdrop-share-files-and-text-between-your-terminal-and-browser-over-your-local-network-p8e</guid>
      <description>&lt;p&gt;Have you ever needed to quickly move a file or some text between your phone and computer without uploading it to a cloud service?&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;MagicDrop&lt;/strong&gt;, a simple local-network file and text sharing tool that connects your terminal with a browser.&lt;/p&gt;

&lt;p&gt;You start MagicDrop from the terminal, scan a QR code, and your browser becomes a connected device.&lt;br&gt;
MagicDrop supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💻 Terminal → Browser file sharing&lt;/li&gt;
&lt;li&gt;🌐 Browser → Terminal file sharing&lt;/li&gt;
&lt;li&gt;🌐 Browser → Browser file sharing&lt;/li&gt;
&lt;li&gt;💬 Text sharing between devices&lt;/li&gt;
&lt;li&gt;📱 Multiple connected devices&lt;/li&gt;
&lt;li&gt;📷 QR-code connection&lt;/li&gt;
&lt;li&gt;✅ Transfer approval/rejection&lt;/li&gt;
&lt;li&gt;📦 Chunk-based file transfers&lt;/li&gt;
&lt;li&gt;📁 Automatic downloads on the terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The first version, v0.0.1, is now released.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/sorathiya903/MagicDrop" rel="noopener noreferrer"&gt;https://github.com/sorathiya903/MagicDrop&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🚀 Install
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; magicdrop-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Start it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;md start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MagicDrop starts a local server and displays a QR code. Scan it from another device connected to the same local network.&lt;/p&gt;

&lt;h2&gt;
  
  
  📁 Send a file
&lt;/h2&gt;

&lt;p&gt;From the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;md&amp;gt; send photo.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The receiving device gets an approval request. Once accepted, the file is transferred in chunks.&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 Send text
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;md&amp;gt; send-text Hello from MagicDrop!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No quotes are required.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔢 Check version
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;md &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MagicDrop 0.0.1 by Aditya Sorathiya
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Version might be different as new version come.&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%2Fkxzurgo1kgh4eggmov9h.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%2Fkxzurgo1kgh4eggmov9h.png" alt="MagicDrop Logo" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is my first release of MagicDrop, and I'm planning to keep improving it.&lt;br&gt;
I'd love to hear what features you think would make MagicDrop more useful. 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
