<?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: Muneeb Hussain</title>
    <description>The latest articles on DEV Community by Muneeb Hussain (@themuneebh).</description>
    <link>https://dev.to/themuneebh</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%2F1027328%2F2ceea970-f897-4839-94d2-94d07cee5b95.png</url>
      <title>DEV Community: Muneeb Hussain</title>
      <link>https://dev.to/themuneebh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/themuneebh"/>
    <language>en</language>
    <item>
      <title>Let's Put an End to the MCP vs CLI Debate (I WON)</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sun, 22 Mar 2026 08:16:50 +0000</pubDate>
      <link>https://dev.to/themuneebh/lets-put-an-end-to-the-mcp-vs-cli-debate-i-won-45m6</link>
      <guid>https://dev.to/themuneebh/lets-put-an-end-to-the-mcp-vs-cli-debate-i-won-45m6</guid>
      <description>&lt;p&gt;&lt;em&gt;A structured debate that settles the 2026's hottest AI agent architecture argument.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;In late February 2026, Eric Holmes published "MCP is dead. Long live the CLI" and it hit the Hacker News front page like a grenade. Garry Tan, YC's CEO, followed up on X with a blunt "MCP sucks honestly." The AI agent community split into two camps overnight.&lt;/p&gt;

&lt;p&gt;One side says MCP (Model Context Protocol) is unnecessary abstraction. The other says every major tech company has already committed to it. Benchmarks got thrown around. Blog posts multiplied. Everybody had an opinion.&lt;/p&gt;

&lt;p&gt;So we debated it — properly. Point by point, claim by claim, until there was nothing left to argue. Here's how it went down, and where we landed.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Numbers That Started the War
&lt;/h2&gt;

&lt;p&gt;Before opinions, the data. Recent benchmarks paint a clear picture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;CLI&lt;/th&gt;
&lt;th&gt;MCP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tokens for a simple repo query&lt;/td&gt;
&lt;td&gt;1,365&lt;/td&gt;
&lt;td&gt;44,026 (32x more)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;td&gt;~72%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub tool context cost&lt;/td&gt;
&lt;td&gt;~0 (pre-trained)&lt;/td&gt;
&lt;td&gt;~55,000 tokens (93 tools)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context burn (real-world team)&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;143,000 / 200,000 tokens (72%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Perplexity publicly dropped MCP from its agent architecture. Internal benchmarks showed 15-20x token overhead for equivalent tasks. That's not a rounding error. That's a fundamentally different cost structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 1: The Safety Argument
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; Giving an agent raw database access is dangerous. A read-only MCP server is inherently safer than handing the agent a &lt;code&gt;psql&lt;/code&gt; connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; Build a CLI wrapper.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# mydb — a read-only CLI wrapper&lt;/span&gt;
psql &lt;span class="nt"&gt;-h&lt;/span&gt; &lt;span class="nv"&gt;$DB_HOST&lt;/span&gt; &lt;span class="nt"&gt;-U&lt;/span&gt; readonly_user &lt;span class="nt"&gt;--set&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;ON_ERROR_STOP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;on &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same safety. Fraction of the tokens. Took 30 seconds to write. The MCP server solving this problem is a JSON-RPC transport layer, schema definitions, capability negotiation, and a long-running process — all wrapping the exact same &lt;code&gt;psql&lt;/code&gt; call underneath.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; CLI wins. The wrapper is trivially simple and strictly cheaper to build and run.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 2: Multi-Tenant Authentication
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; CLI is single-user. MCP handles OAuth, dynamic auth across multiple users, enterprise SSO. You need MCP for multi-tenancy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; We've had multi-tenant CLI auth for years.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;aws sts assume-role&lt;/code&gt; — cross-account, scoped credentials&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gcloud auth login --account&lt;/code&gt; — multi-identity&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker context use&lt;/code&gt; — switch between environments&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;terraform workspace select&lt;/code&gt; — isolated state per tenant&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kubectl config use-context&lt;/code&gt; — cluster switching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools serve millions of users across thousands of organizations. The multi-tenant problem is solved at the OS and credential level, not the protocol level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; CLI wins. Battle-tested auth infrastructure already exists. MCP reinvents it with less maturity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 3: Complex Workflows
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; CLI falls apart for complex, multi-step workflows. MCP's structured protocol handles orchestration better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; What is more complex than ffmpeg?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="nt"&gt;-filter_complex&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"[0:v]split=2[v1][v2]; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
   [v1]crop=iw/2:ih:0:0[left]; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
   [v2]crop=iw/2:ih:iw/2:0[right]; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
   [left][right]hstack"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-c&lt;/span&gt;:v libx264 &lt;span class="nt"&gt;-crf&lt;/span&gt; 23 output.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If an AI agent can compose ffmpeg pipelines with filters, codecs, stream mapping, and complex filter graphs — one of the most notoriously complex CLIs ever built — then "CLI can't handle complex workflows" is dead on arrival.&lt;/p&gt;

&lt;p&gt;Unix pipes and composition (&lt;code&gt;|&lt;/code&gt;, &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;()&lt;/code&gt;) have been orchestrating complex workflows since before most of us were born.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; CLI wins decisively. Complexity is CLI's home turf.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 4: Tool Discovery
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; Agents can't discover unknown CLI tools. MCP's &lt;code&gt;tools/list&lt;/code&gt; gives structured schema at runtime. CLI has no equivalent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; &lt;code&gt;--help&lt;/code&gt; has been the universal discovery mechanism for decades. It worked for humans. It works for agents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;gh &lt;span class="nt"&gt;--help&lt;/span&gt;
&lt;span class="go"&gt;Work seamlessly with GitHub from the command line.

USAGE
&lt;/span&gt;&lt;span class="gp"&gt;  gh &amp;lt;command&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;subcommand&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;flags]
&lt;span class="go"&gt;
CORE COMMANDS
  pr:       Manage pull requests
  issue:    Manage issues
  repo:     Manage repositories
&lt;/span&gt;&lt;span class="c"&gt;  ...
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agent-friendly CLIs are now emerging that optimize &lt;code&gt;--help&lt;/code&gt; output for token efficiency — compact descriptions, structured flag listings, minimal noise. The new generation of CLIs is built with agents as first-class users.&lt;/p&gt;

