<?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>Forem: Abhishek Dvs</title>
    <description>The latest articles on Forem by Abhishek Dvs (@abhishekdvs).</description>
    <link>https://forem.com/abhishekdvs</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1030106%2F325fe636-8c2b-4f66-a524-5a3b7a135000.jpeg</url>
      <title>Forem: Abhishek Dvs</title>
      <link>https://forem.com/abhishekdvs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abhishekdvs"/>
    <language>en</language>
    <item>
      <title>New Year, New Build: Traata Goes Mobile</title>
      <dc:creator>Abhishek Dvs</dc:creator>
      <pubDate>Thu, 01 Jan 2026 05:14:45 +0000</pubDate>
      <link>https://forem.com/abhishekdvs/new-year-new-build-traata-goes-mobile-2a6f</link>
      <guid>https://forem.com/abhishekdvs/new-year-new-build-traata-goes-mobile-2a6f</guid>
      <description>&lt;h1&gt;
  
  
  Traata, Continued: Shipping the Android App on Day One of the Year
&lt;/h1&gt;

&lt;p&gt;I launched Traata recently as a web-first product.&lt;br&gt;
Today, on the first day of the new year, I shipped the next piece of it: the &lt;strong&gt;Traata Android app&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not because everything is perfect.&lt;br&gt;
Not because it’s “ready for scale”.&lt;br&gt;
But because it’s usable, real, and solves a problem &lt;em&gt;right now&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why launch on January 1?
&lt;/h2&gt;

&lt;p&gt;A lot of people start the year by writing plans, resolutions, and roadmaps.&lt;/p&gt;

&lt;p&gt;I prefer shipping.&lt;/p&gt;

&lt;p&gt;Launching on day one felt symbolic in a simple way: start the year by putting something useful into the world instead of talking about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Android app (current state)
&lt;/h2&gt;

&lt;p&gt;The Traata Android app is &lt;strong&gt;live&lt;/strong&gt;, but not on Google Play yet.&lt;br&gt;
You can download it directly from the website for now.&lt;/p&gt;

&lt;p&gt;This wasn’t about bypassing the Play Store — it was about not blocking users behind timelines that don’t matter to them.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the app adds
&lt;/h3&gt;

&lt;p&gt;The biggest thing this release unlocks is &lt;strong&gt;proper user + web sync&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your Traata data stays in sync across devices&lt;/li&gt;
&lt;li&gt;You can switch phones without breaking anything&lt;/li&gt;
&lt;li&gt;Mobile and web are designed to work &lt;em&gt;together&lt;/em&gt;, not as separate products&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This app isn’t a wrapper or a shortcut. It’s a real extension of Traata.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it’s not on Google Play (yet)
&lt;/h2&gt;

&lt;p&gt;Short answer: distribution friction.&lt;/p&gt;

&lt;p&gt;Longer answer: I didn’t want store approvals, listings, and upload limits to delay something that already works. The Play Store release is coming, but I wanted early users to have access &lt;em&gt;now&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If you’re comfortable installing directly, you can use it today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Traata in public
&lt;/h2&gt;

&lt;p&gt;Traata is still early. There are rough edges. There are things I want to improve.&lt;/p&gt;

&lt;p&gt;But I believe strongly in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;shipping early&lt;/li&gt;
&lt;li&gt;learning from real usage&lt;/li&gt;
&lt;li&gt;letting products grow in public&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Android release is part of that mindset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;Web + Android app:&lt;br&gt;
&lt;strong&gt;&lt;a href="https://traata.pages.dev?v=1" rel="noopener noreferrer"&gt;https://traata.pages.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you try it and have feedback — good or bad — I genuinely want to hear it.&lt;/p&gt;

&lt;p&gt;New year. New build. Back to work.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>security</category>
      <category>learning</category>
    </item>
    <item>
      <title>Traata: A Modern, Developer-First Password Manager Built for Security, Speed, and Sanity</title>
      <dc:creator>Abhishek Dvs</dc:creator>
      <pubDate>Tue, 16 Dec 2025 12:21:07 +0000</pubDate>
      <link>https://forem.com/abhishekdvs/traata-a-modern-developer-first-password-manager-built-for-security-speed-and-sanity-42fd</link>
      <guid>https://forem.com/abhishekdvs/traata-a-modern-developer-first-password-manager-built-for-security-speed-and-sanity-42fd</guid>
      <description>&lt;p&gt;Passwords are broken.&lt;/p&gt;

