<?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: Sanjeev Kumar</title>
    <description>The latest articles on DEV Community by Sanjeev Kumar (@sanjeevsky).</description>
    <link>https://dev.to/sanjeevsky</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%2F3932519%2F6b031fec-2729-4678-b60e-338af3dbad2e.jpeg</url>
      <title>DEV Community: Sanjeev Kumar</title>
      <link>https://dev.to/sanjeevsky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanjeevsky"/>
    <language>en</language>
    <item>
      <title>I built a free, local-first Postman alternative — no account, no cloud, no subscription</title>
      <dc:creator>Sanjeev Kumar</dc:creator>
      <pubDate>Fri, 15 May 2026 06:45:01 +0000</pubDate>
      <link>https://dev.to/sanjeevsky/i-built-a-free-local-first-postman-alternative-no-account-no-cloud-no-subscription-29hj</link>
      <guid>https://dev.to/sanjeevsky/i-built-a-free-local-first-postman-alternative-no-account-no-cloud-no-subscription-29hj</guid>
      <description>&lt;p&gt;I got tired of Postman.&lt;/p&gt;

&lt;p&gt;Not the tool itself — Postman is genuinely good. What I got tired of was the &lt;em&gt;friction&lt;/em&gt;: the mandatory account, the cloud sync I didn't ask for, the features hidden behind a $12/month plan, the loading screen every time I just wanted to hit an endpoint. And when Postman announced that the free plan would be limited to a single user starting March 2026, a lot of teams started asking the same question: what else is out there?&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;API Sentinel&lt;/strong&gt; — a free, local-first desktop API client. No account. No cloud. No subscription. Everything runs on your machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="https://github.com/Sanjeevsky/api-sentinel-downloads/releases/latest" rel="noopener noreferrer"&gt;github.com/Sanjeevsky/api-sentinel-downloads&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Landing page:&lt;/strong&gt; &lt;a href="https://sanjeevsky.github.io/api-sentinel-downloads/" rel="noopener noreferrer"&gt;sanjeevsky.github.io/api-sentinel-downloads&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why local-first matters
&lt;/h2&gt;

&lt;p&gt;Most API clients have drifted toward cloud-first architectures. That means your collections, environments, request history, API keys, and internal endpoint URLs are sitting on someone else's server. For teams working on internal APIs, financial systems, or anything with compliance requirements — that's a problem.&lt;/p&gt;

&lt;p&gt;API Sentinel takes the opposite approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No account required&lt;/strong&gt; — launch and start testing immediately&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No cloud sync&lt;/strong&gt; — everything is stored on your filesystem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No telemetry by default&lt;/strong&gt; — nothing phones home unless you enable it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works fully offline&lt;/strong&gt; — no internet needed to use the app itself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your request data, API credentials, and collections never leave your machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's included — everything, free
&lt;/h2&gt;

&lt;p&gt;This is the part where most tools have an asterisk. API Sentinel doesn't. Every feature is in the free download:&lt;/p&gt;

