<?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: Ido David</title>
    <description>The latest articles on DEV Community by Ido David (@idodav).</description>
    <link>https://dev.to/idodav</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%2F584891%2F6904353f-80de-4bc7-af70-8c7b53aa1de6.jpeg</url>
      <title>DEV Community: Ido David</title>
      <link>https://dev.to/idodav</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/idodav"/>
    <language>en</language>
    <item>
      <title>Python Typing vs. TypeScript</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Tue, 10 Feb 2026 10:08:33 +0000</pubDate>
      <link>https://dev.to/idodav/python-typing-vs-typescript-5bhp</link>
      <guid>https://dev.to/idodav/python-typing-vs-typescript-5bhp</guid>
      <description>&lt;h1&gt;
  
  
  Python Typing vs. TypeScript: It’s Not Just About Syntax
&lt;/h1&gt;

&lt;p&gt;For developers moving between the worlds of Web and Backend, the "type system" conversation usually starts with a shrug: &lt;em&gt;"They both have type hints now, right?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Not exactly.&lt;/p&gt;

&lt;p&gt;While both languages aim to tame the chaos of dynamic code, they have fundamentally different DNA. If you’re coming from TypeScript, you’ll find Python’s type system surprisingly "rigid" in its logic but "flexible" in its execution. Here is the tactical breakdown of how they actually differ.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Execution Gap: Compile-time vs. Runtime
&lt;/h2&gt;

&lt;p&gt;The most jarring difference for a TS dev is that &lt;strong&gt;Python doesn't care about your types.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; is a gatekeeper. If your types don't align, the TSC (TypeScript Compiler) stops you at the door. At runtime, the types are erased; they don't exist in the generated JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; is a librarian. It records your type hints in metadata (the &lt;code&gt;__annotations__&lt;/code&gt; attribute), but the interpreter ignores them during execution. You need an external tool like &lt;strong&gt;Mypy&lt;/strong&gt; or &lt;strong&gt;Pyright&lt;/strong&gt; to actually catch errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Tactical Win for Python:&lt;/strong&gt; Because types persist as metadata, libraries like &lt;strong&gt;Pydantic&lt;/strong&gt; can use them to perform real-time data validation. In TS, you often need a separate schema library (like Zod) to do what Python does natively with type hints.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Structural vs. Nominal: "Duck" vs. "Brand"
&lt;/h2&gt;