&lt;p&gt;Not because cryptography failed — but because &lt;em&gt;UX, trust, and developer empathy&lt;/em&gt; were ignored for too long.&lt;/p&gt;

&lt;p&gt;Every year, users are asked to juggle dozens (sometimes hundreds) of credentials across devices, platforms, and environments. Meanwhile, developers are forced to choose between bloated enterprise tools or DIY solutions that sacrifice usability for control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traata exists to fix that.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Traata?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Traata&lt;/strong&gt; is a modern, security-focused password manager designed with &lt;strong&gt;developers, power users, and privacy-first individuals&lt;/strong&gt; in mind.&lt;/p&gt;

&lt;p&gt;It’s not just another vault with a master password.&lt;/p&gt;

&lt;p&gt;Traata is built around three core principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Security without compromise&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UX that doesn’t fight the user&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A developer-friendly architecture that scales&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No unnecessary fluff. No dark patterns. No cloud-first assumptions.&lt;/p&gt;

&lt;p&gt;Just a clean, fast, and trustworthy way to manage secrets.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Traata Is Different
&lt;/h2&gt;

&lt;p&gt;Most password managers optimize for &lt;em&gt;marketing checklists&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Traata optimizes for &lt;strong&gt;real-world usage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here’s what sets it apart.&lt;/p&gt;




&lt;h3&gt;
  
  
  Security Comes First (Not as an Afterthought)
&lt;/h3&gt;

&lt;p&gt;Traata is built on &lt;strong&gt;zero-trust fundamentals&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;End-to-end encryption&lt;/li&gt;
&lt;li&gt;Vault data encrypted &lt;strong&gt;before&lt;/strong&gt; storage&lt;/li&gt;
&lt;li&gt;No plaintext exposure — ever&lt;/li&gt;
&lt;li&gt;Minimal attack surface by design&lt;/li&gt;
&lt;/ul&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If Traata can’t read your passwords, neither can anyone else.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even during sync or backup flows, encryption remains client-side.&lt;/p&gt;




&lt;h3&gt;
  
  
  Designed for Speed and Focus
&lt;/h3&gt;

&lt;p&gt;Ever opened a password manager only to scroll endlessly just to reveal one password?&lt;/p&gt;

&lt;p&gt;That’s bad UX — and Traata actively avoids it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart vault expansion (no awkward scrolling)&lt;/li&gt;
&lt;li&gt;Clear visibility states (show/hide when &lt;em&gt;you&lt;/em&gt; want)&lt;/li&gt;
&lt;li&gt;Fast interactions with minimal clicks&lt;/li&gt;
&lt;li&gt;Keyboard-friendly flows for power users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The UI stays out of your way so you can get what you need and move on.&lt;/p&gt;




&lt;h3&gt;
  
  
  Built Like a Real Developer Tool
&lt;/h3&gt;

&lt;p&gt;Traata isn’t just &lt;em&gt;used&lt;/em&gt; by developers — it’s &lt;strong&gt;built like software developers respect&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, maintainable architecture&lt;/li&gt;
&lt;li&gt;Thoughtful state management&lt;/li&gt;
&lt;li&gt;Predictable behavior across platforms&lt;/li&gt;
&lt;li&gt;Easy to extend, evolve, and harden&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you’re inspecting the frontend, backend, or mobile layer, Traata feels intentional — not patched together.&lt;/p&gt;




&lt;h2&gt;
  
  
  Use Cases Traata Excels At
&lt;/h2&gt;

&lt;p&gt;Traata shines where traditional password managers struggle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing &lt;strong&gt;personal + work credentials&lt;/strong&gt; cleanly&lt;/li&gt;
&lt;li&gt;Storing &lt;strong&gt;API keys, tokens, and secrets&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Keeping &lt;strong&gt;multiple environments&lt;/strong&gt; organized&lt;/li&gt;
&lt;li&gt;Using a password manager without trusting “the cloud” blindly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you care about &lt;em&gt;how&lt;/em&gt; your tools are built — Traata is for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Built for the Future
&lt;/h2&gt;

