<?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: Fyodor Dostoevsky</title>
    <description>The latest articles on DEV Community by Fyodor Dostoevsky (@asim_ayaz).</description>
    <link>https://dev.to/asim_ayaz</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%2F4001925%2F5bf41c06-d2e6-4ab6-802d-1db7b15a3cd0.webp</url>
      <title>DEV Community: Fyodor Dostoevsky</title>
      <link>https://dev.to/asim_ayaz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/asim_ayaz"/>
    <language>en</language>
    <item>
      <title>I Put Linux in the Browser So You Don't Have to Install a VM</title>
      <dc:creator>Fyodor Dostoevsky</dc:creator>
      <pubDate>Sun, 19 Jul 2026 10:17:25 +0000</pubDate>
      <link>https://dev.to/asim_ayaz/i-put-linux-in-the-browser-so-you-dont-have-to-install-a-vm-2e7m</link>
      <guid>https://dev.to/asim_ayaz/i-put-linux-in-the-browser-so-you-dont-have-to-install-a-vm-2e7m</guid>
      <description>&lt;p&gt;Hello everyone! I'm &lt;strong&gt;Asim Ayaz&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;I'm a DevOps &amp;amp; InfoSec student and open-source contributor. I run Fedora as my daily driver, and I love building free tools that lower the barrier to entry for people learning tech.&lt;/p&gt;

&lt;p&gt;Today I want to share &lt;strong&gt;Web Linux&lt;/strong&gt; a project I built because I was tired of telling my friends to "just install a VM" to practice Linux commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every time someone asks me &lt;em&gt;"how do I learn Linux?"&lt;/em&gt; I give them the same answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download VirtualBox&lt;/li&gt;
&lt;li&gt;Download an ISO&lt;/li&gt;
&lt;li&gt;Allocate 4GB of RAM&lt;/li&gt;
&lt;li&gt;Fight with display drivers for 3 hours&lt;/li&gt;
&lt;li&gt;Finally open a terminal&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By step 3, they've already given up.&lt;/p&gt;

