<?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: Leon Shabani</title>
    <description>The latest articles on DEV Community by Leon Shabani (@l3on06).</description>
    <link>https://dev.to/l3on06</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%2F1028362%2Fe6871f14-18f5-4548-8f8a-0f1ebb7a47e3.png</url>
      <title>DEV Community: Leon Shabani</title>
      <link>https://dev.to/l3on06</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/l3on06"/>
    <language>en</language>
    <item>
      <title>Businesses were losing customers to messy bookings — so I built Rezzervo</title>
      <dc:creator>Leon Shabani</dc:creator>
      <pubDate>Thu, 27 Nov 2025 21:20:58 +0000</pubDate>
      <link>https://dev.to/l3on06/businesses-were-losing-customers-to-messy-bookings-so-i-built-rezzervo-9a3</link>
      <guid>https://dev.to/l3on06/businesses-were-losing-customers-to-messy-bookings-so-i-built-rezzervo-9a3</guid>
      <description>&lt;p&gt;A few months ago, I was at a barbershop and noticed something important: three customers left because their appointments were mixed up.&lt;/p&gt;

&lt;p&gt;It made me realize how many businesses lose time and energy simply because their booking tools are not clear or automated.&lt;/p&gt;

&lt;p&gt;That moment gave me the idea to build something better. &lt;/p&gt;

&lt;p&gt;Today, I’m happy to share that &lt;strong&gt;Rezzervo&lt;/strong&gt; is live — a clean and modern booking system designed to make scheduling easier for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rezzervo&lt;/strong&gt; supports: &lt;/p&gt;

&lt;p&gt;• Analytics dashboard &lt;br&gt;
• Multiple locations &lt;br&gt;
• Multiple employees &lt;br&gt;
• Multiple services &lt;br&gt;
• Automatic scheduling &lt;br&gt;
• Holidays and days off &lt;br&gt;
• Everything synced and organized behind the scenes. &lt;/p&gt;

&lt;p&gt;It helps business stay on track, stay organized, and offer a smooth booking experience without extra effort. &lt;/p&gt;

&lt;p&gt;If you know someone who could use a system like this, feel free to share it with them. &lt;/p&gt;

&lt;p&gt;You can also go and try it out for free on: &lt;a href="https://rezzervo.com" rel="noopener noreferrer"&gt;https://rezzervo.com&lt;/a&gt; More helpful features are on the way. 🚀&lt;/p&gt;

</description>
      <category>startup</category>
      <category>software</category>
    </item>
    <item>
      <title>Simplify React State &amp; CRUD Management with Zustand — Meet Zenty</title>
      <dc:creator>Leon Shabani</dc:creator>
      <pubDate>Thu, 10 Jul 2025 14:05:17 +0000</pubDate>
      <link>https://dev.to/l3on06/simplify-react-state-crud-management-with-zustand-meet-zenty-2fc7</link>
      <guid>https://dev.to/l3on06/simplify-react-state-crud-management-with-zustand-meet-zenty-2fc7</guid>
      <description>&lt;p&gt;Managing CRUD operations in React apps with Zustand is powerful — but often repetitive. If you’re tired of writing boilerplate for every entity store, meet your new best friend: &lt;strong&gt;Zenty&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zenty&lt;/strong&gt;  is an open-source, lightweight library built on top of Zustand that automates and simplifies CRUD operations with clean, type-safe, and elegant APIs — perfect for building scalable React applications faster.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚡ Build scalable, boilerplate-free stores in one line.&lt;br&gt;&lt;br&gt;