&lt;p&gt;Traata isn’t chasing trends — it’s building foundations.&lt;/p&gt;

&lt;p&gt;Planned and evolving areas include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smarter vault organization&lt;/li&gt;
&lt;li&gt;Secure cross-platform syncing&lt;/li&gt;
&lt;li&gt;Offline-first reliability&lt;/li&gt;
&lt;li&gt;Stronger integrations without compromising privacy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is approached with one question in mind:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Does this make the product more secure and more usable?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer is no — it doesn’t ship.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Security tools should feel &lt;strong&gt;boring in the best way&lt;/strong&gt; — predictable, fast, and trustworthy.&lt;/p&gt;

&lt;p&gt;Traata doesn’t try to impress with buzzwords.&lt;br&gt;&lt;br&gt;
It earns trust through &lt;strong&gt;engineering discipline and UX clarity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you’ve ever felt uneasy trusting your passwords to opaque systems, or frustrated by bloated managers that slow you down…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traata is worth paying attention to.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the Demo
&lt;/h2&gt;

&lt;p&gt;Want to see Traata in action?&lt;/p&gt;

&lt;p&gt;You can explore the live demo here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://traata.pages.dev?v=1" rel="noopener noreferrer"&gt;https://traata.pages.dev?v=1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No marketing walls. No forced sign-ups.&lt;br&gt;&lt;br&gt;
Just a clear look at how Traata feels, performs, and respects your time.&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>programming</category>
    </item>
    <item>
      <title>♟️ Bringing Chess to Life in Your Browser — Powered by Stockfish and Sass</title>
      <dc:creator>Abhishek Dvs</dc:creator>
      <pubDate>Thu, 10 Jul 2025 12:32:09 +0000</pubDate>
      <link>https://forem.com/abhishekdvs/bringing-chess-to-life-in-your-browser-powered-by-stockfish-and-sass-2bi0</link>
      <guid>https://forem.com/abhishekdvs/bringing-chess-to-life-in-your-browser-powered-by-stockfish-and-sass-2bi0</guid>
      <description>&lt;h1&gt;
  
  
  BlunderBot ♟️: A Playful Chess Bot Opponent in Your Browser
&lt;/h1&gt;

&lt;p&gt;As a FIDE-rated 2100+ player and a developer, I’ve always been fascinated by the blend of &lt;strong&gt;chess precision&lt;/strong&gt; and &lt;strong&gt;tech creativity&lt;/strong&gt;. That’s what inspired me to build &lt;strong&gt;&lt;a href="https://blunderbot.pages.dev/" rel="noopener noreferrer"&gt;BlunderBot&lt;/a&gt;&lt;/strong&gt; — an online chess-playing AI that runs right in your browser, powered by &lt;a href="https://stockfishchess.org/" rel="noopener noreferrer"&gt;Stockfish&lt;/a&gt; and built with modern full-stack tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 What Can You Do With BlunderBot?
&lt;/h2&gt;

&lt;p&gt;BlunderBot isn't just another “click to move pieces” board. It’s a fast, responsive, and slightly sarcastic bot that's built to &lt;em&gt;humble you gently&lt;/em&gt; — depending on the difficulty level you choose.&lt;/p&gt;

&lt;p&gt;Here’s what you can do with it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Play a full game against Stockfish&lt;/strong&gt; in your browser (difficulty: Easy → Insane)&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Pick your side&lt;/strong&gt; (white/black) to play the opening or test defenses&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Choose a board theme &amp;amp; piece style&lt;/strong&gt; to match your mood or aesthetic&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Download your game as PGN&lt;/strong&gt; for analysis on Lichess or Chess.com
&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Export a final board snapshot as PNG&lt;/strong&gt; — perfect for sharing, tweeting, or archiving&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Restart instantly&lt;/strong&gt; and play again without page reloads&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Coming soon:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔍 In-browser move evaluation
&lt;/li&gt;
&lt;li&gt;🧠 Blunder detection + taunts
&lt;/li&gt;
&lt;li&gt;🎓 Training and feedback based on your games
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Tech&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;React + Next.js 14 (App Router)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Styling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tailwind CSS + Custom themes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Game Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;chess.js&lt;/code&gt; + &lt;code&gt;react-chessboard&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI Opponent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web Worker running &lt;strong&gt;Stockfish&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hosting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cloudflare Pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Extras&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PGN export, HTML-to-image for PNG export&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📦 Open Source
&lt;/h2&gt;

