<?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: Dilane3</title>
    <description>The latest articles on DEV Community by Dilane3 (@dilane3).</description>
    <link>https://dev.to/dilane3</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F554495%2Fae0f5ddd-f5c1-4c84-9c22-bb4f65ce6bd5.jpg</url>
      <title>DEV Community: Dilane3</title>
      <link>https://dev.to/dilane3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dilane3"/>
    <language>en</language>
    <item>
      <title>Rasengan.js 2.0 is stable</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sat, 24 Oct 2026 20:37:08 +0000</pubDate>
      <link>https://dev.to/dilane3/rasenganjs-20-is-stable-1e8n</link>
      <guid>https://dev.to/dilane3/rasenganjs-20-is-stable-1e8n</guid>
      <description>&lt;p&gt;Two months ago I shipped the Rasengan.js 2.0 beta and asked people to break it. They did, and today &lt;strong&gt;Rasengan.js 2.0 is stable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Rasengan.js is a full-stack React framework built on Vite and React Router: file-based routing, SSR, static generation and SPA mode, with a backend story that now lives in the same project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-rasengan@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's what changed in 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  A core built on web standards
&lt;/h2&gt;

&lt;p&gt;The dev server and the production request handler used to run on Express. In 2.0 they run on &lt;strong&gt;Futon&lt;/strong&gt;, a small HTTP runtime that works directly with the standard &lt;code&gt;Request&lt;/code&gt; and &lt;code&gt;Response&lt;/code&gt; objects, the same ones browsers, Bun, Deno and Cloudflare Workers already use. Server-side rendering moved from Node streams to Web Streams along with it.&lt;/p&gt;

&lt;p&gt;You don't change anything in your pages or layouts. What you get is a core that isn't tied to Node anymore, which is what makes the next two sections possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  API routes next to your pages
&lt;/h2&gt;

&lt;p&gt;Backend endpoints can live inside your app, under &lt;code&gt;src/app/_api/&lt;/code&gt;. Folders map to URL segments, the same way page routing works, and each HTTP method is a named export:&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;// src/app/_api/users/[id].route.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;notFound&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rasengan/server&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Context&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rasengan/server&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;GET&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;findUser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;notFound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;User not found&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="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That file is &lt;code&gt;GET /api/users/:id&lt;/code&gt;. A &lt;code&gt;middleware.ts&lt;/code&gt; in any folder applies to every route below it. No separate server, no extra deployment target.&lt;/p&gt;

&lt;h2&gt;
  
  
  Node.js, Bun or the edge
&lt;/h2&gt;

&lt;p&gt;A new &lt;code&gt;runtime&lt;/code&gt; option tells the build what it targets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// rasengan.config.js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;defineConfig&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rasengan&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;rasengan&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rasengan/plugin&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;defineConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bun&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 'node' (default) | 'bun' | 'workerd'&lt;/span&gt;
  &lt;span class="na"&gt;vite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;rasengan&lt;/span&gt;&lt;span class="p"&gt;()],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With &lt;code&gt;'bun'&lt;/code&gt;, the production server runs on Bun with the same middleware stack it uses on Node. With &lt;code&gt;'workerd'&lt;/code&gt; and the Cloudflare adapter, the whole app is bundled into a single Worker. The Vercel and Netlify adapters were rebuilt on the new core too.&lt;/p&gt;

&lt;p&gt;Under the hood, 2.0 also moves to &lt;strong&gt;Vite 8&lt;/strong&gt; and &lt;strong&gt;React Router 8&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the beta caught
&lt;/h2&gt;

&lt;p&gt;A public beta was the right call. A few of the bugs real projects found before stable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client-side navigations in production got a full HTML document instead of the route's loader data.&lt;/li&gt;
&lt;li&gt;The built-in 404 page answered with HTTP 200.&lt;/li&gt;
&lt;li&gt;In dev, module-level state (a cache, a database client) was lost between requests.&lt;/li&gt;
&lt;li&gt;The worst one: in some apps, production SSR rendered an empty page shell. A second copy of React Router was getting bundled into the app's server code, with its own route context that never received any data. Nothing errored, the page was just empty until JavaScript loaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All fixed in 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upgrading
&lt;/h2&gt;

