<?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: Ionut-Cristian Florescu</title>
    <description>The latest articles on DEV Community by Ionut-Cristian Florescu (@icflorescu).</description>
    <link>https://dev.to/icflorescu</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%2F130686%2F5805e201-0573-4a08-bcd3-d78742a0c035.jpeg</url>
      <title>DEV Community: Ionut-Cristian Florescu</title>
      <link>https://dev.to/icflorescu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/icflorescu"/>
    <language>en</language>
    <item>
      <title>Looking forward to adding Algolia's DOCSEARCH to Mantine DataTable</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Thu, 15 Jun 2023 14:44:00 +0000</pubDate>
      <link>https://dev.to/icflorescu/looking-forward-to-adding-algolias-docsearch-to-mantine-datatable-52j3</link>
      <guid>https://dev.to/icflorescu/looking-forward-to-adding-algolias-docsearch-to-mantine-datatable-52j3</guid>
      <description>&lt;p&gt;It's been almost 10 months since my first commit to the &lt;a href="https://icflorescu.github.io/mantine-datatable/"&gt;Mantine DataTable&lt;/a&gt; project. Back then, I had no idea it was to become one of the most used data table components in the Mantine UI community.&lt;/p&gt;

&lt;p&gt;I discovered &lt;a href="https://mantine.dev/"&gt;Mantine&lt;/a&gt; after a few years of working with various React UI libraries such as MUI, Blueprint.js and Ant Design, and I immediately fell in love with it. But I was missing the rich data-table functionality, so instead of re-creating it in each project, I thought I should publish it as an open-source package so other people in the community would benefit from it.&lt;/p&gt;

&lt;p&gt;The documentation website is probably one of the things that led to its adoption by the community. Since the React component is exclusively built with Mantine primitives and doesn't rely on heavy external dependencies such as React Table, I thought I should design and build its website to look and function similarly with Mantine's docs, so users would feel right at home when browsing it and learning how to use the component by studying the interactive examples.&lt;/p&gt;

&lt;p&gt;I am now faced with a challenge, though. I initially envisioned the docs as an example-led journey that will explain and showcase the features, so I ended up having quite a lot of content - around 30 pages.&lt;/p&gt;

&lt;p&gt;While this is still extraordinary and mush appreciated by both newcomers and veteran users alike, we're kind of missing a smart search piece of functionality.&lt;/p&gt;

&lt;p&gt;That's why I recently applied for Algolia's DOCSEARCH - they are kind enough to offer their powerful solution for free to open-source projects.&lt;/p&gt;

&lt;p&gt;The application process is rumored to take around 2 weeks, but hopefully everything will be fine and my project will be approved soon.&lt;/p&gt;

&lt;p&gt;Thank you all for using &lt;a href="https://icflorescu.github.io/mantine-datatable/"&gt;Mantine DataTable&lt;/a&gt; and starring the &lt;a href="https://github.com/icflorescu/mantine-datatable"&gt;GitHub repo&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>react</category>
      <category>frontend</category>
      <category>component</category>
      <category>table</category>
    </item>
    <item>
      <title>PocketBaseUML</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Fri, 17 Mar 2023 21:40:00 +0000</pubDate>
      <link>https://dev.to/icflorescu/pocketbaseuml-2ci5</link>
      <guid>https://dev.to/icflorescu/pocketbaseuml-2ci5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"The PocketBase visual perspective"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you think PocketBase is one of the coolest open-source back-end solutions out there, you might want to have a look at &lt;a href="https://pocketbase-uml.github.io"&gt;PocketBaseUML&lt;/a&gt; — a free, open-source UML diagram generator/viewer that enables you to visualize your database architecture in a graphical form, easy to parse and understand in a quick glance.&lt;/p&gt;

&lt;p&gt;PocketBase already comes with a fantastic UI (better than Supabase or Firebase, IMO), but I've always missed the ability to actually &lt;strong&gt;SEE&lt;/strong&gt; the the collections and the references between them.&lt;/p&gt;