&lt;p&gt;You can check out the full source code here:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/AbhishekDvs/BlunderBot" rel="noopener noreferrer"&gt;github.com/AbhishekDvs/BlunderBot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to fork it, improve it, or deploy your own version!&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Why I Built It
&lt;/h2&gt;

&lt;p&gt;There are many great chess platforms&lt;sup id="fnref1"&gt;1&lt;/sup&gt;, but most of them either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't offer full AI control in the browser&lt;/li&gt;
&lt;li&gt;Lack customization&lt;/li&gt;
&lt;li&gt;Aren’t easy to self-host or modify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a dev who loves side-projects and a chess player who loves customizing tools, I wanted to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build something I could tweak and deploy freely
&lt;/li&gt;
&lt;li&gt;Create a minimal, beautiful environment to &lt;em&gt;practice and reflect&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Have a chessboard that occasionally mocks me for blundering my rook 🫠&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔜 Roadmap
&lt;/h2&gt;

&lt;p&gt;Some things I'm actively working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⏳ Eval bar using Stockfish output
&lt;/li&gt;
&lt;li&gt;⏳ PGN upload + auto analysis
&lt;/li&gt;
&lt;li&gt;⏳ Leaderboard or local score tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re a dev or chess nerd, your PRs, ideas, or insults are all welcome.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 Credits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Chess Engine: &lt;a href="https://stockfishchess.org/" rel="noopener noreferrer"&gt;Stockfish&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Board UI: &lt;a href="https://github.com/Clariity/react-chessboard" rel="noopener noreferrer"&gt;react-chessboard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PGN Handling: &lt;a href="https://github.com/jhlywa/chess.js" rel="noopener noreferrer"&gt;chess.js&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hosted via &lt;a href="https://pages.cloudflare.com/" rel="noopener noreferrer"&gt;Cloudflare Pages&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Built by &lt;a href="https://abhisdistro.pages.dev" rel="noopener noreferrer"&gt;Abhishek Dvs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;







&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;Tools like &lt;a href="https://lichess.org/" rel="noopener noreferrer"&gt;Lichess&lt;/a&gt; and &lt;a href="https://chess.com" rel="noopener noreferrer"&gt;Chess.com&lt;/a&gt; are incredible platforms — they support PGN analysis, training, and online play. BlunderBot is a lightweight, single-player alternative that runs completely in-browser without login or server sync. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>chess</category>
      <category>programming</category>
      <category>ai</category>
    </item>
    <item>
      <title>A No-Risks Linux Terminal in Your Browser (Debian Edition 🐧)</title>
      <dc:creator>Abhishek Dvs</dc:creator>
      <pubDate>Wed, 02 Jul 2025 05:55:24 +0000</pubDate>
      <link>https://forem.com/abhishekdvs/a-no-risks-linux-terminal-in-your-browser-debian-edition--10d5</link>
      <guid>https://forem.com/abhishekdvs/a-no-risks-linux-terminal-in-your-browser-debian-edition--10d5</guid>
      <description>&lt;p&gt;Ever typed &lt;code&gt;rm -rf /&lt;/code&gt; into your brain before your terminal? Yeah… same.&lt;br&gt;&lt;br&gt;
But what if there was a &lt;strong&gt;zero-risk&lt;/strong&gt; place to try commands without breaking your system or nuking your &lt;code&gt;$HOME&lt;/code&gt; folder?&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Meet: TerminalSandbox
&lt;/h2&gt;