&lt;h3&gt;
  
  
  Request building
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;URL bar with autocomplete and direct cURL import&lt;/li&gt;
&lt;li&gt;All HTTP methods, HTTP/1.1 and HTTP/2&lt;/li&gt;
&lt;li&gt;Structured editors for params, headers, auth (Bearer, Basic, API Key, OAuth), cookies, variables&lt;/li&gt;
&lt;li&gt;Body modes: JSON, raw, form-data, urlencoded, GraphQL, binary file uploads&lt;/li&gt;
&lt;li&gt;Pre-request and test scripting with assertions&lt;/li&gt;
&lt;li&gt;Code generation from any request&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Response analysis
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pretty-print, raw, and JSON tree views&lt;/li&gt;
&lt;li&gt;Headers, cookies, timing, and timeline data&lt;/li&gt;
&lt;li&gt;Response search and export&lt;/li&gt;
&lt;li&gt;Markdown and schema-style rendering&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Regression testing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Save response snapshots locally&lt;/li&gt;
&lt;li&gt;Mark baselines and compare current vs saved&lt;/li&gt;
&lt;li&gt;Side-by-side diff between any two responses&lt;/li&gt;
&lt;li&gt;All snapshots stay on your machine&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Organization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Collections with nested folders and environments&lt;/li&gt;
&lt;li&gt;Multiple environments (local, staging, prod) with variable toggles&lt;/li&gt;
&lt;li&gt;Full request history with time machine inspection&lt;/li&gt;
&lt;li&gt;Import: cURL, OpenAPI/Swagger, HAR, common API client formats&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automation and flows
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collection runner&lt;/strong&gt; — execute multiple requests in sequence with pass/fail reporting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled runs&lt;/strong&gt; — recurring local automation, results stored locally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flows&lt;/strong&gt; — chain requests where one uses another's output (login → fetch profile → validate)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy capture&lt;/strong&gt; — intercept real network traffic and build requests from it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Protocol support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;REST and HTTP (all methods)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GraphQL&lt;/strong&gt; — schema introspection, query editor, mutations, subscriptions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebSocket&lt;/strong&gt; — full composer with message history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSE&lt;/strong&gt; — Server-Sent Events client&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Socket.IO&lt;/strong&gt; — dedicated composer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MQTT&lt;/strong&gt; — client with topic subscriptions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Testing and security
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mock server&lt;/strong&gt; — local endpoint simulation, no external service needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load testing&lt;/strong&gt; — concurrent virtual users, duration-based runs, latency/throughput metrics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security testing&lt;/strong&gt; — passive scan helpers, fuzzing passes, common API vulnerability checks&lt;/li&gt;
&lt;li&gt;Everything runs locally — no data sent externally&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How it compares to Postman and Insomnia
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;API Sentinel&lt;/th&gt;
&lt;th&gt;Postman&lt;/th&gt;
&lt;th&gt;Insomnia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mock server&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load testing&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security testing&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Collection runner&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Limited free&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduled runs&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chained flows&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebSocket&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSE client&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Socket.IO&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MQTT&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proxy capture&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snapshot regression&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI assistant&lt;/td&gt;
&lt;td&gt;✅ Free&lt;/td&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No account required&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;td&gt;✗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local-first storage&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✗ Cloud&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Works offline&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Freemium / $12+/mo&lt;/td&gt;
&lt;td&gt;Freemium / $8+/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Everything Postman puts behind a paid plan is free in API Sentinel, and your data never leaves your machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;Main workspace — REST testing, response inspection, history:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24g0acmbgdvrvxd3479.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24g0acmbgdvrvxd3479.png" alt="API Sentinel main workspace" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Request composer with cURL import:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0nx70bggdlr0ozxn1ba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0nx70bggdlr0ozxn1ba.png" alt="API Sentinel request composer" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Response viewer with JSON tree and snapshot comparison:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99vdycdw6eszv8uxgo3i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99vdycdw6eszv8uxgo3i.png" alt="API Sentinel response viewer" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mock server for local endpoint simulation:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fxf6q69cx91w1ntcxjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fxf6q69cx91w1ntcxjo.png" alt="API Sentinel mock server" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Platform support
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt; — &lt;code&gt;.exe&lt;/code&gt; for x64&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS&lt;/strong&gt; — &lt;code&gt;.dmg&lt;/code&gt; for Intel and Apple Silicon
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt; — &lt;code&gt;.deb&lt;/code&gt; for x64&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current version: &lt;code&gt;v0.0.1&lt;/code&gt; — initial public release.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;macOS note:&lt;/strong&gt; Current builds are preview releases and not yet notarized by Apple. On first launch: right-click → Open → approve in System Settings → Privacy &amp;amp; Security → Open Anyway. Full notarization is on the roadmap.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why I built this instead of Bruno or Insomnia
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bruno&lt;/strong&gt; is excellent for Git-native, file-based collections — but no built-in mock server, load testing, or real-time protocol support. You'd need separate tools for those.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insomnia&lt;/strong&gt; is solid for daily REST and GraphQL work but has drifted toward cloud and freemium. No load testing, no scheduled runs, no chained flows, no MQTT or Socket.IO.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hoppscotch&lt;/strong&gt; is great for quick browser-based checks but not a full desktop client, and doesn't run fully offline.&lt;/p&gt;

&lt;p&gt;API Sentinel is the tool I wanted to exist: everything in one place, all local, all free, no account.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="https://github.com/Sanjeevsky/api-sentinel-downloads/releases/latest" rel="noopener noreferrer"&gt;github.com/Sanjeevsky/api-sentinel-downloads/releases/latest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Sanjeevsky/api-sentinel-downloads" rel="noopener noreferrer"&gt;github.com/Sanjeevsky/api-sentinel-downloads&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Landing page:&lt;/strong&gt; &lt;a href="https://sanjeevsky.github.io/api-sentinel-downloads/" rel="noopener noreferrer"&gt;sanjeevsky.github.io/api-sentinel-downloads&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Getting started:&lt;/strong&gt; &lt;a href="https://github.com/Sanjeevsky/api-sentinel-downloads/blob/main/docs/GETTING_STARTED.md" rel="noopener noreferrer"&gt;docs/GETTING_STARTED.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bug reports:&lt;/strong&gt; &lt;a href="https://github.com/Sanjeevsky/api-sentinel-downloads/issues" rel="noopener noreferrer"&gt;github.com/Sanjeevsky/api-sentinel-downloads/issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is v0.0.1 — feedback, bug reports, and feature requests very welcome.&lt;/p&gt;

</description>
      <category>api</category>
      <category>testing</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