&lt;p&gt;You can use the app online at &lt;a href="https://pocketbase-uml.github.io/"&gt;pocketbase-uml.github.io&lt;/a&gt; to connect to any &lt;strong&gt;HTTPS&lt;/strong&gt; PocketBase server, or you can run it as an &lt;code&gt;npm&lt;/code&gt; package on your machine if you want to connect to a local PocketBase instance through &lt;strong&gt;HTTP&lt;/strong&gt;, like so:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If you don't want to connect the app directly to a server, you can simply import a &lt;code&gt;collections.json&lt;/code&gt; file exported from ypur PocketBase server to view it as an UML diagram.&lt;/p&gt;

&lt;p&gt;The project is still in its early stage, there are new potential features to be added and I'll do my best to keep it in sync with new upcoming PocketBase features.&lt;/p&gt;

&lt;p&gt;So, go on, have a look at it, give it a whirl and let me know in the comments if you find it interesting!&lt;/p&gt;

&lt;p&gt;Also, if you find it interesting and/or you'd like to see new features added to it, don't hesitate to &lt;a href="https://github.com/sponsors/icflorescu"&gt;sponsor my work&lt;/a&gt; on GitHub or drop me a line to hire my services :-)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pocketbase-uml.github.io"&gt;PocketBaseUML&lt;/a&gt; is not my only open-source project; I'm also the author of &lt;a href="https://icflorescu.github.io/mantine-datatable/"&gt;Mantine DataTable&lt;/a&gt;, &lt;a href="https://icflorescu.github.io/trpc-sveltekit/"&gt;tRPC-SvelteKit&lt;/a&gt;, &lt;a href="https://github.com/icflorescu/expose-wsl"&gt;Expose-WSL&lt;/a&gt; and a few others. Dedicating time to build and maintain high-quality open-source projects requires a lot of time and energy, and your generosity would help a lot.&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read and for your support!&lt;/p&gt;

</description>
      <category>pocketbase</category>
      <category>uml</category>
      <category>diagrams</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Expose-WSL</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Tue, 13 Dec 2022 17:44:18 +0000</pubDate>
      <link>https://dev.to/icflorescu/expose-wsl-2o66</link>
      <guid>https://dev.to/icflorescu/expose-wsl-2o66</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Probably the simplest way to expose apps running on WSL to local network devices&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No installation required. &lt;br&gt;
Simply run this before starting your apps:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why I built it?
&lt;/h2&gt;

&lt;p&gt;WSL provides a great environment for web developers working on Windows.&lt;br&gt;&lt;br&gt;
However, it's not always easy to access the applications running in WSL from the local network.&lt;br&gt;&lt;br&gt;
Whether you're working on a web app, a React-Native application, REST API, or have a database residing in a Docker container, you'll need to access it from a real mobile phone or simply from a different device.&lt;br&gt;&lt;br&gt;
While there are ways to achieve this, they are not always easy to implement.&lt;br&gt;&lt;br&gt;
Some of them require tackling with an &lt;a href="https://github.com/microsoft/WSL/issues/4150#issuecomment-1018524753" rel="noopener noreferrer"&gt;NIC Bridge mode&lt;/a&gt; or manually downloading and applying a &lt;a href="https://github.com/CzBiX/WSLHostPatcher" rel="noopener noreferrer"&gt;WSLHostPatcher&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Which are things you probably don't want to deal with when you're just trying to get your work done.&lt;br&gt;&lt;br&gt;
Here's where &lt;a href="https://github.com/icflorescu/expose-wsl" rel="noopener noreferrer"&gt;Expose-WSL&lt;/a&gt; comes into play.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/icflorescu/expose-wsl" rel="noopener noreferrer"&gt;Expose-WSL&lt;/a&gt; uses the excellent &lt;a href="https://github.com/CzBiX/WSLHostPatcher" rel="noopener noreferrer"&gt;WSLHostPatcher&lt;/a&gt; built by &lt;a href="https://github.com/CzBiX" rel="noopener noreferrer"&gt;CzBiX&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
It automates the process of downloading the &lt;strong&gt;WSLHostPatcher&lt;/strong&gt; release, decompressing the binary, running it to patch your WSL, and running a PowerShell script to display the IP address of your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supporting the project
&lt;/h2&gt;