&lt;p&gt;This is the "philosophy" divide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript is Structural:&lt;/strong&gt; If it walks like a duck and quacks like a duck, it’s a duck. If two interfaces have the same properties, they are interchangeable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python is Nominal (by default):&lt;/strong&gt; Even if two classes look identical, Python treats them as different types because they have different names.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To get "TypeScript-style" behavior in Python, you have to explicitly use &lt;code&gt;typing.Protocol&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. What TypeScript Can Do (That Python Can't)
&lt;/h2&gt;

&lt;p&gt;If you’re used to "Type-Level Programming," Python will feel like it’s missing a few gears. TypeScript is essentially a functional language that operates on types:&lt;/p&gt;

&lt;h3&gt;
  
  
  Mapped Types
&lt;/h3&gt;

&lt;p&gt;In TS, you can transform types dynamically:&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="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;PartialUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Partial&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Automatically makes all keys optional&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Python, there is no &lt;code&gt;Partial&lt;/code&gt;. You have to manually redefine the class or use specialized library workarounds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Template Literal Types
&lt;/h3&gt;

&lt;p&gt;TS can manipulate strings at the type level:&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="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Protocol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;http&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;Protocol&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;://localhost`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Only allows "http://localhost" or "https://localhost"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python’s &lt;code&gt;Literal&lt;/code&gt; can list specific strings, but it cannot "calculate" or "concatenate" them to create new types.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditional Types
&lt;/h3&gt;

&lt;p&gt;TS allows for "If/Then" logic in types: &lt;code&gt;T extends string ? A : B&lt;/code&gt;. Python relies on &lt;code&gt;@overload&lt;/code&gt;, which is more verbose and requires you to write the function signature multiple times.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The 2026 Roadmap: Is Python Catching Up?
&lt;/h2&gt;

&lt;p&gt;Python isn't trying to become TypeScript. Instead, it’s leaning into its own strengths.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.14+&lt;/strong&gt; is introducing &lt;strong&gt;Template Strings (t-strings)&lt;/strong&gt;. While not a direct clone of TS Template Literals, they offer a structured way to handle dynamic strings that type checkers can finally understand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Focus on Introspection:&lt;/strong&gt; Recent PEPs (649/749) focus on making type evaluation faster and more reliable at runtime, doubling down on the "Type-Validated Runtime" that makes Python great for APIs and Data Science.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Sharkio to the Rescue: Streamline Your API Development</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Mon, 18 Dec 2023 15:32:50 +0000</pubDate>
      <link>https://dev.to/idodav/sharkio-to-the-rescue-streamline-your-api-development-5cfc</link>
      <guid>https://dev.to/idodav/sharkio-to-the-rescue-streamline-your-api-development-5cfc</guid>
      <description>&lt;p&gt;Hello beloved members of Maakaf!&lt;/p&gt;

&lt;p&gt;Debugging your backend? debugging microservices?&lt;br&gt;
Searching for hours through logs?&lt;br&gt;
Spending hours on building mocks?&lt;br&gt;
Spending hours on building integration tests?&lt;br&gt;
Manually creating requests in Postman for hours?&lt;/p&gt;

&lt;p&gt;I'm the co-founder of Sharkio 🦈 😁 &lt;br&gt;
An open-source project that is a long-standing member of Maakaf.&lt;br&gt;
We are now booking short 30-minute demo calls. And would love to hear all about your daily struggles with API development and third-party API integrations.&lt;br&gt;
We provide our specialized knowledge to address your problems.&lt;/p&gt;

&lt;p&gt;No more! Sharkio is here to save you and your team 😇 &lt;br&gt;
Book a call with us now:&lt;br&gt;
Send me a DM and we can discuss&lt;br&gt;
Book a meeting using Calendly: &lt;a href="https://calendly.com/sharkio-dev/sharkio-demo?month=2023-12"&gt;Calendly: 30 min call&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Top 3 questions to ask ChatGPT using AskTheCode plugin</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Fri, 06 Oct 2023 13:18:14 +0000</pubDate>
      <link>https://dev.to/sharkio/top-3-questions-to-ask-chatgpt-using-askthecode-plugin-1j54</link>
      <guid>https://dev.to/sharkio/top-3-questions-to-ask-chatgpt-using-askthecode-plugin-1j54</guid>
      <description>&lt;p&gt;As we all know ChatGPT is mighty and powerful and useful for various tasks like writing code, tests, and much more.&lt;/p&gt;

&lt;p&gt;ChatGPT now supports plugins. And one awesome plugin is AskTheCode. It opens up a world of possibilities both for open-source contributors and for maintainers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Describe the architecture of the project
&lt;/h2&gt;

&lt;p&gt;I asked Chad to describe the architecture of sharkio. And it provided an amazing result that I could use as documentation.&lt;br&gt;
It recognized that there is a Client side and Server side. Provided a high level folder structure for each. It also recognized the root level code and files.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Where is file  located?
&lt;/h2&gt;

&lt;p&gt;you can use chat to locate files in the project. &lt;br&gt;
And it provides you with a link to the file.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What libraries does the client side use?
&lt;/h2&gt;

&lt;p&gt;This is truly amazing!! &lt;br&gt;
You can quickly and easily analyze a new project.&lt;br&gt;
It provided a breakdown of main libraries/state management/testing/API/Build and devtools. &lt;/p&gt;

&lt;p&gt;This was the result when I asked Chad about Sharkio:&lt;/p&gt;

&lt;h4&gt;
  
  
  Main Libraries
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;: ^18.2.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org/docs/react-dom.html"&gt;React DOM&lt;/a&gt;: ^18.2.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactrouter.com/"&gt;React Router DOM&lt;/a&gt;: ^6.10.0&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  State Management
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pmndrs/zustand"&gt;Zustand&lt;/a&gt;: ^4.4.1&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  UI Libraries
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://mui.com/"&gt;MUI Material&lt;/a&gt;: ^5.12.1&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mui.com/components/icons/"&gt;MUI Icons Material&lt;/a&gt;: ^5.11.16&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  API and Authentication
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://supabase.io/docs/reference/javascript/getting-started"&gt;Supabase JS&lt;/a&gt;: ^2.32.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/supabase/ui"&gt;Supabase Auth UI React&lt;/a&gt;: ^0.4.2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://axios-http.com/"&gt;Axios&lt;/a&gt;: ^1.3.6&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Styling
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://emotion.sh/docs/@emotion/react"&gt;Emotion React&lt;/a&gt;: ^11.10.6&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://emotion.sh/docs/@emotion/styled"&gt;Emotion Styled&lt;/a&gt;: ^11.10.6&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Testing
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt;: ^29.5.0&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Build and Development Tools
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://vitejs.dev/"&gt;Vite&lt;/a&gt;: ^4.3.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;: ^5.0.2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt;: ^8.38.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt;: ^2.8.8&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Other Libraries
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/eligrey/FileSaver.js/"&gt;File Saver&lt;/a&gt;: ^2.0.5&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/swagger-api/swagger-ui"&gt;Swagger UI React&lt;/a&gt;: ^5.2.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/JedWatson/classnames"&gt;Classnames&lt;/a&gt;: ^2.3.2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a non-exhaustive list, and you can find more details in the &lt;a href="https://github.com/sharkio-dev/sharkio/blob/main/client/package.json"&gt;&lt;code&gt;package.json&lt;/code&gt;&lt;/a&gt; file.&lt;/p&gt;




&lt;p&gt;If you know any of those technologies. &lt;br&gt;
And love to contribute to open-source projects. &lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://github.com/sharkio-dev/sharkio"&gt;Sharkio&lt;/a&gt;!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sick of Writing Code Just for Mock Data? Try Sharkio 🚀🦈</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Tue, 05 Sep 2023 21:27:07 +0000</pubDate>
      <link>https://dev.to/sharkio/sick-of-writing-code-just-for-mock-data-try-sharkio-4g5f</link>
      <guid>https://dev.to/sharkio/sick-of-writing-code-just-for-mock-data-try-sharkio-4g5f</guid>
      <description>&lt;p&gt;What is sharkio?&lt;/p&gt;

&lt;p&gt;Sharkio is the only tool you'll ever need for API development. Sharkio is an API proxy designed as a developer tool. It will streamline your workflow, and make API development a breeze. And it integrates seamlessly and easily!&lt;/p&gt;

&lt;p&gt;With only three easy steps. You can add new endpoints with mocked data. And you could mock existing endpoints and easily test your application.&lt;/p&gt;

&lt;p&gt;For this tutorial let's assume that we have an API at &lt;a href="http://example.api.com"&gt;http://example.api.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1) Create a new &lt;a href="https://sharkio.dev/config"&gt;proxy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iBm_MUKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/my76tdfzy0xy00y6s25h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iBm_MUKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/my76tdfzy0xy00y6s25h.png" alt="proxy createion" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose a port&lt;/li&gt;
&lt;li&gt;Enter the URL of your api&lt;/li&gt;
&lt;li&gt;Enter a name&lt;/li&gt;
&lt;li&gt;Save and start&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2) Modify you frontend to call &lt;a href="https://sharkio.dev:5555"&gt;https://sharkio.dev:5555&lt;/a&gt; instead of &lt;a href="http://example.api.com"&gt;http://example.api.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;3) Easily create a mock&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9DS0UEZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/imbdrmfm3hq57qlahv5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9DS0UEZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/imbdrmfm3hq57qlahv5m.png" alt="mock creation dialog" width="800" height="777"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fV7BPdwW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyhgbtry99tvmgshhlmv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fV7BPdwW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyhgbtry99tvmgshhlmv.png" alt="created mock" width="800" height="777"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See that it works:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EfRgbbcs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cxxqe1ft7ojdjwxo4dxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EfRgbbcs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cxxqe1ft7ojdjwxo4dxx.png" alt="curl request" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it!!&lt;/p&gt;