&lt;p&gt;I thought: &lt;em&gt;"What if you could practice Linux commands directly in your browser? No install. No VM. Just a URL."&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: Web Linux
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Web Linux&lt;/strong&gt; is a browser-based Linux environment that lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Run common Linux commands in a terminal-like interface&lt;/li&gt;
&lt;li&gt;✅ Practice file system navigation (&lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;, &lt;code&gt;mkdir&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;✅ Learn command syntax without breaking your own system&lt;/li&gt;
&lt;li&gt;✅ Access it from any device — phone, tablet, Chromebook&lt;/li&gt;
&lt;li&gt;✅ Zero setup, zero install, zero risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://web-linux-delta.vercel.app" rel="noopener noreferrer"&gt;web-linux-delta.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;When I started learning Linux a year ago, I was terrified of typing the wrong command and bricking my system. Having a sandbox in the browser would've saved me weeks of anxiety.&lt;/p&gt;

&lt;p&gt;Web Linux isn't a full VM, it's a safe, educational layer that behaves like a real terminal. Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Students preparing for Linux certifications (LPIC, RHCSA, CompTIA Linux+)&lt;/li&gt;
&lt;li&gt;Windows/Mac users curious about the command line&lt;/li&gt;
&lt;li&gt;Beginners who want to practice &lt;code&gt;rm -rf&lt;/code&gt; without consequences 😄&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The 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;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;HTML + CSS + Vanilla JS&lt;/td&gt;
&lt;td&gt;Fast, no framework bloat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal UI&lt;/td&gt;
&lt;td&gt;Custom-built or Xterm.js&lt;/td&gt;
&lt;td&gt;Familiar CLI feel in the browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logic&lt;/td&gt;
&lt;td&gt;Client-side JavaScript&lt;/td&gt;
&lt;td&gt;Instant feedback, no server latency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;Free, fast, global edge network&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A Real Example
&lt;/h2&gt;

&lt;p&gt;Type this in Web Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;projects
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;projects
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;hello.txt
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello from Web Linux"&lt;/span&gt; &amp;amp;gt&lt;span class="p"&gt;;&lt;/span&gt; hello.txt
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;hello.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ol&gt;
&lt;li&gt;The browser is more powerful than we think
You don't always need a backend. Parsing commands, maintaining a virtual file system, and rendering output can all happen client-side.&lt;/li&gt;
&lt;li&gt;UX matters for beginners
Real terminals are intimidating. A blinking cursor with no context is scary. I added:
Command hints and autocomplete suggestions
Color-coded output (errors in red, success in green)
A "cheat sheet" sidebar for common commands&lt;/li&gt;
&lt;li&gt;Teaching is the best way to learn
Building this forced me to truly understand how Linux file systems work. I had to model cd, pwd, and relative paths in JavaScript. Now I know them cold.
What's Next
[ ] Pipe support (cat file.txt | grep "error")
[ ] More commands (chmod, chown, ps, top)
[ ] Interactive tutorials (e.g., "Learn grep in 5 minutes")
[ ] Dark mode toggle (because obviously)
Star the repo to follow along — I push updates every weekend.
Try It / Contribute
🔗 Live App: web-linux-delta.vercel.app
⭐ GitHub Repo: github.com/YOUR_USERNAME/web-linux
🐛 Found a bug or want a new command? Open an issue — I read every single one.
Did you learn Linux in a VM, WSL, or straight on bare metal? What's your advice for absolute beginners? Drop a comment below 👇
plain&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>linux</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built a Lightweight Postman Alternative Because My Laptop Was Dying</title>
      <dc:creator>Fyodor Dostoevsky</dc:creator>
      <pubDate>Sun, 19 Jul 2026 08:30:02 +0000</pubDate>
      <link>https://dev.to/asim_ayaz/i-built-a-lightweight-postman-alternative-because-my-laptop-was-dying-9hl</link>
      <guid>https://dev.to/asim_ayaz/i-built-a-lightweight-postman-alternative-because-my-laptop-was-dying-9hl</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;I was learning DevOps and APIs this summer. Every time I wanted to test a quick endpoint, I had two options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open Postman&lt;/strong&gt; — which takes 5 seconds to load, eats 800MB of RAM, and updates every 3 days&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use curl&lt;/strong&gt; — which is great until you need to format JSON, add headers, or see a pretty response&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My laptop (running Fedora, 8GB RAM) would start fanning like a jet engine. For a &lt;em&gt;simple GET request&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I thought: &lt;em&gt;"Why does API testing need to be a desktop app?"&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: API-Sisyphus
&lt;/h2&gt;

&lt;p&gt;I built a web-based API client that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Loads instantly in your browser&lt;/li&gt;
&lt;li&gt;✅ Zero install (just a URL)&lt;/li&gt;
&lt;li&gt;✅ Sends GET, POST, PUT, DELETE with custom headers&lt;/li&gt;
&lt;li&gt;✅ Pretty-prints JSON responses&lt;/li&gt;
&lt;li&gt;✅ Runs on Vercel's free tier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://api-sisyphus.vercel.app" rel="noopener noreferrer"&gt;api-sisyphus.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "Sisyphus"?
&lt;/h2&gt;

&lt;p&gt;&amp;gt; &lt;em&gt;"One must imagine Sisyphus happy."&lt;/em&gt; — Albert Camus&lt;/p&gt;

&lt;p&gt;Because debugging APIs is pushing a boulder up a hill. You fix one 500 error, another appears. The struggle itself is enough to fill a developer's heart.&lt;/p&gt;

&lt;p&gt;Also, the domain was available.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;The UI is dead simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste your API URL&lt;/li&gt;
&lt;li&gt;Pick the HTTP method&lt;/li&gt;
&lt;li&gt;Add headers/body if needed&lt;/li&gt;
&lt;li&gt;Hit &lt;strong&gt;SEND&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;See formatted response + status code + latency&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No tabs. No workspaces. No "syncing to cloud." Just you and the endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 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;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Vanilla JS + HTML&lt;/td&gt;
&lt;td&gt;No build step, instant load&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;CSS custom properties&lt;/td&gt;
&lt;td&gt;Dark mode ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;Free, global CDN, auto-deploy from Git&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Pure client-side fetch() — your data never touches my server&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A Real Example
&lt;/h2&gt;

&lt;p&gt;Testing a public API:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
javascript
// What the tool sends behind the scenes
fetch('https://api.github.com/users/abyss', {
  method: 'GET',
  headers: {
    'Accept': 'application/vnd.github.v3+json'
  }
})
Response:
JSON
{
  "login": "abyss",
  "id": 123456,
  "public_repos": 12,
  "followers": 203
}
All formatted, syntax-highlighted, and copy-pasteable.
What I Learned
1. You don't need React for everything
Vanilla JS is underrated. No node_modules, no webpack, no hydration delays. The entire app is &amp;lt; 50KB.
2. Vercel is absurdly easy
Push to GitHub → auto-deploy → custom domain in 2 clicks. I spent more time writing the README than configuring deployment.
3. Developer experience matters
The difference between "it works" and "it's delightful" is:
A loading spinner that doesn't lie
Error messages that tell you why CORS failed
Response time in milliseconds
What's Next
[ ] Save request history in localStorage
[ ] Import/export Postman collections
[ ] Response time graphing
Star the repo to follow along — I ship updates weekly.
Try It / Contribute
🔗 Live App: api-sisyphus.vercel.app
⭐ GitHub Repo: github.com/YOUR_USERNAME/api-sisyphus
🐛 Found a bug? Open an issue — I respond within 24 hours.
What's your go-to API testing tool? curl? Postman? Insomnia? Drop a comment below 👇
plain

---

## Why the Text Looked "Too Big"

You probably pasted the **front matter** (`---` block with `title:`, `tags:`, etc.) into the body. Dev.to renders that as giant text because:
- The `#` in markdown becomes a **heading** (big text)
- The `---` becomes a horizontal rule

**dev.to handles metadata separately** — use their sidebar fields, not markdown front matter.

---

## Preview Check

Before publishing, click **"Preview"**. You should see:
- Normal paragraph text (not giant)
- `##` headings as medium-sized section titles
- Bullet points as actual lists
- Code blocks with syntax highlighting

If anything still looks weird, take a screenshot of the preview and I'll fix it.

Ready to paste? Replace `YOUR_USERNAME` with your actual GitHub username in the repo link first!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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