<?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: Agrzam</title>
    <description>The latest articles on DEV Community by Agrzam (@agrzam_sofware).</description>
    <link>https://dev.to/agrzam_sofware</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%2F3947874%2Fc80f7994-c24b-4007-9e48-eafbaf076e2c.png</url>
      <title>DEV Community: Agrzam</title>
      <link>https://dev.to/agrzam_sofware</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agrzam_sofware"/>
    <language>en</language>
    <item>
      <title>I'm building an open source API workspace that syncs with your backend automatically — and I need contributors</title>
      <dc:creator>Agrzam</dc:creator>
      <pubDate>Sat, 23 May 2026 15:39:12 +0000</pubDate>
      <link>https://dev.to/agrzam_sofware/im-building-an-open-source-api-workspace-that-syncs-with-your-backend-automatically-and-i-need-39eh</link>
      <guid>https://dev.to/agrzam_sofware/im-building-an-open-source-api-workspace-that-syncs-with-your-backend-automatically-and-i-need-39eh</guid>
      <description>&lt;p&gt;Every team I've worked with has the same problem. The backend developer finishes a new endpoint. What happens next is painful.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Backend dev → Slack message
→ Frontend copies it into Postman manually
→ Auth fails → Asks backend again
→ Endpoint changes next day → Nobody notified
→ Frontend breaks → Blame starts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This happens on every team that builds software. It wastes hours every week. And every existing tool — Postman, Bruno, Insomnia, Hoppscotch — requires you to maintain collections manually. The backend changes. The tool doesn't know.&lt;/p&gt;

&lt;p&gt;So I started building &lt;strong&gt;Agrzam&lt;/strong&gt; 🦁 — an open source collaborative API workspace that stays in sync with your backend automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  The idea
&lt;/h2&gt;

&lt;p&gt;Instead of manually creating and updating API collections, Agrzam reads the OpenAPI spec your framework already generates. No code changes. No custom parsers. No framework lock-in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your backend (any port)
    ↓  already generating OpenAPI JSON
@agrzam/apiwatch
    ↓  watches openapi.json on server start
    ↓  detects any change instantly
Agrzam platform
    ↓  WebSocket push
Your workspace ← live endpoint cards
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When your backend adds a new endpoint — the workspace updates. When an endpoint changes — the card updates. Your teammate opens the workspace and sees the same live state you do.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three commands. Setup done forever.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install once&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; @agrzam/apiwatch

&lt;span class="c"&gt;# Connect your account — once per machine&lt;/span&gt;
agrzam connect
&lt;span class="c"&gt;# → opens browser login&lt;/span&gt;
&lt;span class="c"&gt;# → token saved to ~/.agrzam/credentials&lt;/span&gt;

&lt;span class="c"&gt;# Link this project — once per codebase&lt;/span&gt;
agrzam &lt;span class="nb"&gt;link&lt;/span&gt;
&lt;span class="c"&gt;# → shows list of your platform projects&lt;/span&gt;
&lt;span class="c"&gt;# → you select one&lt;/span&gt;
&lt;span class="c"&gt;# → asks what port your server runs on&lt;/span&gt;
&lt;span class="c"&gt;# → saves to agrzam.config.json&lt;/span&gt;
&lt;span class="c"&gt;# → watching starts automatically&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After &lt;code&gt;agrzam link&lt;/code&gt; the package watches your OpenAPI JSON on every server start. No extra command. It just works.&lt;/p&gt;

&lt;p&gt;When you've tested your endpoints locally and you're ready for teammates to see them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agrzam push
&lt;span class="c"&gt;# → shows what will change&lt;/span&gt;
&lt;span class="c"&gt;# + POST /api/orders   (new)&lt;/span&gt;
&lt;span class="c"&gt;# ~ GET  /api/users/:id (changed)&lt;/span&gt;
&lt;span class="c"&gt;# → you confirm → team sees it&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Local-first — your team sees nothing until you decide
&lt;/h2&gt;

&lt;p&gt;This is the design decision I'm most interested in getting feedback on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local endpoints stay local until you run &lt;code&gt;agrzam push&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You test privately while you're building. You fix issues before anyone else sees the endpoint. When you're confident — you push. The team sees verified, working endpoints. Not half-finished work in progress.&lt;/p&gt;