&lt;p&gt;Give it a try for free at &lt;a href="https://sharkio.dev"&gt;Sharkio&lt;/a&gt;&lt;br&gt;
Star us on Github at &lt;a href="https://github.com/sharkio-dev/sharkio"&gt;Sharkio&lt;/a&gt;&lt;br&gt;
And join our community on Discord &lt;a href="https://discord.gg/8sbsuTnnr6"&gt;Invite link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devtool</category>
      <category>api</category>
      <category>mock</category>
    </item>
    <item>
      <title>The best API dev tool yet!</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Tue, 05 Sep 2023 01:00:00 +0000</pubDate>
      <link>https://dev.to/sharkio/the-best-api-dev-tool-yet-ji9</link>
      <guid>https://dev.to/sharkio/the-best-api-dev-tool-yet-ji9</guid>
      <description>&lt;p&gt;Hello fellow developers!&lt;/p&gt;

&lt;p&gt;We are excited to share with you that Sharkio is now live!&lt;br&gt;
Check it out at &lt;a href="https://sharkio.dev"&gt;https://sharkio.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Who is this tool good for?&lt;/p&gt;

&lt;p&gt;Fullstack developers&lt;br&gt;
Microservice developers&lt;br&gt;
Api developers&lt;/p&gt;

&lt;p&gt;Popular use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Everyday debugging&lt;/li&gt;
&lt;li&gt;New team member that wants to understand the behavior of the system more easily&lt;/li&gt;
&lt;li&gt;Complex debugging scenarios across multiple services&lt;/li&gt;
&lt;li&gt;Easily debugging a front-end application with multiple&lt;/li&gt;
&lt;li&gt;Easily monitoring requests made to third parties&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>tooling</category>
      <category>opensource</category>
      <category>microservices</category>
    </item>
    <item>
      <title>One feature closer to MVP</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Sat, 15 Jul 2023 20:30:39 +0000</pubDate>
      <link>https://dev.to/idodav/one-feature-closer-to-mvp-4hjc</link>
      <guid>https://dev.to/idodav/one-feature-closer-to-mvp-4hjc</guid>
      <description>&lt;p&gt;Sharkio now has an overview page for a specific service.&lt;/p&gt;