&lt;p&gt;This is a web-based terminal sandbox I built for fun (and learning).&lt;br&gt;&lt;br&gt;
It's backed by a FastAPI-powered backend that safely runs &lt;strong&gt;Debian-based shell commands&lt;/strong&gt; in isolated environments — straight from your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it to:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Learn and test Linux CLI basics&lt;br&gt;&lt;br&gt;
✅ Practice without needing a VM or Docker&lt;br&gt;&lt;br&gt;
✅ Demo commands live to others&lt;br&gt;&lt;br&gt;
✅ Build your confidence in Bash, one &lt;code&gt;ls&lt;/code&gt; at a time&lt;br&gt;&lt;br&gt;
✅ Feel like a hacker with absolutely no danger 🚨&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 But is it safe?
&lt;/h2&gt;

&lt;p&gt;Yes. I’ve sandboxed the environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every user gets their &lt;strong&gt;own temporary isolated directory&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Dangerous patterns like &lt;code&gt;rm -rf&lt;/code&gt;, &lt;code&gt;shutdown&lt;/code&gt;, &lt;code&gt;reboot&lt;/code&gt;, etc. are &lt;strong&gt;blocked&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;safe, whitelisted commands&lt;/strong&gt; are allowed (with descriptions)&lt;/li&gt;
&lt;li&gt;No persistent file system access&lt;/li&gt;
&lt;li&gt;Sessions expire and self-clean&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it like a toddler-safe terminal: you can poke around, break things (sort of), and nothing really explodes.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech Stack
&lt;/h2&gt;

&lt;p&gt;Here’s the nerdy part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; backend (Python 3.11)&lt;/li&gt;
&lt;li&gt;Async command execution with stdout/stderr capture&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;uvicorn&lt;/code&gt; + &lt;code&gt;slowapi&lt;/code&gt; for rate limiting&lt;/li&gt;
&lt;li&gt;Hosted sessions with UUIDs and safety checks&lt;/li&gt;
&lt;li&gt;Frontend is served via &lt;strong&gt;Cloudflare Pages&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Currently supports &lt;strong&gt;Debian-based commands only&lt;/strong&gt; — but Arch might sneak in soon 👀&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎮 Live Demo
&lt;/h2&gt;

&lt;p&gt;👉 Try it here: &lt;a href="https://terminalsandbox.pages.dev" rel="noopener noreferrer"&gt;https://terminalsandbox.pages.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🛠 Source code: [&lt;a href="https://github.com/AbhishekDvs/linux-terminal-sandbox" rel="noopener noreferrer"&gt;https://github.com/AbhishekDvs/linux-terminal-sandbox&lt;/a&gt;]&lt;/p&gt;




&lt;h2&gt;
  
  
  📢 Why I built this
&lt;/h2&gt;

&lt;p&gt;I love Linux. I love web stuff. And I &lt;em&gt;really&lt;/em&gt; love giving folks a way to learn without fear.&lt;/p&gt;

&lt;p&gt;This started as a sandbox experiment — now it’s a tool I genuinely use to teach, debug, and play.&lt;/p&gt;

&lt;p&gt;If you’ve ever wanted to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share shell snippets without spinning up an instance&lt;/li&gt;
&lt;li&gt;Help a friend learn terminal basics&lt;/li&gt;
&lt;li&gt;Or just flex your &lt;code&gt;htop&lt;/code&gt; in peace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then TerminalSandbox might be your jam. 🖥️&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 Try it, Fork it, Break it (Safely)
&lt;/h2&gt;

&lt;p&gt;Give it a spin. Share feedback. Fork it and build your own flavor.&lt;/p&gt;

&lt;p&gt;If this project made you smile, star the repo or drop a comment.&lt;br&gt;&lt;br&gt;
Let’s make the terminal a little more welcoming — one &lt;code&gt;echo&lt;/code&gt; at a time.&lt;/p&gt;




&lt;p&gt;🌐 Built by &lt;a href="https://abhisdistro.pages.dev/" rel="noopener noreferrer"&gt;Abhishek Dvs&lt;/a&gt;&lt;br&gt;&lt;br&gt;
If you liked this, check out more of my work and interests on my personal site:&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://abhisdistro.pages.dev" rel="noopener noreferrer"&gt;https://abhisdistro.pages.dev&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;I'd love to hear what you think!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>opensource</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