✨ Ideal for SaaS apps, admin dashboards, and any data-driven React app.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://zentylib.com" rel="noopener noreferrer"&gt;🌐 Website&lt;/a&gt; • &lt;a href="https://zentylib.com/docs" rel="noopener noreferrer"&gt;📘 Docs&lt;/a&gt; • &lt;a href="https://www.npmjs.com/package/zenty" rel="noopener noreferrer"&gt;📦 npm&lt;/a&gt; • &lt;a href="https://github.com/zentylib/zenty" rel="noopener noreferrer"&gt;⭐ GitHub&lt;/a&gt;  • &lt;a href="https://zentylib.com" rel="noopener noreferrer"&gt;🔗 interactive demo&lt;/a&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Boilerplate&lt;/strong&gt; —      One-liner store setup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in CRUD Actions&lt;/strong&gt; — &lt;code&gt;add&lt;/code&gt;, &lt;code&gt;addMany&lt;/code&gt;, &lt;code&gt;remove&lt;/code&gt;, &lt;code&gt;update&lt;/code&gt;, &lt;code&gt;updateMany&lt;/code&gt;, &lt;code&gt;setError&lt;/code&gt;, &lt;code&gt;setLoading&lt;/code&gt;, &lt;code&gt;find&lt;/code&gt;, &lt;code&gt;has&lt;/code&gt;, &lt;code&gt;clear&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript First&lt;/strong&gt; —      Full type safety and autocompletion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;List or Single Entity Stores&lt;/strong&gt; — Create scalable app structure instantly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zustand Compatible&lt;/strong&gt; — Composable with any Zustand middleware&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔸 Single Entity Store Example
&lt;/h2&gt;

&lt;p&gt;When you want to manage a single object in your state—like app settings, the current user the &lt;strong&gt;Single Entity Store&lt;/strong&gt;. It provides a clean way to store and update one entity with simple CRUD-like methods.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { createEntityStore } from "zenty"

type User = { id: string; name: string }

export const useUserStore = createEntityStore&amp;lt;User&amp;gt;()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you instantly get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;entity&lt;/code&gt; — single entity&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;set&lt;/code&gt; — set the entire entity&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;update&lt;/code&gt; — update parts of the entity&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;clear&lt;/code&gt; — clear the entity&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setError&lt;/code&gt; - Set error state&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setLoading&lt;/code&gt; - Set loading state&lt;/li&gt;
&lt;li&gt;and more&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔹 Entities Store Example
&lt;/h2&gt;

&lt;p&gt;If you want to manage multiple entities grouped by IDs or keys, &lt;strong&gt;Zenty&lt;/strong&gt; also supports that with an Entities Store pattern. This is great for normalized data where entities are stored as an object keyed by ID.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { createEntitiesStore } from "zenty"

type Product = { id: string; name: string; price: number }

export const useProductEntitiesStore = createEntitiesStore&amp;lt;Product&amp;gt;()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;entities&lt;/code&gt; — array of entities&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;add&lt;/code&gt; — add one or more entities&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;update&lt;/code&gt; — update a specific entity by id&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;find&lt;/code&gt; - find a specific entity by id &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;remove&lt;/code&gt; — remove an entity by id&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;set&lt;/code&gt; — replace all entities at once&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;clear&lt;/code&gt; — remove all entities&lt;/li&gt;
&lt;li&gt;and more&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;zenty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add zenty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm add zenty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;🧠 Philosophy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zenty&lt;/strong&gt; builds on the simplicity of Zustand without adding unnecessary complexity. It enhances Zustand with powerful, ready-to-use patterns for common state management tasks—making your developer experience smoother and more efficient.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 Thank You
&lt;/h2&gt;

&lt;p&gt;Thank you very much for checking out &lt;strong&gt;Zenty&lt;/strong&gt;!&lt;br&gt;&lt;br&gt;
We hope it helps simplify your Zustand experience and boosts your productivity.&lt;/p&gt;




&lt;h2&gt;
  
  
  👥 Created by
&lt;/h2&gt;

&lt;p&gt;Zenty is crafted with ❤️ by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Milaim Ajdari&lt;/strong&gt; – &lt;a href="https://www.linkedin.com/in/milaim/" rel="noopener noreferrer"&gt;@milaim&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leon Shabani&lt;/strong&gt; – &lt;a href="https://www.linkedin.com/in/leonshabani/" rel="noopener noreferrer"&gt;@leonshabani&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have feedback, suggestions, or questions, feel free to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧵 &lt;strong&gt;Start a GitHub Discussion&lt;/strong&gt;: &lt;a href="https://github.com/zentylib/zenty/discussions" rel="noopener noreferrer"&gt;GitHub discussions link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📣 Spread the Word
&lt;/h2&gt;

&lt;p&gt;If you like Zenty, consider ⭐ starring the project and sharing it with fellow devs.&lt;br&gt;&lt;br&gt;
Your support helps us grow and improve the library!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Happy coding! 🚀&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>nextjs</category>
      <category>zustand</category>
    </item>
  </channel>
</rss>