&lt;p&gt;This is the code if anyone is interested:&lt;br&gt;
&lt;a href="https://github.com/idodav/sharkio/pull/114"&gt;https://github.com/idodav/sharkio/pull/114&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HgfBT6-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8kz91qhw67f7zfdd9xi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HgfBT6-P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8kz91qhw67f7zfdd9xi8.png" alt="Image description" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>node</category>
      <category>react</category>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>Building a community for my Open Source project - Sharkio</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Wed, 12 Jul 2023 18:49:34 +0000</pubDate>
      <link>https://dev.to/idodav/building-a-community-for-my-open-source-project-sharkio-189i</link>
      <guid>https://dev.to/idodav/building-a-community-for-my-open-source-project-sharkio-189i</guid>
      <description>&lt;p&gt;So far Sharkio has:&lt;br&gt;
14 stars &lt;br&gt;
11 forks on Github&lt;br&gt;
14 users On the discord server&lt;br&gt;
9 developers contributed code&lt;/p&gt;

&lt;p&gt;I recommend anyone that is looking for contributors to share their project in this &lt;a href="https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-48-4a5n"&gt;series&lt;/a&gt; of posts by OpenSauced.&lt;/p&gt;

&lt;p&gt;Can't wait to see this community grow :)&lt;/p&gt;