&lt;p&gt;If you find this tool useful, please 🙏&lt;a href="https://github.com/icflorescu/expose-wsl" rel="noopener noreferrer"&gt;star the repo&lt;/a&gt; spread the word, and consider ❤️ &lt;a href="https://github.com/sponsors/icflorescu" rel="noopener noreferrer"&gt;sponsoring my work&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
I'm the author and maintainer of &lt;a href="https://github.com/icflorescu" rel="noopener noreferrer"&gt;several open-source projects&lt;/a&gt; such as &lt;a href="https://icflorescu.github.io/mantine-datatable/" rel="noopener noreferrer"&gt;Mantine DataTable&lt;/a&gt; and &lt;a href="https://github.com/icflorescu/trpc-sveltekit" rel="noopener noreferrer"&gt;tRPC-SvelteKit&lt;/a&gt;, and your support will help me keep them up-to-date and bug-free.&lt;br&gt;
I might also be available for hire. If you need help with your project, feel free to contact me at the email address listed on my GitHub profile.&lt;/p&gt;

</description>
      <category>wsl</category>
      <category>wsl2</category>
      <category>devtools</category>
      <category>workflow</category>
    </item>
    <item>
      <title>tRPC-SvelteKit v3 supports tRPC v10 🎉</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Wed, 30 Nov 2022 15:59:00 +0000</pubDate>
      <link>https://dev.to/icflorescu/trpc-sveltekit-v3-supports-trpc-v10-5cnd</link>
      <guid>https://dev.to/icflorescu/trpc-sveltekit-v3-supports-trpc-v10-5cnd</guid>
      <description>&lt;p&gt;It's been 10 months since I released the initial version of tRPC-SvelteKit, an adapter enabling TypeScript developers to build and consume type-safe APIs in SvelteKit applications.&lt;/p&gt;

&lt;p&gt;I'm happy to announce that v3 works with tRPC v10 and comes with a nice documentation website:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://icflorescu.github.io/trpc-sveltekit/"&gt;icflorescu.github.io/trpc-sveltekit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The documentation website showcases how you could use tRPC procedures in SvelteKit's &lt;a href="https://icflorescu.github.io/trpc-sveltekit/page-data"&gt;page load&lt;/a&gt; / &lt;a href="https://icflorescu.github.io/trpc-sveltekit/page-server-data"&gt;page server load&lt;/a&gt; functions and how you could implement cookie-based &lt;a href="https://icflorescu.github.io/trpc-sveltekit/authentication"&gt;authentication&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Have a look at it and please &lt;a href="https://github.com/icflorescu/trpc-sveltekit"&gt;star the project repo&lt;/a&gt; if you find it useful.&lt;/p&gt;

&lt;p&gt;Also, if you're looking to hire the services of a seasoned front-end/full-stack React and/or Svelte developer, have a look at my &lt;a href="https://github.com/icflorescu"&gt;GitHub profile&lt;/a&gt; and don't hesitate to drop me a line at the email address you'll find in there.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>svelte</category>
      <category>trpc</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Introducing Mantine DataTable</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Thu, 15 Sep 2022 17:04:03 +0000</pubDate>
      <link>https://dev.to/icflorescu/introducing-mantine-datatable-1mnj</link>
      <guid>https://dev.to/icflorescu/introducing-mantine-datatable-1mnj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Mantine DataTable brings datagrid-like functionality to your data-rich user interfaces.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've been working for a while with &lt;a href="https://mantine.dev/"&gt;Mantine.dev&lt;/a&gt; and I believe that, at the moment, it is one of the best React UI frameworks out there. But it was missing a very useful functionality, which many people in the community &lt;a href="https://github.com/mantinedev/mantine/discussions/195"&gt;kept&lt;/a&gt; &lt;a href="https://github.com/mantinedev/mantine/discussions/1057"&gt;asking&lt;/a&gt; about, and that was a &lt;strong&gt;data-table/data-grid component&lt;/strong&gt;. So, being a keen supporter of open-source and the idea that we each should contribute to the development of beautiful, useful projects, I decided to build &lt;a href="https://icflorescu.github.io/mantine-datatable/"&gt;Mantine DataTable&lt;/a&gt; and release it under MIT license.&lt;/p&gt;