&lt;p&gt;It mirrors how Git works mentally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit   →   agrzam watches locally
git push     →   agrzam push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Developers already understand this model. Zero learning curve.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three ways to test inside Agrzam
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Quick&lt;/strong&gt; — one click. GET endpoints run immediately. Auth injected. Done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual&lt;/strong&gt; — full control. Paste your token, edit the payload, send the request. Exactly like Postman but inside a workspace your whole team shares.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Test&lt;/strong&gt; — this is the interesting one. You provide your auth token once. The AI reads your OpenAPI schema, generates a valid payload, sends the request, and tells you what passed and why. You touch nothing. Like vibe coding but for API testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Works with every framework
&lt;/h2&gt;

&lt;p&gt;If your framework generates an OpenAPI URL — Agrzam works with it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Default OpenAPI URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/openapi.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Django REST Framework&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/schema/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NestJS&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api-json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Express + swagger-jsdoc&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api-docs.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Laravel + L5-Swagger&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api/documentation.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rails + rswag&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/api-docs/v1/swagger.yaml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spring Boot&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/v3/api-docs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go + swaggo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/swagger/doc.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;agrzam link&lt;/code&gt; detects the OpenAPI URL automatically from the port you provide.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web + Desktop
&lt;/h2&gt;

&lt;p&gt;The platform works in the browser. But for local development you want a desktop app — no browser tabs, no CORS issues, works offline. So we're also building an Electron desktop app that wraps the same Next.js UI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apps/web/       → Next.js workspace (browser)
apps/desktop/   → Electron wrapper (native desktop)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One codebase. Two surfaces.&lt;/p&gt;




&lt;h2&gt;
  
  
  The monorepo structure
&lt;/h2&gt;

&lt;p&gt;Built with Turborepo and pnpm workspaces. Every package is independently contributable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agrzam/
├── apps/
│   ├── web/               → Next.js workspace UI
│   ├── desktop/           → Electron desktop app
│   ├── api/               → NestJS REST API
│   └── gateway/           → WebSocket realtime server
│
└── packages/
    ├── apiwatch/          → CLI tool (@agrzam/apiwatch)
    ├── openapi-parser/    → Reads OpenAPI schemas
    ├── schema-diff/       → Detects endpoint changes
    ├── payload-generator/ → Builds test payloads
    ├── test-runner/       → Executes requests
    ├── websocket/         → Shared WS logic
    └── shared-types/      → TypeScript types
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why open source
&lt;/h2&gt;

&lt;p&gt;Bruno proved developers want open source API tooling. It has 30k+ GitHub stars. But Bruno is still manual — you maintain collections yourself. There's no real-time sync, no team workspace, no OpenAPI-native model.&lt;/p&gt;

&lt;p&gt;Agrzam fills the gap between "fully manual" and "fully cloud-locked." Open source and self-hostable, with a cloud-hosted version planned later.&lt;/p&gt;




&lt;h2&gt;
  
  
  Contributor benefits
&lt;/h2&gt;

&lt;p&gt;Nothing is promised today — but the principle is clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If Agrzam makes money, the people who built it should benefit from it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once the MVP is validated and the project reaches sustainable usage, monetization decisions (cloud plans, revenue sharing, compensation) will be discussed openly with active contributors before anything is implemented.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where we are now
&lt;/h2&gt;

&lt;p&gt;Early architecture phase. The monorepo is structured. The packages are scoped. The README is written. Now we need people to actually build it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4 good first issues are open right now:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;agrzam connect&lt;/code&gt; — one-time machine auth CLI command&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;agrzam link&lt;/code&gt; — link codebase to platform project&lt;/li&gt;
&lt;li&gt;OpenAPI schema parser — normalize OpenAPI 3.x into endpoint list&lt;/li&gt;
&lt;li&gt;Endpoint card component — Next.js App Router, Tailwind, shadcn/ui&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each issue is self-contained. No need to understand the whole codebase to contribute to one package.&lt;/p&gt;

&lt;p&gt;Stack: TypeScript, Node.js, NestJS, Next.js, PostgreSQL, Redis, Turborepo, Electron&lt;/p&gt;




&lt;h2&gt;
  
  
  Honest questions for this community
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Is the local-first model (test privately, push when ready) useful — or just extra friction?&lt;/li&gt;
&lt;li&gt;Would the OpenAPI-native approach work for your backend setup?&lt;/li&gt;
&lt;li&gt;What would actually make you switch from Postman or Bruno?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub: &lt;strong&gt;github.com/MrAboubakr/agrzam&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If any of the open issues match your skills — comment on the issue to claim it. If you just want to follow along — star the repo and watch GitHub Discussions where all architecture decisions happen publicly.&lt;/p&gt;

&lt;p&gt;Built in public. All feedback welcome.&lt;/p&gt;

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