&lt;p&gt;If you are interested in contributing to an api development tool.&lt;/p&gt;

&lt;p&gt;Checkout &lt;a href="https://github.com/idodav/sharkio"&gt;https://github.com/idodav/sharkio&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>contributorswanted</category>
      <category>programming</category>
    </item>
    <item>
      <title>Sharkio: The first contribution</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Thu, 29 Jun 2023 20:05:18 +0000</pubDate>
      <link>https://dev.to/idodav/sharkio-the-first-contribution-387e</link>
      <guid>https://dev.to/idodav/sharkio-the-first-contribution-387e</guid>
      <description>&lt;p&gt;Hello world.&lt;/p&gt;

&lt;p&gt;My name is Ido.&lt;br&gt;
I am a senior software engineer. I am a programmer from a very young age. I love code and I love open source.&lt;/p&gt;

&lt;p&gt;I wanted to share with you something that is very exciting!&lt;/p&gt;

&lt;p&gt;Recently I created My first open source project called Sharkio. It is a developer tool that aims to help me and other Backend/API/Fullstack developers in their daily work.&lt;/p&gt;

&lt;p&gt;I joined an awesome open source community. And very quickly developers showed interest in my project. And after a very short time they started running the project asking questions. And be more involved.&lt;/p&gt;

&lt;p&gt;This is a dream come true for me. Sharing my vision with fellow developers. Them showing interest and seeing the potential. And them eventually contributing code.&lt;/p&gt;

&lt;p&gt;If you want to learn more about sharkio. Please feel free to reach out to me on discord and on github:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/idodav/sharkio"&gt;Sharkio Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://discord.gg/KtM2WzPu"&gt;Sharkio discord&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ChatGPT: How I used it to convert http requests to cUrl</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Sat, 17 Jun 2023 20:57:38 +0000</pubDate>
      <link>https://dev.to/idodav/chatgpt-how-i-used-it-to-convert-http-requests-to-curl-108l</link>
      <guid>https://dev.to/idodav/chatgpt-how-i-used-it-to-convert-http-requests-to-curl-108l</guid>
      <description>&lt;p&gt;Hello fellow developers.&lt;br&gt;
So today I asked ChatGPT to write a function that converts an http requests to curl commands. And I integrated this code to my sass project.&lt;br&gt;
It worked flawlessly.&lt;/p&gt;

&lt;p&gt;This is the chat:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_EbvBnI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrrh3okrw8tdv0fwradw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_EbvBnI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrrh3okrw8tdv0fwradw.png" alt="Image description" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I modified the code a little bit for better presentation.&lt;br&gt;
You can see the code I merged in this PR:&lt;br&gt;
&lt;a href="https://github.com/idodav/sharkio/pull/35/files#diff-88acaec5e6709ddef22fb0c5d746dd75ca1a62efa369d170e46633ac6aabe816R123-R141"&gt;Sharkio integrate cUrl PR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nh-qMyd5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ah4f6ot6byoa5c1m6m1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nh-qMyd5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ah4f6ot6byoa5c1m6m1.png" alt="Image description" width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And this is the result:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hh0fx5hJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fx2p60c4j8uoqdwbm89a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hh0fx5hJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fx2p60c4j8uoqdwbm89a.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to know more about the sass I'm developing.&lt;br&gt;
Check out &lt;a href="https://github.com/idodav/sharkio"&gt;Sharkio&lt;/a&gt; on Github.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>chatgpt</category>
      <category>saas</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Tartigraid - progress update</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Mon, 22 May 2023 14:18:12 +0000</pubDate>
      <link>https://dev.to/idodav/tartigraid-progress-update-160</link>
      <guid>https://dev.to/idodav/tartigraid-progress-update-160</guid>
      <description>&lt;p&gt;Another progress update!&lt;/p&gt;

&lt;p&gt;Today I created the first version of the request page.&lt;br&gt;
Here you can see all the past invocations of an http request made to you api.&lt;/p&gt;