&lt;p&gt;From the beta, the one change to know about: &lt;code&gt;react-router&lt;/code&gt; is now a peer dependency, so your app lists it directly:&lt;br&gt;
&lt;/p&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;rasengan@latest react-router@^8.3.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From v1, most apps only need a dependency bump and a rebuild. If you customized the server, &lt;code&gt;rasengan/server&lt;/code&gt; no longer exports Express, and &lt;code&gt;createRequestHandler&lt;/code&gt; now returns a standard &lt;code&gt;(ctx) =&amp;gt; Promise&amp;lt;Response&amp;gt;&lt;/code&gt; handler. The &lt;a href="https://www.rasengan.dev/docs/getting-started/upgrading" rel="noopener noreferrer"&gt;upgrade guide&lt;/a&gt; walks through it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-rasengan@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://www.rasengan.dev" rel="noopener noreferrer"&gt;https://www.rasengan.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/rasengan-dev/rasenganjs" rel="noopener noreferrer"&gt;https://github.com/rasengan-dev/rasenganjs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Full announcement: &lt;a href="https://www.rasengan.dev/blog/rasengan-2-stable" rel="noopener noreferrer"&gt;https://www.rasengan.dev/blog/rasengan-2-stable&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to everyone who tested the beta, filed issues and sent feedback. If you build something with it, I'd love to hear about it in the comments.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Introducing Hiraiship: deploy your apps to the edge in one command</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Mon, 19 Oct 2026 14:21:33 +0000</pubDate>
      <link>https://dev.to/dilane3/introducing-hiraiship-deploy-your-apps-to-the-edge-in-one-command-224e</link>
      <guid>https://dev.to/dilane3/introducing-hiraiship-deploy-your-apps-to-the-edge-in-one-command-224e</guid>
      <description>&lt;p&gt;Building an application is one thing. Getting it into production is another.&lt;/p&gt;

&lt;p&gt;We spend hours on the code, then lose an evening on build configs, DNS records, environment variables and SSL. I think shipping should feel as good as building. So I've been working on &lt;strong&gt;Hiraiship&lt;/strong&gt;, a deployment and hosting platform that takes your app from your machine to the edge.&lt;/p&gt;

&lt;p&gt;Today I'm sharing it for the first time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like
&lt;/h2&gt;

&lt;p&gt;From your project directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx hiraiship login
npx hiraiship deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;login&lt;/code&gt; opens your browser to approve the device. There's no password, just a code sent by email. &lt;code&gt;deploy&lt;/code&gt; packs your project, skipping &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;.git&lt;/code&gt;, &lt;code&gt;.env*&lt;/code&gt; and anything in your &lt;code&gt;.gitignore&lt;/code&gt;. Then it builds the project on Hiraiship's machines and streams the build logs to your terminal. When it finishes, your app is live on its own subdomain.&lt;/p&gt;

&lt;p&gt;You can also connect a GitHub repository instead. Every push to a tracked branch deploys that branch's environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frameworks
&lt;/h2&gt;

&lt;p&gt;Hiraiship detects the framework and builds it with no config:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Vite, Astro, React Router, TanStack Start, Rasengan.js, and Next.js (static export, through vinext)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Hono and Futon, bundled into a single edge Worker&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;p&gt;Every app runs on Cloudflare's network, using Workers for Platforms. There's no single region to pick and no container to warm up: requests are served close to your users.&lt;/p&gt;