&lt;p&gt;The entire codebase is written in TypeScript, component properties are well typed and documented with JSDoc, so you can build type safe applications with confidence. The component supports asynchronous data loading, pagination, multiple rows selection, column sorting, custom cell data rendering, row context menu, global application dark theme, and more.&lt;/p&gt;

&lt;p&gt;Head over to &lt;a href="https://icflorescu.github.io/mantine-datatable/"&gt;the project's website&lt;/a&gt; for a quick start and to learn how to use it and configure it for various scenarios by browsing through the comprehensive list of examples.&lt;/p&gt;

&lt;p&gt;Also, if you find the project useful, it would help a lot if you could star the &lt;a href="https://github.com/icflorescu/mantine-datatable"&gt;GitHub repository&lt;/a&gt;, &lt;a href="http://twitter.com/share?text=Build%20data-rich%20React%20applications%20with%20Mantine%20DataTable&amp;amp;url=https%3A%2F%2Fgithub.com%2Ficflorescu%2Fmantine-datatable&amp;amp;hashtags=mantine%2Cdatatable%2Cdatagrid%2Creact&amp;amp;via=icflorescu"&gt;spread the word&lt;/a&gt; or hire &lt;a href="https://github.com/icflorescu"&gt;my services&lt;/a&gt; to build front-end/full-stack stuff.&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>datatable</category>
      <category>mantine</category>
    </item>
    <item>
      <title>Use tRPC in your SvelteKit applications</title>
      <dc:creator>Ionut-Cristian Florescu</dc:creator>
      <pubDate>Mon, 21 Feb 2022 18:34:06 +0000</pubDate>
      <link>https://dev.to/icflorescu/use-trpc-in-your-sveltekit-applications-2goh</link>
      <guid>https://dev.to/icflorescu/use-trpc-in-your-sveltekit-applications-2goh</guid>
      <description>&lt;p&gt;Hi everyone! I'm mostly a React developer, but lately Svelte managed to really capture my attention. I've been playing around with it for a bit, and was simply astonished by how easy one can achieve things with far fewer lines of code than with React. On the other hand, I was a bit put-off by the (yet-) lack of tools in the ecosystem. One such tool was the ability to write &amp;amp; use typesafe APIs without the friction of REST or GraphQL... Such as we do in React-land with tRPC.&lt;/p&gt;

&lt;p&gt;Hence &lt;a href="https://github.com/icflorescu/trpc-sveltekit" rel="noopener noreferrer"&gt;trpc-sveltekit&lt;/a&gt;, my humble contribution to the Svelte ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Feue482jxif6bm23k88nv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Feue482jxif6bm23k88nv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simply install the package in your SvelteKit application with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i trpc-sveltekit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;...then make sure to add this to &lt;code&gt;src/hooks.ts&lt;/code&gt;:&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/hooks.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;createTRPCHandle&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;trpc-sveltekit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// create your tRPC router...&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createTRPCHandle&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/trpc&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Head over to the GitHub repo to learn how to set it up with Prisma and superjson and see a full example on CodeSandbox.&lt;/p&gt;

&lt;p&gt;Though basic functionality is stable and working, the package is still WIP, so PRs are more than welcome! And please, don't hesitate to star the repo; it helps a lot ;-)&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>trpc</category>
      <category>typescript</category>
      <category>api</category>
    </item>
  </channel>
</rss>