&lt;p&gt;Here is a preview:&lt;/p&gt;

&lt;p&gt;Click on the desired request here:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1jzq_97w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9sgm4gi9l4933igcy4vt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1jzq_97w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9sgm4gi9l4933igcy4vt.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See all the invocations for this request&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9ij-QmjJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyl7jb9kamtpjhtfck65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ij-QmjJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyl7jb9kamtpjhtfck65.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AND THE BEST THING ABOUT THIS FEATURE:&lt;/p&gt;

&lt;p&gt;You can re-execute specific invocations in order to easily develop you backend.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cP-ghO0y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k38d90ey20pnybestpld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cP-ghO0y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k38d90ey20pnybestpld.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upcoming features for this page include:&lt;br&gt;
Automatic JSON schema/Typescript/Curl requests/OpenAPI schema generation.&lt;br&gt;
You will be able to easily generate schemas and types for your http request.&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you would love to see some code/architecture blog posts.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Side project update</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Sun, 21 May 2023 20:03:30 +0000</pubDate>
      <link>https://dev.to/idodav/side-project-update-1cfo</link>
      <guid>https://dev.to/idodav/side-project-update-1cfo</guid>
      <description>&lt;p&gt;Hello fellow developers.&lt;br&gt;
I am making progress with tartigraid!!&lt;br&gt;
My open source api development tool.&lt;/p&gt;

&lt;p&gt;I finished adding support for multiple sniffers.&lt;br&gt;
Now you can easily create multiple proxy sniffers with a click:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eAieMtCq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/npu4c69pmos0vsz7ou62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eAieMtCq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/npu4c69pmos0vsz7ou62.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is great if you are working with multiple services locally.&lt;br&gt;
This way you could easily sniff all the request in your services. And see them in the dashboard.&lt;/p&gt;

&lt;p&gt;Stay tuned i'll update on upcoming features!&lt;/p&gt;

&lt;p&gt;Also if you think that this project is interesting. And you would like to contribute. Here is the link for my Github project:&lt;br&gt;
&lt;a href="https://github.com/idodav/tartigraid/issues"&gt;https://github.com/idodav/tartigraid/issues&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Tartigraid - Best api dev tool</title>
      <dc:creator>Ido David</dc:creator>
      <pubDate>Mon, 01 May 2023 09:18:52 +0000</pubDate>
      <link>https://dev.to/idodav/tartigraid-best-api-dev-tool-2a0j</link>
      <guid>https://dev.to/idodav/tartigraid-best-api-dev-tool-2a0j</guid>
      <description>&lt;p&gt;Hello fellow developers.&lt;br&gt;
I started working on a new open source api dev tool called &lt;a href="https://github.com/idodav/tartigraid"&gt;tartigraid&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;TL;DR:&lt;br&gt;
It is a proxy that between you api server and the clients.&lt;br&gt;
The tool provides a dashboard that provides insight and tools to help you develop the best API.&lt;/p&gt;

&lt;p&gt;I have many ideas for features that could improve the quality of the API. And the quality of life for the developers.&lt;/p&gt;

&lt;p&gt;Some features that I thought about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic generation of open api schema&lt;/li&gt;
&lt;li&gt;Automatic generation of test suites. And execution tools.&lt;/li&gt;
&lt;li&gt;Automatic generation of json schema and typescript types/zod validators/types in any language.&lt;/li&gt;
&lt;li&gt;Postman integration&lt;/li&gt;
&lt;li&gt;Easily launch multiple proxies. For a microservice environment and provide insight on traffic between services.&lt;/li&gt;
&lt;li&gt;Re Execute requests made to the server&lt;/li&gt;
&lt;li&gt;Easily generate test data and execute a request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would love to hear your thoughts especially if you have feature proposals.&lt;br&gt;
And I would like it even more if you would like to contribute!!&lt;br&gt;
&lt;a href="https://github.com/idodav/tartigraid"&gt;tartigraid&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>api</category>
      <category>node</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