&lt;p&gt;Each build runs in its own isolated container. Build outputs are content-addressed, so a redeploy only uploads the files that changed. A rollback points the routing back at a previous build, without rebuilding anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Environments per project (production, staging, one per branch…)&lt;/li&gt;
&lt;li&gt;Custom domains with automatic SSL, plus redirects between domains&lt;/li&gt;
&lt;li&gt;Environment variables, with secrets encrypted per environment and build-time vs runtime targets&lt;/li&gt;
&lt;li&gt;Live build logs and one-click rollback&lt;/li&gt;
&lt;li&gt;Teams with roles, and API keys for CI&lt;/li&gt;
&lt;li&gt;A public REST API (&lt;a href="https://docs.hiraiship.com" rel="noopener noreferrer"&gt;docs.hiraiship.com&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Billing you can predict
&lt;/h2&gt;

&lt;p&gt;Surprise invoices after a traffic spike are one of the most common complaints about hosting platforms. On Hiraiship:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Free plan never bills you.&lt;/strong&gt; Every quota is a hard limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paid plans accept a spending cap&lt;/strong&gt;, including a cap of zero, which turns every included amount into a hard limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Projects are unlimited.&lt;/strong&gt; You pay for the environments that are actually live, and idle ones can be paused.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it doesn't do (yet)
&lt;/h2&gt;

&lt;p&gt;I'd rather say it up front: server-side rendering isn't supported yet. A Next.js, Astro or React Router app that needs a server at request time is refused at build time. It isn't silently deployed half-working. Static sites, SPAs and Hono/Futon APIs are what work today. SSR is next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it and tell me what breaks
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;a href="https://hiraiship.com" rel="noopener noreferrer"&gt;hiraiship.com&lt;/a&gt; · 📚 &lt;a href="https://docs.hiraiship.com" rel="noopener noreferrer"&gt;docs.hiraiship.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is just the beginning, and early feedback shapes what I build next. So:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What matters most to you when choosing where to deploy your apps?&lt;/strong&gt; Price, speed, framework support, something else? Tell me in the comments.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>devops</category>
      <category>cloudflare</category>
    </item>
    <item>
      <title>Rasengan v1.2.2 - Error overlay, LLM support &amp; agent skills</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Wed, 03 Jun 2026 09:09:36 +0000</pubDate>
      <link>https://dev.to/dilane3/rasengan-v122-error-overlay-llm-support-agent-skills-kb0</link>
      <guid>https://dev.to/dilane3/rasengan-v122-error-overlay-llm-support-agent-skills-kb0</guid>
      <description>&lt;p&gt;Rasengan v1.2.2 is now available on &lt;a href="https://www.npmjs.com/package/rasengan" rel="noopener noreferrer"&gt;npm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are excited to announce the release of Rasengan.js v1.2.2 🎉&lt;/p&gt;

&lt;p&gt;This version focuses on developer experience and AI-assisted development, introducing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error Overlay System&lt;/li&gt;
&lt;li&gt;LLM Support Files&lt;/li&gt;
&lt;li&gt;Agent Skills for AI-Powered Development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read more here: &lt;a href="https://www.rasengan.dev/blog/rasengan-v1-2-2" rel="noopener noreferrer"&gt;https://www.rasengan.dev/blog/rasengan-v1-2-2&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>javascript</category>
      <category>llm</category>
    </item>
    <item>
      <title>🌀 Introducing Rasengan UI Kit — 100+ React Components powered by Shadcn UI</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Thu, 13 Nov 2025 06:00:00 +0000</pubDate>
      <link>https://dev.to/dilane3/introducing-rasengan-ui-kit-100-react-components-powered-by-shadcn-ui-4390</link>
      <guid>https://dev.to/dilane3/introducing-rasengan-ui-kit-100-react-components-powered-by-shadcn-ui-4390</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;/p&gt;

&lt;p&gt;I'm excited to introduce the &lt;strong&gt;Rasengan UI Kit&lt;/strong&gt;, a growing collection of 100+ beautifully crafted React components — all powered by the amazing &lt;a href="https://ui.shadcn.com" rel="noopener noreferrer"&gt;Shadcn UI&lt;/a&gt;&lt;br&gt;
 library.&lt;/p&gt;

&lt;p&gt;Whether you’re building a &lt;strong&gt;marketing website&lt;/strong&gt; or a &lt;strong&gt;full-scale application&lt;/strong&gt;, this kit gives you everything you need to move fast while keeping a clean, modern design.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ What’s inside?
&lt;/h2&gt;

&lt;p&gt;🧭 &lt;strong&gt;Marketing Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Perfect for your landing pages and startup websites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hero sections&lt;/li&gt;
&lt;li&gt;Teams&lt;/li&gt;
&lt;li&gt;Pricing tables&lt;/li&gt;
&lt;li&gt;Contact sections&lt;/li&gt;
&lt;li&gt;Testimonials&lt;/li&gt;
&lt;li&gt;Call-to-action blocks&lt;/li&gt;
&lt;li&gt;And much more...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧩 &lt;strong&gt;Application UI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Crafted for dashboards and internal tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cards&lt;/li&gt;
&lt;li&gt;Calendars&lt;/li&gt;
&lt;li&gt;Toolbars&lt;/li&gt;
&lt;li&gt;Data grids&lt;/li&gt;
&lt;li&gt;Lists&lt;/li&gt;
&lt;li&gt;Modals and dialogs&lt;/li&gt;
&lt;li&gt;And much more...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each component is well crafted meeting — simplicity, flexibility, and performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Why Rasengan UI Kit?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Built with &lt;strong&gt;React + TailwindCSS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🎨 Based on &lt;strong&gt;Shadcn UI&lt;/strong&gt;, giving you theme consistency and customizability&lt;/li&gt;
&lt;li&gt;🧠 Designed to work seamlessly with Rasengan.js, but fully compatible with any React project&lt;/li&gt;
&lt;li&gt;⚙️ Easy to customize — every component is composable and theme-friendly&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌐 Take a Tour
&lt;/h2&gt;

&lt;p&gt;Explore all components live at:&lt;br&gt;
👉 &lt;a href="https://ui-kit.rasengan.dev" rel="noopener noreferrer"&gt;https://ui-kit.rasengan.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>tooling</category>
      <category>ui</category>
      <category>react</category>
    </item>
    <item>
      <title>🚀 Rasengan v1 Stable is out! 🌀</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sun, 27 Apr 2025 14:12:22 +0000</pubDate>
      <link>https://dev.to/dilane3/rasengan-v1-stable-is-out-gc0</link>
      <guid>https://dev.to/dilane3/rasengan-v1-stable-is-out-gc0</guid>
      <description>&lt;p&gt;I'm excited to announce you the release of the v1 stable version of Rasengan.js the modern and performant React Framework whose I'm the author 🔥 &lt;/p&gt;

&lt;p&gt;What's new in v1:&lt;br&gt;
✨ SSR &amp;amp; CSR modes&lt;br&gt;
⚡ Updated to React 19, Vite 6 and React Router 7&lt;br&gt;
🎨 TailwindCSS v4 support&lt;br&gt;
📄 Full MDX integration&lt;br&gt;
And more...&lt;/p&gt;

&lt;p&gt;Dive into all the details 👉 &lt;a href="https://rasengan.dev/blog/rasengan-v1-stable" rel="noopener noreferrer"&gt;Rasengan v1 - Blog Post&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;That's why wre are NINJA 🥷&lt;/p&gt;

</description>
      <category>react</category>
      <category>web</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🚀 Introducing the Rasengan.js CLI – Create Your React Project in Seconds!</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Tue, 04 Mar 2025 15:30:38 +0000</pubDate>
      <link>https://dev.to/dilane3/introducing-the-rasenganjs-cli-create-your-react-project-in-seconds-in3</link>
      <guid>https://dev.to/dilane3/introducing-the-rasenganjs-cli-create-your-react-project-in-seconds-in3</guid>
      <description>&lt;p&gt;Hey everyone! 👋  &lt;/p&gt;

&lt;p&gt;I'm excited to introduce the &lt;strong&gt;new Rasengan.js CLI&lt;/strong&gt;, making it easier than ever to &lt;strong&gt;bootstrap a new React project&lt;/strong&gt; with &lt;strong&gt;Rasengan.js&lt;/strong&gt;! 🌀  &lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 What is Rasengan.js?
&lt;/h2&gt;

&lt;p&gt;Rasengan.js is a &lt;strong&gt;React framework&lt;/strong&gt; designed for &lt;strong&gt;performance, flexibility, and developer experience&lt;/strong&gt;. It simplifies modern web development while giving you full control over your stack.  &lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Getting Started with the CLI
&lt;/h2&gt;

&lt;p&gt;You can create a new Rasengan.js project &lt;strong&gt;in just one command&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-rasengan@1.2.0-beta.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🛠️ Setup Steps
&lt;/h3&gt;

&lt;p&gt;Once you run the command, the CLI will guide you through these steps:  &lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;Name your project&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
2️⃣ &lt;strong&gt;Choose your language&lt;/strong&gt;: TypeScript or JavaScript&lt;br&gt;&lt;br&gt;
3️⃣ &lt;strong&gt;Select a template&lt;/strong&gt;: Blank or Tailwind&lt;br&gt;&lt;br&gt;
4️⃣ &lt;em&gt;(If you choose Tailwind)&lt;/em&gt; &lt;strong&gt;Pick a version&lt;/strong&gt;: Tailwind v3 or Tailwind v4  &lt;/p&gt;

&lt;p&gt;After setup, just run:&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="nb"&gt;cd &lt;/span&gt;my-project  
pnpm i
pnpm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And boom! 🎉 Your Rasengan.js app is live!  &lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 Why Use the Rasengan.js CLI?
&lt;/h2&gt;

&lt;p&gt;The new CLI is designed for &lt;strong&gt;simplicity and speed&lt;/strong&gt;. It removes all the boilerplate and lets you focus on &lt;strong&gt;building&lt;/strong&gt;. Compared to manually setting up a project, this approach is:  &lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Faster&lt;/strong&gt; – No time wasted on config&lt;br&gt;&lt;br&gt;
💡 &lt;strong&gt;Beginner-friendly&lt;/strong&gt; – Just follow the prompts&lt;br&gt;&lt;br&gt;
🔧 &lt;strong&gt;Customizable&lt;/strong&gt; – Extend it as you need  &lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What’s Next?
&lt;/h2&gt;

&lt;p&gt;Rasengan.js is currently in &lt;strong&gt;BETA&lt;/strong&gt;, but a stable version is coming soon! We're improving the framework, adding features, and refining the CLI.  &lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;Check it out &amp;amp; contribute:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/rasengan-dev/rasenganjs" rel="noopener noreferrer"&gt;github.com/rasengan-dev/rasenganjs&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📖 &lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://rasengan.dev" rel="noopener noreferrer"&gt;rasengan.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🎥 &lt;strong&gt;Demo video&lt;/strong&gt;: &lt;a href="https://www.youtube.com/watch?v=EU2rPwUiAxU" rel="noopener noreferrer"&gt;youtu.be/EU2rPwUiAxU&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;If you try it out, let me know your feedback! 🚀  &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>MagPies - An Image sharing app built using Rasengan.js and Netlify CDN Image.</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sun, 12 May 2024 20:54:29 +0000</pubDate>
      <link>https://dev.to/dilane3/magpies-an-image-sharing-app-built-using-rasenganjs-and-netlify-cdn-image-2inc</link>
      <guid>https://dev.to/dilane3/magpies-an-image-sharing-app-built-using-rasenganjs-and-netlify-cdn-image-2inc</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/netlify"&gt;Netlify Dynamic Site Challenge&lt;/a&gt;: Visual Feast.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I develop a web application similar to &lt;a href="https://pinterest.fr" rel="noopener noreferrer"&gt;Pinterest&lt;/a&gt; or &lt;a href="https://www.pexels.com" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; that I decided to called &lt;strong&gt;MagPies&lt;/strong&gt;. In this application everyone can explore or browse images, download them in different format &lt;em&gt;(PNG, JPG, WEBP, AVIF)&lt;/em&gt;, and only the authenticated user can share their photos into the platform. 😍 &lt;/p&gt;

&lt;p&gt;Based on the challenge requirements, I used the &lt;strong&gt;Netlify CDN Image&lt;/strong&gt; in order to apply some operations on images like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resizing the image (width and height)&lt;/li&gt;
&lt;li&gt;Changing the quality&lt;/li&gt;
&lt;li&gt;Changing the image fit value (cover, fill and contain)&lt;/li&gt;
&lt;li&gt;Downloading into different format of image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these features are nicely implemented using &lt;a href="https://rasengan.dev" rel="noopener noreferrer"&gt;Rasengan.js&lt;/a&gt; my own REACT FRAMEWORK 😁😁 and Tailwind CSS for styling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Link of the app: &lt;a href="https://magpies.dilane3.com" rel="noopener noreferrer"&gt;magpies.dilane3.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo video: &lt;a href="https://drive.google.com/file/d/1OuzTZ1yXiL9SVk70AGba5V75Pq0nnyYV/view?usp=sharing" rel="noopener noreferrer"&gt;Video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some screenshots:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F2wajx7bk2rqe90bvgmvb.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%2F2wajx7bk2rqe90bvgmvb.png" alt="Home section 1" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F7qqnehprvuyymfi5vqx9.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%2F7qqnehprvuyymfi5vqx9.png" alt="Slider of images" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gallery &lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fm4f1slqaziukmg23argz.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%2Fm4f1slqaziukmg23argz.png" alt="Gallery of images" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F000072lwm64kq69qsmzs.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%2F000072lwm64kq69qsmzs.png" alt="Search bar" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create photo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fzehfqupgsrtvhvumtlk8.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%2Fzehfqupgsrtvhvumtlk8.png" alt="Create photo form" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Profile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fdlzqt1a0c1vt336hn4d3.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%2Fdlzqt1a0c1vt336hn4d3.png" alt="Profile section" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image Preview and transformation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Fcnunh6svns93tvv3sjbh.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%2Fcnunh6svns93tvv3sjbh.png" alt="Image preview and transformation" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Platform Primitives
&lt;/h2&gt;

&lt;p&gt;To use the Image CDN, I decided to create another simple app using just and html file and hosted it on netlify. As all the websites hosted on netlify benefit from the &lt;strong&gt;/.netlify/images&lt;/strong&gt; edge function to apply all the available transformation on images, I decided to use the website as an API.&lt;/p&gt;

&lt;p&gt;Here is the code snippet that I write to integrate the Image CDN into my application.&lt;/p&gt;

&lt;p&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%2Fwl44162qvtp39c78uwam.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%2Fwl44162qvtp39c78uwam.png" alt="Code snippet of the CDN Image" width="800" height="1038"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started working on the Netlify Blobs in order to save for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recent search query of users&lt;/li&gt;
&lt;li&gt;Photo saved by the user&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I didn't have time to finish it, that because I was dealing during the 4 first days into the integration of my React framework and Netlify in order to host any web application built with Rasengan.js to Netlify... And after 4 days, I find a way by creating a serverless function that respond to any incoming request, this because Rasengan.js is based on a SSR logic.&lt;/p&gt;

&lt;p&gt;I'm so glad to having participated to this challenge, it was very nice. I got an opportunity to enhance my React Framework to support Netlify, I learn about how to integrate Netlify Image CDN into apps... sooo good. Thanks a lot.&lt;/p&gt;

&lt;p&gt;I hope, what I did will impress you.&lt;/p&gt;

</description>
      <category>netlifychallenge</category>
      <category>devchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Rasengan.js 1.0.0 Beta 🚀</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sun, 28 Apr 2024 13:33:39 +0000</pubDate>
      <link>https://dev.to/dilane3/rasenganjs-100-beta-4hkc</link>
      <guid>https://dev.to/dilane3/rasenganjs-100-beta-4hkc</guid>
      <description>&lt;p&gt;Hello Developers 👋 My name is Dilane Kombou, I'm a JavaScript developer from Cameroon.&lt;/p&gt;

&lt;p&gt;I'm very excited to announce you that I released the first version of my own React Framework that I called &lt;strong&gt;&lt;code&gt;Rasengan.js&lt;/code&gt;&lt;/strong&gt;  🚀&lt;/p&gt;

&lt;p&gt;Based on &lt;code&gt;React&lt;/code&gt; and &lt;code&gt;Vite&lt;/code&gt;, it provides to you a great experience for developing high-quality web application.&lt;/p&gt;

&lt;p&gt;It supports a major list of modern features of the web that you can have access of the Blog post, published on the official website of Rasengan.js.&lt;/p&gt;

&lt;p&gt;The project if open source, so you can check the code and even contribute to it without problem 😊&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Blog Post: &lt;a href="https://rasengan.dev/blog/rasengan-1-beta" rel="noopener noreferrer"&gt;Rasengan 1.0.0 Beta&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation: &lt;a href="https://rasengan.dev/docs" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/rasengan-dev/rasenganjs" rel="noopener noreferrer"&gt;Access the repository on Github&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Community
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Follow Rasengan.js on &lt;a href="https://twitter.com/rasenganjs" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Github: Join the &lt;a href="https://github.com/rasengan-dev/rasenganjs/discussions" rel="noopener noreferrer"&gt;Github Discussions&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please check it out, leave me stars on Github and provide me feedback on the Github discussions to better enhance the framework.&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;

</description>
      <category>react</category>
      <category>vite</category>
      <category>framework</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Animated Sidebar made using Rasengan and Tailwind</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sat, 20 Jan 2024 15:02:04 +0000</pubDate>
      <link>https://dev.to/dilane3/animated-sidebar-made-using-rasengan-and-tailwind-3jlc</link>
      <guid>https://dev.to/dilane3/animated-sidebar-made-using-rasengan-and-tailwind-3jlc</guid>
      <description>&lt;h2&gt;
  
  
  What I did
&lt;/h2&gt;

&lt;p&gt;I did an animated Sidebar using my own REACT FRAMEWORK (on which I'm working actually) and Tailwind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&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%2F44dhmkm5h6tjggdv7sas.gif" 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%2F44dhmkm5h6tjggdv7sas.gif" alt="Demo video of the animation" width="600" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;GitHub - &lt;a href="https://github.com/dilane3/animated-sidebar-rasengan.git" rel="noopener noreferrer"&gt;https://github.com/dilane3/animated-sidebar-rasengan.git&lt;/a&gt;&lt;br&gt;
Live Demo - &lt;a href="https://animated-sidebar-sigma.vercel.app/" rel="noopener noreferrer"&gt;https://animated-sidebar-sigma.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>I created a shapes drawing app using React called ShapX.</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Sun, 19 Nov 2023 04:32:47 +0000</pubDate>
      <link>https://dev.to/dilane3/i-created-a-shapes-drawing-app-using-react-called-shapx-4amo</link>
      <guid>https://dev.to/dilane3/i-created-a-shapes-drawing-app-using-react-called-shapx-4amo</guid>
      <description>&lt;p&gt;Hello everyone 👋🏼, I'm coming here to present to you an application that I created using &lt;strong&gt;React&lt;/strong&gt; that I called &lt;strong&gt;ShapX&lt;/strong&gt; which aims to provide you the possibility to draw shapes like in drawing apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's ShapX ?
&lt;/h2&gt;

&lt;p&gt;well, &lt;strong&gt;ShapX&lt;/strong&gt; is a shapes drawing app that you can use to create forms like: squares, rectangles, circles, ellipses, diamonds and hexagons...&lt;/p&gt;

&lt;p&gt;After having drew a shape, it directly calculates some geometric properties like perimeter and area of your shape.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the core features ?
&lt;/h2&gt;

&lt;p&gt;You will have the possibility to test it in real live &lt;strong&gt;(only on your computer)&lt;/strong&gt;, but globally, &lt;strong&gt;ShapX&lt;/strong&gt; comes with the following features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating  new drawing file&lt;/li&gt;
&lt;li&gt;Renaming the file&lt;/li&gt;
&lt;li&gt;Adding shapes for any available types&lt;/li&gt;
&lt;li&gt;Changing parameters of the shapes (position, width, height, radius)&lt;/li&gt;
&lt;li&gt;Changing color of the shape&lt;/li&gt;
&lt;li&gt;Removing and duplicating shapes&lt;/li&gt;
&lt;li&gt;Export the file into PNG, JPG and a custom file with &lt;strong&gt;.shapx&lt;/strong&gt; extension&lt;/li&gt;
&lt;li&gt;Load a SHAPX file &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the fundamentals 🔥&lt;/p&gt;

&lt;p&gt;I did the whole app in just 5 days 😅😅&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's see it in images
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Welcome screen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F39peca0cvn92zv41cp3n.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%2F39peca0cvn92zv41cp3n.png" alt="Shapx - Welcome screen" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Empty drawing screen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F0wtoatlvlfldfj79jib7.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%2F0wtoatlvlfldfj79jib7.png" alt="Shapx - Empty drawing file" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding one shape&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2Femaiqmurh8ihjo1gnu9l.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%2Femaiqmurh8ihjo1gnu9l.png" alt="Shapx - Add shapes" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Changing color of the shape&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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%2F7n00pbg0o6hk6uclyeqf.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%2F7n00pbg0o6hk6uclyeqf.png" alt="Shapx - Change color" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More
&lt;/h2&gt;

&lt;p&gt;For managing state, I decided to use &lt;strong&gt;GX&lt;/strong&gt;, a lightweight and powerful tool that helps a lot in state management.&lt;/p&gt;

&lt;p&gt;It's my own tool that I created 😁😁, and I use it in all my React, Nextjs and React Native applications.&lt;/p&gt;

&lt;p&gt;Check the documentation of GX: &lt;a href="https://gx.dilane3.com" rel="noopener noreferrer"&gt;https://gx.dilane3.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app is available to public, and you have the possibility to test and leave comments right here, I will really appreciated it.&lt;/p&gt;

&lt;p&gt;Link of the app: &lt;a href="https://shapx.dilane3.com" rel="noopener noreferrer"&gt;https://shapx.dilane3.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You also have to possibility to access the code on GITHUB, please leaves stars ⭐, it helps a lot.&lt;/p&gt;

&lt;p&gt;GITHUB: &lt;a href="https://github.com/dilane3/shapx-client" rel="noopener noreferrer"&gt;https://github.com/dilane3/shapx-client&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks for reading
&lt;/h2&gt;

&lt;p&gt;Thanks for having read my post 😉&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I published my First App on Google PlayStore 😍😍✨</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Mon, 31 Jul 2023 13:43:34 +0000</pubDate>
      <link>https://dev.to/dilane3/i-publishee-my-first-app-on-google-playstore-3g5i</link>
      <guid>https://dev.to/dilane3/i-publishee-my-first-app-on-google-playstore-3g5i</guid>
      <description>&lt;h2&gt;
  
  
  What I built?
&lt;/h2&gt;

&lt;p&gt;Hello Devs 😁😁✨&lt;/p&gt;

&lt;p&gt;This is an excited day 😊&lt;/p&gt;

&lt;p&gt;I'm excited to shared with you what makes me happy today. &lt;/p&gt;

&lt;p&gt;I published my &lt;strong&gt;First Mobile App&lt;/strong&gt; on Google Play store 😍&lt;/p&gt;

&lt;p&gt;I decided to call it &lt;strong&gt;Dask&lt;/strong&gt;, and it's a mobile application that will help you manage your tasks and organized them into projects for easy manipulation ☺️.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works really?
&lt;/h2&gt;

&lt;p&gt;There is two mode, the first one is that you can use this app for a personal use case. For example you want to realize a simple application with some features, you can create a personal project in the app and add features you want to implement as tasks 😁😁 simple.&lt;/p&gt;

&lt;p&gt;The second one is that, if for example you have to work with some one else and assign tasks to a specific team member, you have to create a shared project instead 😁, and inside you could be able to invite people to collaborate 🙂✨&lt;/p&gt;

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

&lt;p&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%2Fh18tpi1z6aajs45wvuky.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%2Fh18tpi1z6aajs45wvuky.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F5mio9i4235p9qujwr1fq.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%2F5mio9i4235p9qujwr1fq.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fqbcwnxszeaxwyo92mut8.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%2Fqbcwnxszeaxwyo92mut8.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Frdk1ysalkm1fnou7w3k8.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%2Frdk1ysalkm1fnou7w3k8.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fxse77luvud6d7evkpn4j.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%2Fxse77luvud6d7evkpn4j.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which tools I used ?
&lt;/h2&gt;

&lt;p&gt;Let me show you what I used to develop it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React Native (mobile app)&lt;/li&gt;
&lt;li&gt;Firebase (Backend, especially used to store shared projects that you will ahve with your team)&lt;/li&gt;
&lt;li&gt;Nodejs (Express &amp;amp; Socket.io) for real time&lt;/li&gt;
&lt;li&gt;Gx for state management (it's my own State Management Library 😁) check the documentation here: &lt;a href="https://gx.dilane3.com" rel="noopener noreferrer"&gt;https://gx.dilane3.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all&lt;/p&gt;

&lt;p&gt;If you want to test 😁&lt;/p&gt;

&lt;p&gt;Just follow the link below, and please leave feedbacks 🙏🙏 I will really appreciate it.&lt;/p&gt;

&lt;p&gt;The link of the application is down here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.dilane3.dask" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.dilane3.dask&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading 😌 &lt;/p&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>javascript</category>
      <category>firebase</category>
    </item>
    <item>
      <title>Robust Form - A simple and easy to use Form Builder application like Google Form.</title>
      <dc:creator>Dilane3</dc:creator>
      <pubDate>Thu, 20 Jul 2023 19:33:51 +0000</pubDate>
      <link>https://dev.to/dilane3/robust-form-a-simple-and-easy-to-use-form-builder-application-like-google-form-20eb</link>
      <guid>https://dev.to/dilane3/robust-form-a-simple-and-easy-to-use-form-builder-application-like-google-form-20eb</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I decided to build a form builder web application by using &lt;a href="https://github.com/refinedev/refine" rel="noopener noreferrer"&gt;Refine&lt;/a&gt; as asked and combined to &lt;a href="https://nextjs.org/docs" rel="noopener noreferrer"&gt;NextJs&lt;/a&gt; and &lt;a href="https://mui.com/material-ui/getting-started/overview/" rel="noopener noreferrer"&gt;Material UI&lt;/a&gt; to realize the Frontend app and &lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; for the the Backend side and I decided to call it &lt;strong&gt;Robust Form&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;App built using Refine + Supabase and MUI.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://rf.dilane3.com" rel="noopener noreferrer"&gt;https://rf.dilane3.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Large screen:
&lt;/h4&gt;

&lt;p&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%2Fxhpnmnb7hvf9kr0jak06.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%2Fxhpnmnb7hvf9kr0jak06.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fykwz8hz9dr9w2asubliz.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%2Fykwz8hz9dr9w2asubliz.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F4tfg0bi6mask602vsrpc.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%2F4tfg0bi6mask602vsrpc.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fpzkloaq13wjnd9cbhwwz.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%2Fpzkloaq13wjnd9cbhwwz.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fxpi7kn7an21fv3l89a0h.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%2Fxpi7kn7an21fv3l89a0h.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fq45ecyq2dctruu0l18y0.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%2Fq45ecyq2dctruu0l18y0.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Ffsb0m3f69g1py5o68hjj.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%2Ffsb0m3f69g1py5o68hjj.png" alt="Image description" width="800" height="792"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Mobile View:
&lt;/h4&gt;

&lt;p&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%2Fsvz20epnvf245oufd20d.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%2Fsvz20epnvf245oufd20d.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fsjmnhweegpruh1ercism.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%2Fsjmnhweegpruh1ercism.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F0lt4o3gndp89wo3dgpwq.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%2F0lt4o3gndp89wo3dgpwq.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fi3brhu3837sawiv62pmj.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%2Fi3brhu3837sawiv62pmj.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fwd6yw1q0huu9i0du5oh9.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%2Fwd6yw1q0huu9i0du5oh9.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2F1m6qrd58bitr8aygylzh.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%2F1m6qrd58bitr8aygylzh.png" alt="Image description" width="720" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Robust Form&lt;/strong&gt; is actually a form builder as said above. So, the application will be used to generate forms easily and share it to everyone in order to collect data for scientific researches for example, or other use cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/dilane3/robustform" rel="noopener noreferrer"&gt;https://github.com/dilane3/robustform&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;MIT Licence&lt;/p&gt;

&lt;h2&gt;
  
  
  Background (What made you decide to build this particular app? What inspired you?)
&lt;/h2&gt;

&lt;p&gt;I was very impressed by how Google Form works, and I didn't really know how to start building this kind of application. That's why I took this possibility to create my own form builder and share the source code in an open source Licence to help others developers to know how to start, how to implement this kind of application.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it (How did you utilize refine? Did you learn something new along the way? Pick up a new skill?)
&lt;/h3&gt;

&lt;p&gt;Oh yes, I learnt alot of new things.&lt;/p&gt;

&lt;p&gt;I want to mentionne that, I didn't know what Refine and Supabase were before this Hackaton, so thank you so much for this opportunity. I read the documentation of refine, of Supabase because it was new for me. It was a great experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;Demo of the application &lt;a href="https://youtu.be/3PKOBCIBX6o" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example of form generated &lt;a href="https://rf.dilane3.com/forms/view/33?key=dbfee7c1-36c6-475c-b7ed-69e38e8a2814" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>refinehackathon</category>
      <category>supabase</category>
      <category>nextjs</category>
      <category>mui</category>
    </item>
  </channel>
</rss>