&lt;p&gt;And here's the kicker: &lt;code&gt;--help&lt;/code&gt; output is wildly inconsistent across tools, yes. But MCP schemas are also inconsistent — just consistently &lt;em&gt;verbose&lt;/em&gt;. A bloated schema is not better than a concise &lt;code&gt;--help&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Roughly even, but CLI gets the edge on token cost. Discovery via &lt;code&gt;--help&lt;/code&gt; is "good enough" and costs tokens only when needed, not upfront.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 5: Who Builds the Integration?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; Someone builds an MCP server once, publishes it, and any MCP-compatible agent can use it. It's a standard interface. Build once, use everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; This argument contains its own refutation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Someone builds an MCP server" — yes, a human developer. That same developer could build a CLI in less time with less complexity. An MCP server is strictly more work: it's a CLI &lt;em&gt;plus&lt;/em&gt; a JSON-RPC transport, schema definitions, capability negotiation, and a long-running server process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And "any MCP-compatible agent" is actually a &lt;em&gt;narrower&lt;/em&gt; audience than "any agent with shell access." Every agent on earth can shell out to a binary. Not every agent speaks MCP.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;CLI&lt;/th&gt;
&lt;th&gt;MCP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Who can build it&lt;/td&gt;
&lt;td&gt;Any developer&lt;/td&gt;
&lt;td&gt;Developer who knows MCP spec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who can use it&lt;/td&gt;
&lt;td&gt;Any agent with shell access&lt;/td&gt;
&lt;td&gt;Only MCP-compatible agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtime requirement&lt;/td&gt;
&lt;td&gt;Stateless binary&lt;/td&gt;
&lt;td&gt;Long-running server process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure mode&lt;/td&gt;
&lt;td&gt;Command fails, retry&lt;/td&gt;
&lt;td&gt;Server crashes, everything dies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; CLI wins. Bash is the actual universal protocol. It has been since 1971.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 6: The Trust Boundary — MCP's Last Stand
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The MCP claim:&lt;/strong&gt; CLI requires the agent to have shell access. For customer-facing AI products, you would &lt;em&gt;never&lt;/em&gt; give an agent bash on production infrastructure. One prompt injection and it's &lt;code&gt;; rm -rf /&lt;/code&gt;. MCP's value is process isolation — the agent talks JSON over a socket, it cannot escape the sandbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI response:&lt;/strong&gt; That's why sandboxing exists.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restricted shells (&lt;code&gt;rbash&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Container isolation (Docker, gVisor)&lt;/li&gt;
&lt;li&gt;seccomp / AppArmor profiles&lt;/li&gt;
&lt;li&gt;Custom sandbox layers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The MCP rebuttal:&lt;/strong&gt; But look at what sandboxing actually is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MCP:     Agent → JSON-RPC → Server → (allowed ops) → System
Sandbox: Agent → bash → Sandbox Policy → (allowed ops) → System
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The topology is identical. Agent, permission boundary, system. A sandboxed shell with curated CLIs is &lt;em&gt;topologically equivalent&lt;/em&gt; to an MCP server. You've built the same thing with different packaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI counter:&lt;/strong&gt; If they're topologically the same, use the simpler one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict:&lt;/strong&gt; Draw — but it reveals something important. MCP isn't a protocol innovation. It's a pre-packaged sandbox+interface bundle. A convenience, not a necessity.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Final Scoreboard
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Claim&lt;/th&gt;
&lt;th&gt;Winner&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Token efficiency&lt;/td&gt;
&lt;td&gt;CLI (10-32x cheaper)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Universal compatibility&lt;/td&gt;
&lt;td&gt;CLI (bash &amp;gt; MCP adoption)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Builder effort&lt;/td&gt;
&lt;td&gt;CLI (less work for same result)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool discovery&lt;/td&gt;
&lt;td&gt;CLI (--help + agent-friendly CLIs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex workflows&lt;/td&gt;
&lt;td&gt;CLI (Unix composition is unmatched)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-tenant auth&lt;/td&gt;
&lt;td&gt;CLI (AWS, GCP, Docker prove it)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safety / Trust boundaries&lt;/td&gt;
&lt;td&gt;Draw (topologically equivalent)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pre-packaged convenience&lt;/td&gt;
&lt;td&gt;MCP (for teams that don't want to build)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Final score: CLI 6 — MCP 1 — Draw 1&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  So What Is MCP Actually?
&lt;/h2&gt;

&lt;p&gt;After going through every argument, here's the honest conclusion:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP is a reasonable default for teams that don't want to think about tool integration.&lt;/strong&gt; It's a convenience layer — a pre-built sandbox-plus-interface bundle — not a paradigm shift.&lt;/p&gt;

&lt;p&gt;It's the difference between Rails and Rack. Some teams want the framework. Some teams want the library. Some teams just want to write a shell script and move on.&lt;/p&gt;

&lt;p&gt;MCP's remaining value:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pre-built, standardized bundle&lt;/strong&gt; — for teams that want plug-and-play without building wrappers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The long tail of services without CLIs&lt;/strong&gt; — your internal HR system probably doesn't have a CLI, but someone might write an MCP server for it (though they could also just... write a CLI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-technical users&lt;/strong&gt; — if the person connecting tools isn't a developer, a GUI-configurable MCP server is friendlier than bash&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. That's the list.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Lesson
&lt;/h2&gt;

&lt;p&gt;The industry positioned MCP as a revolution — "USB-C for AI agents." The reality is more mundane. MCP is a fine abstraction that got overhyped, over-adopted, and is now getting right-sized.&lt;/p&gt;

&lt;p&gt;The 97 million monthly SDK downloads and 10,000+ servers aren't going away. MCP will continue to exist and serve its niche. But the smart money is on CLI-first architecture with MCP as an optional convenience layer, not the other way around.&lt;/p&gt;

&lt;p&gt;The debate isn't really about protocols. It's about a deeper principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't build abstraction layers over things that already work.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bash works. &lt;code&gt;--help&lt;/code&gt; works. Unix pipes work. They've worked for 50 years. They'll work for 50 more. The burden of proof is on the new thing to justify its existence, and for the general case, MCP hasn't met that burden.&lt;/p&gt;

&lt;p&gt;Build CLI-first. Reach for MCP when you genuinely need it. You'll know when that is — and it's less often than the hype suggests.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Based on a live debate conducted with an AI that started pro-MCP and got argued into conceding. The CLI side didn't need 55,000 tokens to make its case.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cli</category>
      <category>mcp</category>
      <category>ai</category>
      <category>agentskills</category>
    </item>
    <item>
      <title>TypeScript Backend Toolkit V2 - the Express stack that writes its own docs, SDK, and admin UI while you code</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Tue, 04 Nov 2025 00:49:20 +0000</pubDate>
      <link>https://dev.to/themuneebh/typescript-backend-toolkit-v2-the-express-stack-that-writes-its-own-docs-sdk-and-admin-ui-while-2lp5</link>
      <guid>https://dev.to/themuneebh/typescript-backend-toolkit-v2-the-express-stack-that-writes-its-own-docs-sdk-and-admin-ui-while-2lp5</guid>
      <description>&lt;p&gt;👋 Hey there,&lt;br&gt;&lt;br&gt;
Muneeb here. After losing one too many afternoons to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Where did I put that route?”
&lt;/li&gt;
&lt;li&gt;“Why is OpenAPI docs out of sync &lt;strong&gt;again&lt;/strong&gt;?”
&lt;/li&gt;
&lt;li&gt;“Who broke the build by pushing &lt;code&gt;any&lt;/code&gt; to prod?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…I quietly built the backend I wish the Node ecosystem already had.&lt;br&gt;&lt;br&gt;
Today it’s open-source and ready for prime-time.&lt;/p&gt;

&lt;p&gt;👉 Repo: &lt;a href="https://github.com/muneebhashone/typescript-backend-toolkit" rel="noopener noreferrer"&gt;https://github.com/muneebhashone/typescript-backend-toolkit&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 Web: &lt;a href="https://tstoolkit.themuneebh.com" rel="noopener noreferrer"&gt;https://tstoolkit.themuneebh.com&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  What it is (in one breath)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;plugin-based, type-safe Express boilerplate&lt;/strong&gt; that ships with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MagicRouter&lt;/strong&gt; – writes OpenAPI specs &amp;amp; Swagger UI for you from Zod schemas
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artisan-like CLI&lt;/strong&gt; – &lt;code&gt;pnpm tbk generate:module users&lt;/code&gt; scaffolds model → DTO → service → controller → router in 2 s
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-generated TS SDK&lt;/strong&gt; – &lt;code&gt;pnpm gen-sdk&lt;/code&gt; spits out a fully-typed client for your front-end
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in admin panel&lt;/strong&gt; – Django-style CRUD at &lt;code&gt;/admin&lt;/code&gt; (zero config)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Queue dashboard&lt;/strong&gt;, &lt;strong&gt;email preview&lt;/strong&gt;, &lt;strong&gt;Socket.IO tester&lt;/strong&gt;, &lt;strong&gt;Prometheus metrics&lt;/strong&gt; – all mounted and protected
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formidable uploads&lt;/strong&gt;, &lt;strong&gt;BullMQ jobs&lt;/strong&gt;, &lt;strong&gt;Redis/Mongo sessions&lt;/strong&gt;, &lt;strong&gt;S3/R2/local storage&lt;/strong&gt; – plug &amp;amp; play via env vars&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and enough guardrails that even the intern can’t push broken code.&lt;/p&gt;


&lt;h2&gt;
  
  
  30-second spin-up
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm dlx create-tbk-app

&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;project-name&amp;gt;

pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Need a users module?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm tbk generate:module user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CLI drops 6 files.&lt;br&gt;&lt;br&gt;
Add your fields, run &lt;code&gt;pnpm dev&lt;/code&gt;, refresh &lt;code&gt;/docs&lt;/code&gt; - spec is live.&lt;/p&gt;


&lt;h2&gt;
  
  
  The “MagicRouter” pitch
&lt;/h2&gt;

&lt;p&gt;Never write another route definition by hand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// user.router.ts&lt;/span&gt;
&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/register&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;requestType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;registerSchema&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="mi"&gt;201&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userOutSchema&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nf"&gt;canAccess&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;                  &lt;span class="c1"&gt;// optional auth middleware&lt;/span&gt;
  &lt;span class="nx"&gt;handleRegister&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;               &lt;span class="c1"&gt;// controller&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That single object literal becomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runtime validation (Zod)
&lt;/li&gt;
&lt;li&gt;OpenAPI JSON &amp;amp; Swagger UI
&lt;/li&gt;
&lt;li&gt;TypeScript types for both request and response
&lt;/li&gt;
&lt;li&gt;A typed SDK method when you run &lt;code&gt;pnpm tbk docs:sdk&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Change the schema → spec &amp;amp; SDK regenerate themselves.&lt;br&gt;&lt;br&gt;
Plain Express routers are &lt;strong&gt;banned&lt;/strong&gt; – the CLI won’t even generate them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Plugin buffet (all warmed up)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plugin&lt;/th&gt;
&lt;th&gt;What you get out of the box&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;logger&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pino + request-id + child logger everywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Helmet, CORS, rate-limit, powered by env&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cache&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Redis or memory, decorator-style helpers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;auth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;JWT + session (Mongo or Redis) with rotation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;admin&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auto-generated CRUD UI, protected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;realtime&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Socket.IO namespaces + test UI at &lt;code&gt;/realtime&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;queue&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;BullMQ + dashboard at &lt;code&gt;/queues&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;magic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MagicRouter, response builders, OpenAPI gen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Register only what you need – each plugin is a single line in &lt;code&gt;src/app/app.ts&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  CLI cheatsheet (copy-paste ready)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm tbk generate:module  posts   &lt;span class="nt"&gt;--path&lt;/span&gt; /api/v1
pnpm tbk generate:plugin  stripe
pnpm tbk generate:middleware throttle
pnpm tbk generate:factory product
pnpm tbk seed
pnpm tbk docs:openapi &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pnpm tbk docs:sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why we chose (and sometimes banned) things
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zod over Joi/Yup&lt;/strong&gt; - same parser for validation, types, and OpenAPI
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formidable over Multer&lt;/strong&gt; - streaming parser that lands files in &lt;code&gt;req.body&lt;/code&gt; (no &lt;code&gt;req.file&lt;/code&gt; chaos)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mongoose schemas stripped of validators&lt;/strong&gt; - all validation lives in Zod DTOs; DB layer stays lean
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never &lt;code&gt;process.env&lt;/code&gt; directly&lt;/strong&gt; - single &lt;code&gt;src/config/env.ts&lt;/code&gt; validated at boot, autocomplete everywhere
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pnpm (recommended)&lt;/strong&gt; - workspace scripts, fast installs, locked versions
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Production checklist (all green)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Graceful shutdown handled
&lt;/li&gt;
&lt;li&gt;✅ Request/response validation toggle (&lt;code&gt;RESPONSE_VALIDATION=strict&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;✅ Prometheus metrics exposed (&lt;code&gt;/metrics&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;✅ Health, ready, live probes (&lt;code&gt;/health&lt;/code&gt;, &lt;code&gt;/ready&lt;/code&gt;)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Roadmap (contributions welcome)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prisma adapter alongside Mongoose
&lt;/li&gt;
&lt;li&gt;tRPC plugin for folks who want RPC flavour
&lt;/li&gt;
&lt;li&gt;GraphQL plugin (via Mercurius)
&lt;/li&gt;
&lt;li&gt;Deno / Bun compatibility passes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop an issue or PR – the codebase is aggressively documented.&lt;/p&gt;




&lt;h2&gt;
  
  
  Grab it &amp;amp; ship
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm dlx create-tbk-app
&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;project-name&amp;gt;
pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Star the repo if it saves you even an hour - that’s one more hour for memes.&lt;br&gt;&lt;br&gt;
Questions? Open a discussion, I hang out there nightly.&lt;/p&gt;

&lt;p&gt;Happy shipping! 🛳️&lt;/p&gt;

</description>
      <category>express</category>
      <category>laravel</category>
      <category>fastapi</category>
      <category>django</category>
    </item>
    <item>
      <title>Claude Code (MAX) is the best deal</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sun, 06 Jul 2025 21:44:10 +0000</pubDate>
      <link>https://dev.to/themuneebh/claude-code-max-is-the-best-deal-1a0h</link>
      <guid>https://dev.to/themuneebh/claude-code-max-is-the-best-deal-1a0h</guid>
      <description>&lt;p&gt;Every single penny in this plan is worth it because Claude Code is the ultimate bundle when it comes to engineering as a whole. It helps with research, documentation, and obviously writing code and building and testing features.&lt;/p&gt;

&lt;p&gt;You might think, "Why would anyone go for a terminal-based agent when we can have everything in an IDE like Cursor?" WRONG!&lt;/p&gt;

&lt;p&gt;Here's why Claude Code with the Max plan is better than anything you know:&lt;/p&gt;

&lt;p&gt;Cursor Drawbacks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cursor doesn't include complete context; they chunk it to save costs on their end until you enable max mode&lt;/li&gt;
&lt;li&gt;They charge you 1.2 times the API cost for max mode&lt;/li&gt;
&lt;li&gt;Cursor Agent struggles with long-running tasks&lt;/li&gt;
&lt;li&gt;Cursor struggles to understand huge prompts when given file context (because they chunk it)&lt;/li&gt;
&lt;li&gt;It consumes lot of resources (memory and space)&lt;/li&gt;
&lt;li&gt;Many VSCode extensions doesn't work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude Code Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It always runs with full context and doesn't chunk anything, so every request is a max mode request&lt;/li&gt;
&lt;li&gt;It can run as long as the task requires without going off track, as it maintains its own todo list to keep up with tasks (already tested on 7+ hours of continuous running)&lt;/li&gt;
&lt;li&gt;It can spawn multiple sub-agents&lt;/li&gt;
&lt;li&gt;It has a plan mode where you can brainstorm features and, once done, give it the go-ahead to actually implement them&lt;/li&gt;
&lt;li&gt;You can build custom workflows and agents with it. For example, ruv-swarms achieves 84.8% on SWE-Bench&lt;/li&gt;
&lt;li&gt;No rate limits on the Max plan; you can spawn as many agents as you need, and they can work in parallel&lt;/li&gt;
&lt;li&gt;Claude Code has an SDK and also works as an MCP itself&lt;/li&gt;
&lt;li&gt;Lightweight, you just need a terminal&lt;/li&gt;
&lt;li&gt;Integrates with VSCode and it's forks (even Cursor)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's talk about some features developers love in Cursor and how you can easily do that with Claude Code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checkpoints &amp;gt; Version control with GitHub&lt;/li&gt;
&lt;li&gt;Background Agents &amp;gt; Claude Code in GitHub Actions&lt;/li&gt;
&lt;li&gt;Commit Generation &amp;gt; Custom Slash Command (/git-commit)&lt;/li&gt;
&lt;li&gt;Docs Indexing &amp;gt; Context 7 MCP with WebSearch and Fetch Tool&lt;/li&gt;
&lt;li&gt;Memories &amp;gt; CLAUDE (md file)&lt;/li&gt;
&lt;li&gt;Tab Tab Tab &amp;gt; You don't need it anymore&lt;/li&gt;
&lt;li&gt;Multiple LLMs &amp;gt; Who uses all of them? Everyone uses the Claude 4 family because they are the best for coding and software engineering in general&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To summarize, Claude Code is such a gem. It's like the best agentic flow with best-in-class models and full context, which also allows you to build your own workflows and agents for specific purposes.&lt;/p&gt;

&lt;p&gt;Bonus: You don't need $100 or $200 to get started with Claude Code. It works with Claude's Pro plan, which costs $17 per month, or you can even use it with your own API key.&lt;/p&gt;

</description>
      <category>devtool</category>
      <category>claudecode</category>
      <category>ai</category>
    </item>
    <item>
      <title>'Vibe Coders' Are a Threat to Tech</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Fri, 04 Apr 2025 11:37:33 +0000</pubDate>
      <link>https://dev.to/themuneebh/vibe-coders-are-a-threat-to-tech-45l9</link>
      <guid>https://dev.to/themuneebh/vibe-coders-are-a-threat-to-tech-45l9</guid>
      <description>&lt;h1&gt;
  
  
  Unpopular Opinion
&lt;/h1&gt;

&lt;p&gt;The idea that everyone can now build apps and games without understanding how things actually work behind the scenes does more harm than good—it's worse in reality.&lt;/p&gt;

&lt;p&gt;Let me ask you a question:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Would you put a fully loaded gun (with the trigger safety off) into a child's hand, or even into the hands of someone without proper knowledge?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's another question:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Would you trust a "vibe civil engineer" or a "vibe architect" to construct a building for you if they were not fully knowledgeable or skilled?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I hope your answers to both of these questions would be a firm &lt;strong&gt;"NO."&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Building software is also a highly responsible task. It's not just about having an idea and executing it without being aware of the consequences and trade-offs involved.&lt;/p&gt;

&lt;p&gt;To give you a reality check, let's imagine you discover that the banking app on your phone—used to manage your finances—was built by someone just &lt;em&gt;"vibe coding"&lt;/em&gt; instead of an experienced software engineer.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Would you continue to use it?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Personally, I'd delete the app immediately and even close my account with that bank, because my entire life could depend on it.&lt;/p&gt;

&lt;p&gt;You might think this example is exaggerated, but consider another scenario:&lt;/p&gt;

&lt;p&gt;Imagine you sign up for a SaaS platform built by a vibe coder. On the sign-in page, there's a &lt;strong&gt;"Sign in with Google"&lt;/strong&gt; button. You click on it and use your Google identity to log in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guess what?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You might have already compromised your security. If your identity exchange isn't handled securely, your access token could be leaked. This would allow unauthorized access to your Google account without needing your password or even your email address.&lt;br&gt;&lt;br&gt;
Essentially, your entire online identity could be at risk without you realizing it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"A task suits best the one meant to do it; when done by another, it's bound to fail."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Building software of any kind should be done by software engineers, not "vibe" coders.&lt;/p&gt;




&lt;p&gt;To be clear, I'm not criticizing the use of AI or leveraging AI in workflows.&lt;br&gt;&lt;br&gt;
Rather, I'm emphasizing that tasks should be performed by those trained and meant to do them.&lt;/p&gt;

&lt;p&gt;Let me conclude with one last, critical example:&lt;/p&gt;

&lt;p&gt;Imagine having access to the greatest AI surgeon in existence, with the AI claiming anyone can now become a &lt;em&gt;"vibe surgeon."&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Would you trust yourself to perform surgery on your loved ones using that technology, knowing that you're neither a surgeon nor even medically trained?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I agree this technology could greatly benefit trained surgeons, but certainly not the general public.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;I hope you understand the point I'm making.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's it.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>programming</category>
      <category>ai</category>
      <category>coding</category>
    </item>
    <item>
      <title>Vibe Coding: The Right way</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sun, 30 Mar 2025 23:19:22 +0000</pubDate>
      <link>https://dev.to/themuneebh/vibe-coding-the-right-way-3mbk</link>
      <guid>https://dev.to/themuneebh/vibe-coding-the-right-way-3mbk</guid>
      <description>&lt;p&gt;Let's first understand how &lt;em&gt;vibe coding&lt;/em&gt; (as it's currently trending) works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t touch the code.
&lt;/li&gt;
&lt;li&gt;Don’t touch the keyboard—just speak.
&lt;/li&gt;
&lt;li&gt;Blindly accept everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use any of the following tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bolt[dot]dev
&lt;/li&gt;
&lt;li&gt;Lovable
&lt;/li&gt;
&lt;li&gt;Cursor AI
&lt;/li&gt;
&lt;li&gt;Windsurf AI
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oftentimes, you don’t even write prompts. You use ChatGPT or Claude, meaning you have no real control or understanding of your code—or even the product you're trying to build. You just focus on one thing: the &lt;strong&gt;VIBE&lt;/strong&gt;, and let the chaos unfold… until you run out of money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Opinion:&lt;/strong&gt; It's one of the worst approaches to building software.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;So how do I approach &lt;em&gt;vibe coding&lt;/em&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always make sure I understand exactly &lt;strong&gt;what&lt;/strong&gt; should be done and &lt;strong&gt;how&lt;/strong&gt; it should be done.
&lt;/li&gt;
&lt;li&gt;Boilerplates and workflows are my own.
&lt;/li&gt;
&lt;li&gt;Keep prompts specific and to the point, and provide them with maximum context needed to implement a specific feature.
&lt;/li&gt;
&lt;li&gt;One thing at a time.
&lt;/li&gt;
&lt;li&gt;Set proper rules and instructions for an LLM to follow while writing code.
&lt;/li&gt;
&lt;li&gt;Review everything before accepting anything.
&lt;/li&gt;
&lt;li&gt;When I feel that AI is getting stuck or going off-track, I take charge.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;IDEs, Extensions, and CLI tools I use:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cursor AI (Primary IDE)
&lt;/li&gt;
&lt;li&gt;Cline/Roo Code (Agentic coding extension)
&lt;/li&gt;
&lt;li&gt;Claude Code (Agentic, CLI-based tool)
&lt;/li&gt;
&lt;li&gt;ChatGPT 4o with search enabled (for research)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI models I use:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Sonnet 3.5 and 3.7 (Primary)
&lt;/li&gt;
&lt;li&gt;Claude Sonnet 3.7 with Extended Thinking (for diagrams, architecture, and system design)
&lt;/li&gt;
&lt;li&gt;Gemini 2.0 Pro (for long-context tasks)
&lt;/li&gt;
&lt;li&gt;OpenAI o3 Mini and GPT-4o (for brainstorming)
&lt;/li&gt;
&lt;li&gt;DeepSeek V3 and R1 (when using Cline/Roo Code)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Benefits of this "True Vibe Coding" workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saves me tons of time—work that might take days can be done in hours.
&lt;/li&gt;
&lt;li&gt;Lets me focus on the bigger picture and deeper aspects like infrastructure and system architecture.
&lt;/li&gt;
&lt;li&gt;I learn through it—sometimes the AI suggests solutions I’ve never seen, so I discuss the "why" with it and dig deeper.
&lt;/li&gt;
&lt;li&gt;No more wading through messy documentation—AI handles it well.
&lt;/li&gt;
&lt;li&gt;Over time, it adapts to my style—my design patterns, my coding approach—and even helps refine them.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Cons? Yeah, a few:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can feel expensive, but the value-to-cost ratio is more than justifiable.
&lt;/li&gt;
&lt;li&gt;Sometimes it hallucinates—caused by bad prompts, model downgrades, glitches, or poorly sized contexts.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Now let’s address a common misconception:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That &lt;em&gt;vibe coding&lt;/em&gt; is dangerous for beginners because it might take away the habit of writing code—which is crucial for software engineering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do I say that’s a misconception?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Let me give my example.&lt;/p&gt;

&lt;p&gt;When I started coding, the hardest fear to overcome was writing code—the syntax part. Why? Because I wasn’t confident.&lt;br&gt;&lt;br&gt;
Though I eventually overcame that fear, I still didn’t write much code myself. I would copy-paste solutions from Stack Overflow, GitHub, and tech blogs—not blindly, but with the goal of understanding them: the hows and whys.&lt;/p&gt;

&lt;p&gt;Fast forward to today: things haven’t changed—they’ve &lt;strong&gt;evolved&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Now, instead of searching Stack Overflow or GitHub, I ask AI. It gives me everything—from the solution itself to a comprehensive breakdown of &lt;em&gt;why&lt;/em&gt; it works, &lt;em&gt;how&lt;/em&gt; to optimize it, and &lt;em&gt;what&lt;/em&gt; alternatives exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing code by hand is not the ultimate goal of software engineering.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It’s just a tool for solving problems.&lt;br&gt;&lt;br&gt;
As long as we understand exactly what we’re doing, I don’t find it problematic to let AI write the code for us.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>saas</category>
      <category>product</category>
      <category>ai</category>
    </item>
    <item>
      <title>Do clone tutorials really teach you anything?</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sun, 16 Mar 2025 01:51:41 +0000</pubDate>
      <link>https://dev.to/themuneebh/do-clone-tutorials-really-teach-you-anything-1jeh</link>
      <guid>https://dev.to/themuneebh/do-clone-tutorials-really-teach-you-anything-1jeh</guid>
      <description>&lt;p&gt;It really bothers me a lot when I open YouTube and it's recommending video tutorials like "Full Stack [X] Clone in 6 Hours," with the shockingly smiling face on the thumbnail, as if the guy has cracked the core algorithm behind [X] and is going to reveal it to us. Let's open the video and watch it till the end.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;1 hour passed just setting up third-party services such as Clerk for Auth, Supabase for Postgres and real-time, Stripe, Vercel, and so on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another hour passed, copy-pasting code from the creator's GitHub repo for the Tailwind theming and base components (because he instructed us to do so).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Okay, so now I'm going to learn something new—wait, what? Is this a frontend tutorial where more than half of the time I'm just copy-pasting code from the GitHub repo?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Okay, so we are 5 hours and 30 minutes into the video, and guess what? We've successfully built that clone (we don't know how, but yes, we did). Now we have to deploy it, but wait, it's already deployed to Vercel because, at the start, we connected our repo to Vercel's project. So, we are actually cooked already.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let's put that link in my resume, thinking I'm the only one doing it and I'm going to nail it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now I'm in the interview.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First technical question: Why did you use Zustand instead of React Context?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Me: Hehehe... I think it's better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Second question: Why did you choose Next.js instead of just using React?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Me: What? Can we actually use React alone without Next.js?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interviewer: Yes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Me: Okay, but Next.js provides better SEO benefits and performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interviewer: It's a dashboard-based web app. Why do you need SEO-related benefits? And regarding performance, you can achieve that using only React.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Me: Hehehe... It just happened; I just wanted to build something.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interviewer: So, you built it completely from scratch?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Me: (Thinking—I'm already messed up.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This goes on, and I'm fired before getting hired.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I just don't get the point of these tutorials:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No brainstorming&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No problem-solving&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No logic building&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No system design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No skepticism&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No architectural discussion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No system-level thinking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even no code at all (95% of the time it's copy-pasting)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the end, one-click deployment—but why? The user is here to learn what happens behind the scenes of that one-click deployment, such as CI/CD, server setup, load balancing, triggers, and so on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The only thing I'm learning from these kinds of tutorials is brainless frontend development.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay, so how should we learn? The answer is simple: just focus on the fundamentals. Do research about fundamentals. Read through the documentation of well-known technologies. Read tech/engineering blogs. Follow genuine mentors. Open your mind. Try building something completely from scratch using your own mind. Look for problems around you that can be solved with technology. Learn to debug, and that's how you actually learn and become valuable.&lt;/p&gt;

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

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Human Edge</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sat, 18 Jan 2025 18:37:15 +0000</pubDate>
      <link>https://dev.to/themuneebh/the-human-edge-3p1c</link>
      <guid>https://dev.to/themuneebh/the-human-edge-3p1c</guid>
      <description>&lt;p&gt;In a world obsessed with artificial intelligence, have you ever wondered what makes us truly irreplaceable? It's not about competing with machines – it's about mastering the skills they can't replicate. Let's explore these uniquely human capabilities, and as you read, consider how they show up in your own life.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Explorer's Mindset
&lt;/h2&gt;

&lt;p&gt;When was the last time curiosity led you down an unexpected path? Research and experimentation aren't just academic pursuits – they're about questioning the status quo and daring to find better ways. Consider the Wright brothers: they didn't just read about flight; they questioned, tinkered, and failed their way to success. What could you discover if you approached your challenges with the same spirit?&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Apprentice's Journey
&lt;/h2&gt;

&lt;p&gt;Knowledge isn't just about information – it's about wisdom. When you learn from experts, you're not just collecting facts; you're inheriting generations of insights, failures, and breakthroughs. Think about a time when someone's guidance transformed your understanding. What made that learning experience different from simply reading about it?&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Shape-Shifter's Secret
&lt;/h2&gt;

&lt;p&gt;Adaptability isn't just about surviving change; it's about thriving in it. Consider how nature adapts: a tree grows around obstacles, becoming stronger where it meets resistance. How do your own adaptations make you more resilient? What changes have shaped who you are today?&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The Problem Solver's Art
&lt;/h2&gt;

&lt;p&gt;Every complex problem is unique, requiring a blend of logic, intuition, and creativity. Like a master chef who knows when to follow the recipe and when to trust their instincts, true problem-solving is about understanding the rules well enough to know when to break them. What's your approach when facing an unprecedented challenge?&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Political Navigator
&lt;/h2&gt;

&lt;p&gt;Organizations are living ecosystems of relationships, ambitions, and unspoken rules. Success often lies not in what you know, but in how you navigate these human currents. Think about a time when understanding people's motivations was more important than understanding the technical aspects of a problem. What did you learn?&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The Systems Thinker
&lt;/h2&gt;

&lt;p&gt;Everything is connected – but seeing these connections requires more than just observation. It demands the ability to spot patterns, anticipate ripple effects, and understand that sometimes the most important factors are the ones you can't measure. How do your actions today affect tomorrow's possibilities?&lt;/p&gt;

&lt;h2&gt;
  
  
  7. The Detail Whisperer
&lt;/h2&gt;

&lt;p&gt;In a world of automation, the ability to notice and interpret subtle signals becomes increasingly valuable. It's not just about spotting errors – it's about seeing opportunities hidden in plain sight. What details do you notice that others might miss? How do these observations give you an edge?&lt;/p&gt;

&lt;h2&gt;
  
  
  8. The Empathy Artist
&lt;/h2&gt;

&lt;p&gt;Understanding others isn't just about listening to their words – it's about comprehending their world. This skill transforms transactions into relationships, conflicts into collaborations, and problems into possibilities. When has empathy helped you see a situation in a completely new light?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Integration Challenge
&lt;/h2&gt;

&lt;p&gt;These skills aren't meant to be mastered in isolation. The real magic happens when they work together, creating something greater than the sum of its parts. Consider these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How might combining adaptability with empathy change your approach to leadership?&lt;/li&gt;
&lt;li&gt;What happens when you apply systems thinking to problem-solving?&lt;/li&gt;
&lt;li&gt;How could political savvy enhance your ability to learn from experts?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking Forward
&lt;/h2&gt;

&lt;p&gt;The future doesn't belong to those who can outthink machines. It belongs to those who embrace what makes us uniquely human – our ability to connect dots that don't obviously connect, to find meaning in chaos, and to imagine possibilities that don't yet exist.&lt;/p&gt;

&lt;p&gt;As you move forward, ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which of these skills already feels natural to you?&lt;/li&gt;
&lt;li&gt;Which ones make you uncomfortable, and why?&lt;/li&gt;
&lt;li&gt;How might developing your weaker areas transform your effectiveness?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember: The goal isn't to master everything at once. It's to grow continuously, deliberately, and authentically. Start with what resonates most strongly with you today.&lt;/p&gt;

&lt;p&gt;The machines can handle the predictable. Your power lies in navigating the unpredictable, the emotional, and the uniquely human aspects of our world. How will you use these skills to shape your future?&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>psychology</category>
    </item>
    <item>
      <title>Code smarter, not harder - here's my actual AI toolset that works.</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sat, 23 Nov 2024 10:47:15 +0000</pubDate>
      <link>https://dev.to/themuneebh/code-smarter-not-harder-heres-my-actual-ai-toolset-that-works-5goe</link>
      <guid>https://dev.to/themuneebh/code-smarter-not-harder-heres-my-actual-ai-toolset-that-works-5goe</guid>
      <description>&lt;p&gt;"If you're still spending more time switching tools than actually coding, we need to talk."&lt;/p&gt;

&lt;p&gt;Hey devs! I wanted to share something that's genuinely changed my daily workflow. After years of trying different setups and productivity "hacks," I've finally found a combination of AI tools that actually makes sense - and no, this isn't another productivity guru post promising to make you code in your sleep.&lt;/p&gt;

&lt;p&gt;Let me break down what's working for me:&lt;/p&gt;

&lt;p&gt;Cursor has become my main editor, and it's not just because it looks nice. The Tab feature has seriously changed how I write and navigate code. It's surprisingly intuitive, and once you get used to it, you'll wonder how you coded without it.&lt;/p&gt;

&lt;p&gt;For implementing new features, I've been using Cline. Look, I was skeptical at first - aren't we all tired of tools promising to "revolutionize" our workflow? But it's actually useful, especially when you're working on well-defined features that need consistent implementation.&lt;/p&gt;

&lt;p&gt;Now, for brainstorming and project planning, Claude has been invaluable. Whether I'm stuck on system design or need to think through a complex feature, having an AI that can keep up with technical discussions and challenge my assumptions has been surprisingly helpful.&lt;/p&gt;

&lt;p&gt;The real MVP for bulk changes? Aider. If you've ever had to update similar patterns across multiple files (and who hasn't?), you know the pain. Aider just handles it. No fuss, no muss.&lt;/p&gt;

&lt;p&gt;For UI/UX work (yes, we all have to do it sometimes), Kodu AI has been a solid companion. It helps bridge that gap between "I know what I want" and "I know how to make it look good."&lt;/p&gt;

&lt;p&gt;Here's the thing - I know there's some skepticism about using AI tools in development. I had the same doubts. But these aren't replacing our skills; they're just handling the tedious parts so we can focus on the interesting problems. It's like having a really efficient assistant who happens to be good at the things you find boring.&lt;/p&gt;

&lt;p&gt;I'm curious though - what's your take on AI in your dev workflow? Are you using any of these tools, or have you found better alternatives? Drop your thoughts below - always looking to learn from other devs' experiences.&lt;/p&gt;

&lt;p&gt;PS: If you want to try any of these tools, start with one and gradually add others. No need to overhaul your entire workflow overnight.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Why 90% of 'Software Engineers' Are Actually Just Code Monkeys</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Mon, 04 Nov 2024 10:03:46 +0000</pubDate>
      <link>https://dev.to/themuneebh/why-most-software-engineers-arent-actually-engineers-153i</link>
      <guid>https://dev.to/themuneebh/why-most-software-engineers-arent-actually-engineers-153i</guid>
      <description>&lt;h1&gt;
  
  
  Misconceptions About the Software Engineering Field
&lt;/h1&gt;

&lt;p&gt;There's a common misconception that software engineers are abundant and the field is easy to enter. Let me share a different perspective:&lt;/p&gt;

&lt;p&gt;Yes, the barrier to becoming a developer is relatively low. With some HTML, CSS, and popular frameworks under your belt, you can start building websites and apps.&lt;/p&gt;

&lt;p&gt;But here's the thing: There's a crucial distinction between &lt;strong&gt;being a developer&lt;/strong&gt; and &lt;strong&gt;being a software engineer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;True software engineering goes far beyond just shipping products. It requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deep systems understanding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture design principles&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance optimization&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scalability considerations&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engineering best practices&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Technical decision-making&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and a lot more.&lt;/p&gt;

&lt;p&gt;In my experience, genuine software engineers—those who truly understand these fundamentals and master their craft—are surprisingly rare.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's your take on this?&lt;/strong&gt; Have you noticed this distinction in your work?&lt;/p&gt;

</description>
      <category>programming</category>
      <category>discuss</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Claude 3.5 Sonnet + Aider + Cursor Pro</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Thu, 29 Aug 2024 00:17:48 +0000</pubDate>
      <link>https://dev.to/themuneebh/claude-35-sonnet-aider-cursor-pro-dn6</link>
      <guid>https://dev.to/themuneebh/claude-35-sonnet-aider-cursor-pro-dn6</guid>
      <description>&lt;p&gt;Claude 3.5 Sonnet + Aider + Cursor Pro.&lt;/p&gt;

&lt;p&gt;No, it's not just another overhyped dev tools. This unholy trinity is the real deal when it comes to AI-powered development. Let me break it down for you.&lt;/p&gt;

&lt;p&gt;Picture this: I'm knee-deep in a project, deadlines looming, caffeine levels critically low. Cursor Editor Pro's autocomplete is finishing my thoughts before I even have them. Aider's got my back, refactoring code faster than I can say "technical debt." And Claude 3.5 Sonnet? This AI beast is practically powering both, offering insights that make me question if I'm the sidekick in this relationship.&lt;/p&gt;

&lt;p&gt;You can literally implement a whole feature into your codebase with just one good prompt and these tools will take care of everything from applying changes (Passing through your review) to adding commits to your repo.&lt;/p&gt;

&lt;p&gt;Look, I get it. You're skeptical. "AI's gonna take our jobs," right? Wrong. This isn't about replacement - it's about augmentation. It's about working smarter, not harder. It's about spending less time debugging and more time creating.&lt;/p&gt;

&lt;p&gt;But don't take my word for it. Give it a shot. Push it to its limits. Break it if you can. Because at the end of the day, tools are only as good as the devs wielding them.&lt;/p&gt;

&lt;p&gt;Remember: The best code is the code that ships. And with this setup, you'll be shipping faster and smarter than ever before.&lt;/p&gt;

&lt;p&gt;"The future is already here — it's just not evenly distributed." - William Gibson&lt;/p&gt;

&lt;p&gt;Are you ready to distribute some future into your workflow?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Stuck on React and Express? Legacy Code Is Holding You Back—Old Isn’t Gold!</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Sun, 25 Aug 2024 00:28:00 +0000</pubDate>
      <link>https://dev.to/themuneebh/stuck-on-react-and-express-legacy-code-is-holding-you-back-old-isnt-gold-4fg4</link>
      <guid>https://dev.to/themuneebh/stuck-on-react-and-express-legacy-code-is-holding-you-back-old-isnt-gold-4fg4</guid>
      <description>&lt;h1&gt;
  
  
  Are You Stuck in Your Stack?
&lt;/h1&gt;

&lt;p&gt;You’ve &lt;strong&gt;mastered TypeScript&lt;/strong&gt;, and you’re comfortable with &lt;strong&gt;ExpressJS&lt;/strong&gt;, &lt;strong&gt;ReactJS&lt;/strong&gt;, and all the usual suspects. But be honest—are you stuck? Still riding the same old frameworks because they’re familiar? Here’s the hard truth: clinging to these legacy tools is &lt;strong&gt;holding you back&lt;/strong&gt;. It might feel safe, but in tech, sticking to what’s comfortable means you’re falling behind.&lt;/p&gt;

&lt;p&gt;Let’s talk about the real deal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet the New Powerhouses
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Astro&lt;/strong&gt;, &lt;strong&gt;SolidJS&lt;/strong&gt;, &lt;strong&gt;Svelte&lt;/strong&gt;, &lt;strong&gt;ElysiaJS&lt;/strong&gt; (Bun), &lt;strong&gt;Hono&lt;/strong&gt; (Bun), and &lt;strong&gt;Oaks&lt;/strong&gt; (Deno)—these aren’t just buzzwords. They’re &lt;strong&gt;powerful alternatives&lt;/strong&gt; that outperform the older tools you’re used to. And let’s not forget &lt;strong&gt;Bun&lt;/strong&gt; and &lt;strong&gt;Deno&lt;/strong&gt;—runtimes that do way more than any traditional framework can. They’re fast, efficient, and built for the modern web.&lt;/p&gt;

&lt;p&gt;So why are you still hesitating? Are you &lt;strong&gt;too comfortable&lt;/strong&gt; with React and Express, or just afraid to try something new?&lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking Out of the Bubble
&lt;/h2&gt;

&lt;p&gt;I get it. I used to be right there with you, hanging out in the &lt;strong&gt;React-Express bubble&lt;/strong&gt;. But when I finally took the leap and tried things like &lt;strong&gt;Fastify&lt;/strong&gt; (Node), &lt;strong&gt;Fresh&lt;/strong&gt; (Deno), &lt;strong&gt;Pylon&lt;/strong&gt; (GraphQL), and &lt;strong&gt;ElysiaJS&lt;/strong&gt; (Bun), it was like waking up. These tools aren’t just more performant—they’re simpler, faster, and frankly, more exciting to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  The New Age of Tooling
&lt;/h2&gt;

&lt;p&gt;And then there are the tools that are reshaping how we manage our projects—&lt;strong&gt;Turborepo&lt;/strong&gt;, &lt;strong&gt;PNPM&lt;/strong&gt;, &lt;strong&gt;JSR&lt;/strong&gt; (as an NPM alternative). They’re not just trends; they’re solutions that &lt;strong&gt;streamline workflows&lt;/strong&gt; in ways older systems simply can’t. These tools make development more efficient, scalable, and far less painful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time to Reignite Your Passion
&lt;/h2&gt;

&lt;p&gt;Ask yourself—when was the last time you were really &lt;strong&gt;excited about your stack&lt;/strong&gt;? If you’re coasting along with the same old tools, that excitement fades. And that’s a problem. The future belongs to those who aren’t afraid to evolve. Learning doesn’t stop at React or Express. It evolves. And so should you.&lt;/p&gt;

&lt;p&gt;As they say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Ships are safe in the harbor, but that’s not what ships are built for."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So get out there. Explore new frameworks. Play with &lt;strong&gt;Bun&lt;/strong&gt;, &lt;strong&gt;Deno&lt;/strong&gt;, &lt;strong&gt;Turborepo&lt;/strong&gt;, &lt;strong&gt;PNPM&lt;/strong&gt;. &lt;strong&gt;Challenge yourself&lt;/strong&gt;. Because if you’re not pushing forward, you’re not just standing still—you’re moving backward.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Building a SaaS product should not be complex</title>
      <dc:creator>Muneeb Hussain</dc:creator>
      <pubDate>Tue, 20 Aug 2024 03:58:55 +0000</pubDate>
      <link>https://dev.to/themuneebh/building-a-saas-product-should-not-be-complex-51mg</link>
      <guid>https://dev.to/themuneebh/building-a-saas-product-should-not-be-complex-51mg</guid>
      <description>&lt;p&gt;Ever feel like modern SaaS stacks are a house of cards waiting to collapse? Let's talk about it.&lt;/p&gt;

&lt;p&gt;Remember when building a web app meant setting up a server and coding your features? Now it's a juggling act of specialized services. Authentication with Clerk, databases split between Supabase and Neon, Pusher for real-time, Trigger[dot]dev for background jobs, Upstash for Redis, and don't forget choosing between Vercel or Netlify for deployment.&lt;/p&gt;

&lt;p&gt;I recently consulted on a project where the team spent more time integrating services than building core features. Halfway through, one service changed its pricing model, throwing the budget into chaos. Another had an outage that brought development to a screeching halt. It was a mess.&lt;/p&gt;

&lt;p&gt;Here's the kicker: most of this complexity is unnecessary. With AWS and a solid Node.js backend (maybe on a DigitalOcean droplet or Cloudflare worker), you can achieve the same results more reliably. Are we afraid of writing backend code now? Or just addicted to shiny new tools?&lt;/p&gt;

&lt;p&gt;Don't get me wrong, these services have their place. But blindly adopting every new SaaS offering is a recipe for disaster. What happens when one shuts down or has a critical failure? Your app becomes a house of cards.&lt;/p&gt;

&lt;p&gt;Let's bring back the art of building robust, self-contained systems. It's time to ask ourselves: are we engineering solutions, or just piecing together services and hoping for the best?&lt;/p&gt;

&lt;p&gt;"Simplicity is the ultimate sophistication." - Leonardo da Vinci&lt;/p&gt;

&lt;p&gt;What's your take? Are we overcomplicating our stacks, or is this the new normal we should embrace?&lt;/p&gt;

</description>
      <category>saas</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
