<?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: Răzvan Stătescu</title>
    <description>The latest articles on DEV Community by Răzvan Stătescu (@razvanstatescu).</description>
    <link>https://dev.to/razvanstatescu</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%2F547619%2Ff8fb6a4e-25dd-445d-8f4d-f2ffbe326f08.png</url>
      <title>DEV Community: Răzvan Stătescu</title>
      <link>https://dev.to/razvanstatescu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/razvanstatescu"/>
    <language>en</language>
    <item>
      <title>Unique Identifiers: UUID vs NanoID</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Mon, 01 Nov 2021 09:46:03 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/unique-identifiers-uuid-vs-nanoid-1amf</link>
      <guid>https://dev.to/razvanstatescu/unique-identifiers-uuid-vs-nanoid-1amf</guid>
      <description>&lt;p&gt;I think every developer used unique identifiers at least once in their life. You can use those to generate a primary key in a database, a unique filename, etc. &lt;/p&gt;

&lt;p&gt;In this article, I'll compare the popular UUID with the rising start NanoID.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1GMtFmck--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img.bloggu.io/ipfs/bafybeiduuvsexkicp34lfewu6vh6blawdhdh2pa2jpqm4faxpej2s2nmyq" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1GMtFmck--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img.bloggu.io/ipfs/bafybeiduuvsexkicp34lfewu6vh6blawdhdh2pa2jpqm4faxpej2s2nmyq" alt="UUID vs NanoID" width="880" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;a href="https://www.npmjs.com/package/uuid"&gt;UUID&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;This is one of the most popular libraries to generate unique identifiers right now.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's small in size (483 bytes)&lt;/li&gt;
&lt;li&gt;11.6k starts on Github and over 59 million weekly downloads on NPM&lt;/li&gt;
&lt;li&gt;It has zero dependencies&lt;/li&gt;
&lt;li&gt;Supports for CommonJS, ECMAScript Modules and CDN builds&lt;/li&gt;
&lt;li&gt;Supports for all major browsers (including IE 11 😅)&lt;/li&gt;
&lt;li&gt;It's secure and well documented&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quickstart
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;npm install uuid&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Generate UUID
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ES6 syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { v4 as uuidv4 } from 'uuid';
uuidv4(); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CommonJS syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { v4: uuidv4 } = require('uuid');
uuidv4(); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  &lt;a href="https://www.npmjs.com/package/nanoid"&gt;NanoID&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;NanoID is a tiny, secure, URL-friendly, unique string ID generator for JavaScript.&lt;/p&gt;

&lt;p&gt;It's not as popular as UUID but it has grown very fast in the last period and looks very promising. It has 14.5k starts on Github right now (more than UUID).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very small in size (130 bytes - minified and gzipped)&lt;/li&gt;
&lt;li&gt;No dependencies&lt;/li&gt;
&lt;li&gt;2 times faster than UUID&lt;/li&gt;
&lt;li&gt;Safe (it uses a hardware random generator)&lt;/li&gt;
&lt;li&gt;Shorter IDs (21 symbols) than UUID (because it uses a larger alphabet)&lt;/li&gt;
&lt;li&gt;Available in 19 programming languages&lt;/li&gt;
&lt;li&gt;Supports modern browsers, Node.js and React Native&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quickstart
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;npm i nanoid&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Generate NanoID
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { nanoid } from 'nanoid'
cosnt id = nanoid() 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I've recently started using NanoID in my projects and it's working very well. I like the fact that the strings are shorter.&lt;/p&gt;

&lt;p&gt;If you want to reach me, check out &lt;a href="https://twitter.com/StatescuRazvan"&gt;my twitter&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Article posted using &lt;a href="https://bloggu.io"&gt;bloggu.io&lt;/a&gt;. Try it for free.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>uuid</category>
      <category>nanoid</category>
      <category>uuidv4</category>
    </item>
    <item>
      <title>How to run custom SQL queries using functions in Supabase</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Thu, 28 Oct 2021 18:56:02 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/how-to-run-custom-sql-queries-using-functions-in-supabase-2nna</link>
      <guid>https://dev.to/razvanstatescu/how-to-run-custom-sql-queries-using-functions-in-supabase-2nna</guid>
      <description>&lt;p&gt;Recently I needed to run custom SQL functions in a Supabase project. Their Javascript SDK doesn't support this so the only way is via database functions. You can then call those functions using the Javascript SDK.&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%2Fimg.bloggu.io%2Fipfs%2Fbafkreidyyytr7h5uindrv776chnzkfqtxip4wpfwx435jqipkqac6k66mi" 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%2Fimg.bloggu.io%2Fipfs%2Fbafkreidyyytr7h5uindrv776chnzkfqtxip4wpfwx435jqipkqac6k66mi" alt="Supabase"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's look at a very simple example using a table called &lt;code&gt;users&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE OR REPLACE FUNCTION all_users()
  RETURNS TABLE (f_id   uuid   
               , f_email   text
               , f_full_name text)
  LANGUAGE plpgsql AS
$func$
BEGIN
   RETURN QUERY
   SELECT id, email, full_name FROM users
END
$func$;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above function will return the &lt;code&gt;id, email, full_name&lt;/code&gt; for all users in the table. To quickly test the function you can run &lt;code&gt;SELECT * FROM all_users();&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now, moving to your Javascript code, you can run the function using the following syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let { data, error } = await supabase.rpc('all_users')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's that simple 😅. &lt;/p&gt;

&lt;p&gt;Now, let's look at a function that receives two parameters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE OR REPLACE FUNCTION all_users(created_from timestamp, created_to timestamp)
  RETURNS TABLE (f_id   uuid   
               , f_email   text
               , f_full_name text)
  LANGUAGE plpgsql AS
$func$
BEGIN
   RETURN QUERY
   SELECT id, email, full_name FROM users BETWEEN created_from AND created_to
END
$func$;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And, we can call this function from the Javascript SDK like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { data, error } = await supabase
  .rpc('all_users', { created_from: ..., created_to: ... })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to reach me, &lt;a href="https://twitter.com/StatescuRazvan" rel="noopener noreferrer"&gt;check out my Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Article posted using &lt;a href="https://bloggu.io" rel="noopener noreferrer"&gt;bloggu.io&lt;/a&gt;. Try it for free.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>supabase</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Set-up Mac for Web Development in 2021</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Mon, 15 Mar 2021 10:46:38 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/set-up-mac-for-web-development-in-2021-48p1</link>
      <guid>https://dev.to/razvanstatescu/set-up-mac-for-web-development-in-2021-48p1</guid>
      <description>&lt;p&gt;I've recently had to reinstall Mac OS on my 2018 Macbook Pro because the last time I've done this is more than 4 years ago and I start having some issues after upgrading to Big Sur like the internet was randomly not working, git was not working properly, the mac was kind of slow. Also, the SSD was full of junk from the past years.&lt;/p&gt;

&lt;p&gt;To reinstall Big Sur on my Mac, I've followed &lt;a href="https://support.apple.com/en-au/guide/mac-help/mh27903/mac"&gt;this guide&lt;/a&gt; from Apple.&lt;/p&gt;

&lt;h1&gt;
  
  
  General Settings
&lt;/h1&gt;

&lt;p&gt;Now, after I've finished installation and configurations, the first thing I check is if there are any updates for Mac OS.&lt;/p&gt;

&lt;p&gt;After this, I've gone to Settings and started going through all the categories: General, Desktop &amp;amp; Screen Saver, Dock &amp;amp; Menu Bar, etc, and configuring it the way I like it. Some &lt;strong&gt;important security features&lt;/strong&gt; to make sure you have turned on are on Security &amp;amp; Privacy &amp;gt; FileVault / Firewall.&lt;/p&gt;

&lt;h1&gt;
  
  
  General Software
&lt;/h1&gt;

&lt;p&gt;After finishing with the Mac settings, is time to start installing all the software I use on a daily basis. I'll split this into general software and web development software.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://apps.apple.com/us/app/amphetamine/id937984704"&gt;Amphetamin‪e‬&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is a great software that you can use to keep your Mac awake. For example, if I do a time-consuming operation and I want to make sure my mac won't go to sleep, I use Amphetamine‬.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avast
&lt;/h3&gt;

&lt;p&gt;I use the following products from Avast: Avast Premium Security, Avast Anti-Track, Avast CleanUp, and Avast VPN. You need to make sure you have an up-to-date antivirus on your computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Figma
&lt;/h3&gt;

&lt;p&gt;Figma is my go-to software for web design, quick logos, wireframes, social media content, basically everything in this area.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grammarly
&lt;/h3&gt;

&lt;p&gt;Grammarly it's been with me since February 2019 and I can say I love it. It helps me avoid mistakes when writing in English. I'm using it right now when writing this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://maccy.app"&gt;Maccy&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is the best macOS clipboard manager I've used so far (in my opinion). It's not free, but I can say it's worth the money and as you get used to it, it will save you a lot of time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Slack
&lt;/h3&gt;

&lt;p&gt;This is my go-to communication software with clients and for personal projects. It's great and has integrations with a lot of software.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spark
&lt;/h3&gt;

&lt;p&gt;I've been using Spark for a few months now as my main Mail Client both on my Mac and on my iPhone. I can say it's better than the GMail client. It helps me organize my emails better, and postpone reading specific emails.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zoom
&lt;/h3&gt;

&lt;p&gt;I'm mainly using Zoom and Google Meet for video calls these days so, this is a very important software I use every single day.&lt;/p&gt;

&lt;h1&gt;
  
  
  Development Software
&lt;/h1&gt;

&lt;p&gt;I've tried a lot of software over time, hoping it will help me increase my productivity and save me time as a web developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Postman
&lt;/h3&gt;

&lt;p&gt;Postman is more than just a tool you can use to test APIs. It's as they describe on their website "The Collaboration Platform for API Development". You can use it to document your APIs, collaborate with the team, test APIs and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tableplus.com"&gt;Table Plus&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I use Table Plus to manage databases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mongo Compass
&lt;/h3&gt;

&lt;p&gt;This is a tool you can use to execute CRUD operations over Mongo Databases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker
&lt;/h3&gt;

&lt;p&gt;I don't think I've made an app in the past 1-2 years without Docker. So, if you're not using Docker, start using it 😀.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://termius.com"&gt;Termius&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is an SSH client for both Mobile and Desktop. You can save all your servers, group them and connect them from your mobile device.&lt;/p&gt;

&lt;h3&gt;
  
  
  VS Code
&lt;/h3&gt;

&lt;p&gt;This is my main code editor right now. Before that, I used Web Storm for like a year. I kind of like changing them and experience what works best for me.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://brew.sh"&gt;Homebrew&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Homebrew is a packet manager for macOS.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ohmyz.sh"&gt;oh my zsh&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;As they say on their website "Oh-My-Zsh is a delightful, open-source, community-driven framework for managing your ZSH configuration.". You can basically improve your basic, boring Terminal 🚀.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/nvm-sh/nvm"&gt;NVM&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;NVM stands for Node Version Manager. You can basically switch between different NodeJS versions. It's very helpful if you work on multiple projects at the same time.&lt;/p&gt;

&lt;p&gt;Let me know in the comments what software do you use on your Mac.&lt;/p&gt;

&lt;p&gt;If you have any questions or just want to reach me, check out &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Realtime experience for Web Apps with Pusher Channels</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Tue, 09 Mar 2021 18:09:28 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/realtime-experience-for-web-apps-with-pusher-channels-53e1</link>
      <guid>https://dev.to/razvanstatescu/realtime-experience-for-web-apps-with-pusher-channels-53e1</guid>
      <description>&lt;p&gt;Before we begin, &lt;a href="https://pusher.com/channels"&gt;Pusher Channels&lt;/a&gt; (or simply Pusher) provides real-time communication between Servers and Apps. We used it when building &lt;a href="https://usebrunch.com"&gt;Brunch&lt;/a&gt;, and it really helped us improve the overall User Experience.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Pusher?
&lt;/h1&gt;

&lt;p&gt;With Pusher Channels you can build basically any real-time feature. To be more specific, you can do things like &lt;strong&gt;real-time charts, user lists, maps, notifications, multiplayer games&lt;/strong&gt;, and many other kinds of UI updates. The possibilities are endless.&lt;/p&gt;

&lt;p&gt;Let’s dive more into this and see how Pusher does this. When something happens on your server, it can send an update to your Web App so you can update your UI. It also works the other way around; when an event happens on your Web App, it can notify the server. Under the hood, Pusher uses &lt;strong&gt;WebSockets&lt;/strong&gt; and HTTP, and provides fallbacks for devices that don’t support WebSockets. &lt;/p&gt;

&lt;p&gt;I’ve also added a piece of code at the end of this article to help you get started with Pusher in no time.&lt;/p&gt;

&lt;h1&gt;
  
  
  How we use Pusher at Brunch?
&lt;/h1&gt;

&lt;p&gt;To better understand Pusher and how can you use it in your own Web App, let’s take a real example of how we use it here at Brunch for delivering Notifications. &lt;/p&gt;

&lt;p&gt;When a user goes to Brunch, it will &lt;strong&gt;subscribe&lt;/strong&gt; to a Private Channel. Pusher has 4 kinds of channels: Public, Private, Encrypted, and Presence. You can read more about each of them in their documentation. We use Private Channels here because they will authenticate the user before letting him connect to the channel. Basically, it will call an endpoint in our API that will tell Pusher if the user can connect to the channel or not. &lt;/p&gt;

&lt;p&gt;Now that we established a connection between the user and the server; when an event like “a team member creates a new project” or “a feedback is added in one of the teams I’m part of” occurs, the server will &lt;strong&gt;publish&lt;/strong&gt; the notification to the user’s private channel. From there, on the Front-End, a new event is triggered, so we can update the UI and display the notification to the user. &lt;/p&gt;

&lt;p&gt;Another example from Brunch is using Pusher Presence channels to show online members working on the same project page and keep changes in sync. When multiple users are on the same project page, you can see a list of all connected members and if a user makes an action (for example add a new feedback) the change is then pushed to the other members so their UI is also up to date with the latest change. This really helps us create a good collaborative experience.&lt;/p&gt;

&lt;p&gt;These are only 2 examples of how we use Pusher here at Brunch. I hope this helped you understand how this kind of service can significantly improve the User Experience of a Web App in 2021.&lt;/p&gt;

&lt;p&gt;Find below a very simple example using public channels with a NodeJS server and a Javascript client.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;For a more in-depth quick start guide and more examples, check out &lt;a href="https://pusher.com/docs/channels/getting_started/javascript"&gt;their documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any questions or want to reach me, check out &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I made an app and pushed it live in 4 days</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Sat, 13 Feb 2021 20:10:28 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/how-i-made-an-app-and-pushed-it-live-in-4-days-1kp7</link>
      <guid>https://dev.to/razvanstatescu/how-i-made-an-app-and-pushed-it-live-in-4-days-1kp7</guid>
      <description>&lt;p&gt;Hi guys 👨‍💻 and girls 👩‍💻. In January I've made &lt;a href="https://postzy.cc"&gt;Postzy&lt;/a&gt;. You can use Postzy to schedule ⏰ and manage your LinkedIn posts. &lt;/p&gt;

&lt;p&gt;One of my goals for 2021 is to build some micro-products that will generate some income. I want to learn to develop an MVP as fast as possible, validate the idea, and improve it. (if it's the case 😃).&lt;/p&gt;

&lt;p&gt;Now, let's see how I managed to push an MVP for &lt;a href="https://postzy.cc"&gt;Postzy&lt;/a&gt; in ~4 days.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tech Stack
&lt;/h1&gt;

&lt;p&gt;My go-to stack right now for developing micro-products and fast prototyping is: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.JS for Front-End&lt;/li&gt;
&lt;li&gt;Next.JS API routes for serverless back-end&lt;/li&gt;
&lt;li&gt;MongoDB for database&lt;/li&gt;
&lt;li&gt;Vercel or Netlify for hosting&lt;/li&gt;
&lt;li&gt;Stripe for payment &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://next-auth.js.org"&gt;Next Auth&lt;/a&gt; for implementing authentication in Next.JS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://plausible.io"&gt;Plausible&lt;/a&gt; for analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to this, depending on the project, I'm using all kinds of libraries or services to speed up my development process.&lt;/p&gt;

&lt;h1&gt;
  
  
  Planning
&lt;/h1&gt;

&lt;p&gt;Before I jump and build something, I do my research. I use Notion to organize my ideas and my research. I start by defining what I want to build, why, and how I'm going to build that. Also, while I do my research I bookmark in Notion articles, tutorials, libraries, GitHub tickets, ... Basically everything that I think will help me while building the app.&lt;/p&gt;

&lt;h1&gt;
  
  
  Day 1
&lt;/h1&gt;

&lt;p&gt;The first day was dedicated to &lt;strong&gt;research&lt;/strong&gt;. I've written down what I want to build and started to see how can I build that.&lt;/p&gt;

&lt;h1&gt;
  
  
  Day 2
&lt;/h1&gt;

&lt;p&gt;Started to set up the project, made some sketches for the app in Figma, and implemented Next Auth.&lt;/p&gt;

&lt;h1&gt;
  
  
  Day 3
&lt;/h1&gt;

&lt;p&gt;On the 3rd day, I've implemented the core functionality of the app, using the LinkedIn API. At the end of the day, I've been able to post to LinkedIn using the app.&lt;/p&gt;

&lt;h1&gt;
  
  
  Day 4
&lt;/h1&gt;

&lt;p&gt;On the last day, I've implemented payment processing using Stripe. I've gone with the easiest approach, letting Stripe to handle the checkout process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's talk in the comments about MVP and fast prototyping.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions or want to reach me, check out &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>discuss</category>
      <category>startup</category>
    </item>
    <item>
      <title>You need to try this NPM Package</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Mon, 25 Jan 2021 09:14:23 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/you-need-to-try-this-npm-package-3dnd</link>
      <guid>https://dev.to/razvanstatescu/you-need-to-try-this-npm-package-3dnd</guid>
      <description>&lt;p&gt;The title might sound clickbait but I really find this NPM Package to be extremely useful. The Package I'm talking about is &lt;a href="https://www.npmjs.com/package/patch-package"&gt;patch-package&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Last week I've made an app, &lt;a href="https://postzy.cc"&gt;Postzy&lt;/a&gt;, and I needed a clean way to slightly modify one NPM Package I was using. This is when I come across &lt;a href="https://www.npmjs.com/package/patch-package"&gt;patch-package&lt;/a&gt;. I was so happy because it was doing exactly what I needed it to do (and this rearely happens with a package 😃).&lt;/p&gt;

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

&lt;p&gt;It's very simple to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Patch a package
&lt;/h3&gt;

&lt;p&gt;You first need to go and make some changes to a package inside your node_modules folder.&lt;/p&gt;

&lt;p&gt;After that, you can run &lt;code&gt;npx patch-package [package-name]&lt;/code&gt; or yarn, if you're using yarn. &lt;/p&gt;

&lt;p&gt;It will create a folder called "patches" inside the root folder of your project. You'll need to commit this folder to git to share the patch with your team and also deploy the changes to your server (depending on your deploy flow).&lt;/p&gt;

&lt;h3&gt;
  
  
  Apply a patch
&lt;/h3&gt;

&lt;p&gt;After you made a patch, to apply it you can define a npm run command like &lt;code&gt;"postinstall": "patch-package"&lt;/code&gt;. You can run this command on the server after &lt;code&gt;npm install&lt;/code&gt; or on your local machine to apply the patch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you have any question, don't hesitate to &lt;a href="https://statescu.net"&gt;contact me&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>npm</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>How to set your rate as a freelancer?</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Tue, 19 Jan 2021 16:35:23 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/how-to-set-your-rate-as-a-freelancer-1cd4</link>
      <guid>https://dev.to/razvanstatescu/how-to-set-your-rate-as-a-freelancer-1cd4</guid>
      <description>&lt;p&gt;This is a very controversial topic, as well as salaries: everybody talks about it but nobody actually says anything.&lt;/p&gt;

&lt;p&gt;I don't say I have THE answer for you (unfortunately 😞), but I'll try to give you some starting points and tips that will help you get started. As well as driving a car or running a business, you'll get better at this over time, as you get more experience.&lt;/p&gt;

&lt;p&gt;I've been freelancing for 4 years and some simple but very important things I learned about rates are: you need to be comfortable with it (don't blame yourself that you work for too little or always be afraid that you ask too much) and you have to be realistic about it (we all want to earn more but if I'm going tomorrow and ask a client to pay me $1000 per hour he'll most probably ask me if I'm ok 😂). &lt;/p&gt;

&lt;p&gt;Now, that we created a bit of context around this subject, let's see how you can get started and have some actual numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use your salary
&lt;/h2&gt;

&lt;p&gt;This is a very simple technique that I present to all people asking me how to set their rate when starting freelancing. If you had a job recently, this might be a good starting point for you. &lt;/p&gt;

&lt;p&gt;Let's assume you'll work 8h/day. Take your annual gross salary (&lt;strong&gt;NOT&lt;/strong&gt; net salary) and divide that by 40hours/week * 52weeks/year.&lt;br&gt;
&lt;em&gt;Example&lt;/em&gt;&lt;br&gt;
$100,000(salary) / (40(hours/week) * 52(weeks/year)) = 100,000/(40*52) = 100,000 / 2080 = ~$48/hour&lt;/p&gt;

&lt;p&gt;I've made a very &lt;a href="https://statescu.net/rate-calculator"&gt;simple rate calculator&lt;/a&gt; starting from this formula on my website.&lt;/p&gt;

&lt;p&gt;After your first year as a freelancer, you start having some numbers that you can use to improve this rate.&lt;br&gt;
You can see how much money you made, how much you paid in taxes, what other expenses you had (bills, subscriptions, equipment, etc).&lt;/p&gt;

&lt;p&gt;Take those numbers, determine how much you need to make this year, and input those in the &lt;a href="https://statescu.net/rate-calculator"&gt;rate calculator&lt;/a&gt; to see your hourly rate. &lt;/p&gt;

&lt;p&gt;As you start freelancing, you might now see many expenses but let me tell you some common ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rent&lt;/li&gt;
&lt;li&gt;Bills for telephone, internet, utilities&lt;/li&gt;
&lt;li&gt;Software and service subscriptions &lt;/li&gt;
&lt;li&gt;Taxes&lt;/li&gt;
&lt;li&gt;Marketing costs&lt;/li&gt;
&lt;li&gt;Legal and accounting costs&lt;/li&gt;
&lt;li&gt;Courses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to reach me, check out &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>productivity</category>
      <category>business</category>
    </item>
    <item>
      <title>Twilio Chat/Video</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Wed, 13 Jan 2021 11:27:53 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/twilio-chat-video-39mc</link>
      <guid>https://dev.to/razvanstatescu/twilio-chat-video-39mc</guid>
      <description>&lt;p&gt;Hi guys!&lt;/p&gt;

&lt;p&gt;I'll soon have to implement private chat/video between users. Anyone any experience with Twilio on this side? Maybe can recommend some resources / GitHub repos?&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
Have a great day!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>help</category>
    </item>
    <item>
      <title>Why is it cheaper to hire a freelancer?</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Sun, 10 Jan 2021 08:57:09 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/why-is-it-cheaper-to-hire-a-freelancer-23i1</link>
      <guid>https://dev.to/razvanstatescu/why-is-it-cheaper-to-hire-a-freelancer-23i1</guid>
      <description>&lt;p&gt;Last week I did a post about this on LinkedIn and people reacted well; so I said, I'll write a short article about this. &lt;/p&gt;

&lt;p&gt;I've been freelancing for around 4 years now and in all this time, I've come to realize quite a few things about rates, money, etc. I'll share those things with you today.&lt;/p&gt;

&lt;p&gt;Let's start by making a quick comparison between an employee and a freelancer in terms of money &amp;amp; benefits. &lt;strong&gt;A freelancer doesn't have&lt;/strong&gt;:&lt;br&gt;
🚫 paid holidays&lt;br&gt;
🚫 medical/life/... insurance&lt;br&gt;
🚫 gym subscription&lt;br&gt;
🚫 free courses/training&lt;br&gt;
🚫 free coffee/water/food&lt;br&gt;
🚫 any kind of benefit&lt;/p&gt;

&lt;p&gt;So, usually, &lt;strong&gt;a freelancer has to pay for&lt;/strong&gt; all the above and:&lt;br&gt;
💳 taxes&lt;br&gt;
💳 bills (internet, electricity, ...)&lt;br&gt;
💳 subscriptions (services that help him run his business)&lt;br&gt;
💳 equipment (laptop, monitor, headset, mouse, ...)&lt;/p&gt;

&lt;p&gt;In addition to all of this, &lt;strong&gt;a freelancer has to take care of&lt;/strong&gt;:&lt;br&gt;
👨‍💻 client communication&lt;br&gt;
👨‍💻 proposals&lt;br&gt;
👨‍💻 estimates&lt;br&gt;
👨‍💻 marketing&lt;br&gt;
👨‍💻 sales&lt;br&gt;
👨‍💻 finances (invoices, payments, ...)&lt;br&gt;
👨‍💻 and much more&lt;/p&gt;

&lt;p&gt;When you set your hourly rate, you need to take all of that into account. &lt;/p&gt;

&lt;p&gt;From a Client perspective, &lt;strong&gt;hiring a freelancer will simplify your cost per employee a lot&lt;/strong&gt;. You no longer have to think about the things mentioned above (taxes, paid holiday, insurance, coffee, ...) and you can just think about the invoice you get from the freelancer.&lt;/p&gt;

&lt;p&gt;Hiring a freelancer will not only simplify the process but will also make you pay less. Let's look at this article &lt;a href="https://www.codementor.io/blog/cost-of-hiring-full-time-and-freelance-software-developers-1nqgg7b19d"&gt;Cost of Hiring Full-Time vs. Freelance Software Developers&lt;/a&gt;. You can go ahead and read the full article, it's very interesting. But let's look at the numbers: the cost to hire a full-time developer with 5 years of experience is $198,974 and the cost to hire a freelance developer with 5 years of experience is $107,400 - $179,000 (based on his hourly rate). &lt;em&gt;For a more detailed breakdown of those prices, go ahead and read the article above&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;To sum everything up, &lt;strong&gt;as a business, you could save up to almost 50% by hiring freelancers&lt;/strong&gt; instead of full-time employees!&lt;/p&gt;

&lt;h4&gt;
  
  
  Now that we clarified some things, let's try and destroy a mith
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;If a freelancer gets $100, he will keep $100&lt;/strong&gt;&lt;br&gt;
That's totally wrong. Depending on the country you're in you'll have to pay taxes, after that you'll have to cover different expenses covered above (bills, subscriptions, equipment, ...).&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Extra:&lt;/strong&gt; set your hourly rate
&lt;/h4&gt;

&lt;p&gt;If you're a freelancer / want to become a freelancer and have no idea how to set your rate, a simple thing you can do is think of your salary. Let's assume $2880 for this example (this is your net salary). We want to get your gross salary now. Let's say the employer has to pay 40% in taxes, so if you have a $2880 net salary this means your gross salary is $4800.  Divide that by 160 (the number of workable hours in a month). This will get you a $30 hourly rate. You can use this technique as a starting point.&lt;/p&gt;

&lt;p&gt;Let me know what you think about this subject in the comments 👇🏻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to reach me, check out &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What language you prefer for YouTube tutorials?</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Thu, 07 Jan 2021 05:32:43 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/what-language-you-prefer-for-youtube-tutorials-2go4</link>
      <guid>https://dev.to/razvanstatescu/what-language-you-prefer-for-youtube-tutorials-2go4</guid>
      <description>&lt;p&gt;Hi guys 👋🏻! &lt;/p&gt;

&lt;p&gt;Last year I've started a Web Dev YouTube channel and I try to figure out if I should post in my native language or in English.&lt;/p&gt;

&lt;p&gt;So, if your native language isn't English, what language do you prefer for watching programming tutorials on YouTube?&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Tools I use as a Freelance Web Developer 🛠</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Wed, 06 Jan 2021 08:19:42 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/tools-i-use-as-a-freelance-web-developer-1e99</link>
      <guid>https://dev.to/razvanstatescu/tools-i-use-as-a-freelance-web-developer-1e99</guid>
      <description>&lt;p&gt;I started freelancing about 4 years ago, and as I grew my freelance business, I used a lot of tools to help me with that.&lt;/p&gt;

&lt;p&gt;Yes, &lt;strong&gt;freelancing is a business&lt;/strong&gt;, so I'll split the tools in two main categories: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Programming&lt;/li&gt;
&lt;li&gt;Business&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  🖥 Programming &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;It is not about how many hours you work, but about how you worked and what you managed to achieve in those hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  IDE / Code Editor
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Atom (Free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I started web development, I used Atom. Back then, I was mainly doing PHP, HTML, CSS, FPTing into servers, and uploading files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VS Code (Free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After Atom, I switched to VS Code. I liked the UI and the fact that there were so many useful plugins.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web Storm (Paid)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the last 2 years, I mainly used Web Storm. I left VS Code for it because I felt it help me more than VS Code, it has more options and stuff like that.&lt;/p&gt;

&lt;p&gt;Now, in Jan 2021 I switched back to VS Code. You can see here how my VS Code looks like (what theme and font I use).&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/razvanstatescu" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F547619%2Ff8fb6a4e-25dd-445d-8f4d-f2ffbe326f08.png" alt="razvanstatescu"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/razvanstatescu/how-to-change-your-vs-code-appearance-3hb8" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to change your VS Code appearance&lt;/h2&gt;
      &lt;h3&gt;Răzvan Stătescu ・ Dec 30 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#vscode&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Git
&lt;/h3&gt;

&lt;p&gt;This is like air for programmers. I don't think there should be any programmer that doesn't use git. If you are a freelancer, if you work in a team, if you code in PHP, if you do HTML/CSS websites, just use git.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bitbucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I started my git adventure, I used Bitbucket because it allowed me to have private repositories for free. I still use it as some of my clients do.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Github&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is my main git platform right now since it allows private repositories for free. &lt;/p&gt;

&lt;h3&gt;
  
  
  Browser
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sizzy.co" rel="noopener noreferrer"&gt;Sizzy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is, as they say, the browser for developers. Sizzy allows you to see the same web page on multiple resolutions at the same time, scroll on all devices at the same time, take screenshots on multiple resolutions, etc. &lt;/p&gt;

&lt;p&gt;When I'm doing front-end work, Sizzy is a game-changer in my opinion.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And of course, the other browsers: Safari, Chrome, Firefox...&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.postman.com" rel="noopener noreferrer"&gt;Postman&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;As a web developer, you always need to make API calls, check the response, the headers, debug things. Postman is the perfect tool for both Front-End Developers and Back-End Developers. &lt;br&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%2Fi%2F7qb50qnw2y9mjf1g4o1t.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%2Fi%2F7qb50qnw2y9mjf1g4o1t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://termius.com" rel="noopener noreferrer"&gt;Termius&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Termius is an SSH Client for both desktop and mobile. I often need to ssh into servers so Termius comes in handy for that. You can save servers and organize them in groups.&lt;/p&gt;

&lt;h3&gt;
  
  
  Antivirus
&lt;/h3&gt;

&lt;p&gt;Your online security is very important, especially when working with different clients. Is your responsibility to have an up-to-date antivirus and VPN (especially on public networks).&lt;/p&gt;

&lt;p&gt;I've used &lt;a href="https://mullvad.net/en/" rel="noopener noreferrer"&gt;Mullvad VPN&lt;/a&gt; and &lt;a href="https://www.avast.com/secureline-vpn" rel="noopener noreferrer"&gt;Avast SecureLine&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Intrenet
&lt;/h3&gt;

&lt;p&gt;Last but not least, the internet (Google, Stackoverflow, dev.to, etc...). No one will memorize the whole Angular documentation or all lodash functions. As a freelance web developer, you need to be able to work independently so please learn to search on the internet.&lt;/p&gt;

&lt;p&gt;A good developer is not someone that knows everything, is someone that can use the tools he has to build great things.&lt;/p&gt;

&lt;h1&gt;
  
  
  💰 Business &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;I try to spend more on coding, and less on business things. For this, I use a set of tools to save me time. Also, managing multiple clients, you have to be smart and organized about this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Time Tracking
&lt;/h3&gt;

&lt;p&gt;With some of my clients, I work per hour so I need to log my time in order to bill the client. Sometimes I use the client time tracking software, sometimes I use mine (and send a report and the end of the month/week).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://track.toggl.com" rel="noopener noreferrer"&gt;Toggl&lt;/a&gt; (Free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the software I'm currently using to track time and generate reports for clients.&lt;/p&gt;

&lt;p&gt;Even tho Toggl has a free plan, I've upgraded to Starter plan($10/month) so I can manage better this time situation with things like billable/non-billable hours, save reports, etc...&lt;/p&gt;

&lt;p&gt;They also have a great desktop app that reminds me to take a break after a certain time. (yea, as a developer, is good to take breaks from time to time. 😃)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://getharvest.com" rel="noopener noreferrer"&gt;Harvest&lt;/a&gt; (Free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is another time tracking app you can try, they also a free plan but I consider it more limited than Toggl.&lt;/p&gt;

&lt;h3&gt;
  
  
  Task Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://asana.com" rel="noopener noreferrer"&gt;Asana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trello.com" rel="noopener noreferrer"&gt;Trello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other task management tools for bigger teams are: YouTrack or Jira&lt;/p&gt;

&lt;h3&gt;
  
  
  Communication
&lt;/h3&gt;

&lt;p&gt;Yea, we all have to manage emails from clients, collaborators, team members, etc. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have a GSuite subscription for my freelance business. I find it very useful and besides &lt;strong&gt;GMail&lt;/strong&gt;, it comes with a lot of other tools/services like drive, meet, etc.&lt;/p&gt;

&lt;p&gt;I'm using Apple products (iPhone and Mac). The GMail app is ok, but not great. I started using &lt;a href="https://sparkmailapp.com" rel="noopener noreferrer"&gt;Spark&lt;/a&gt; (an email client) on both my phone and laptop and I like it. It helps me manage my emails better.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm using Slack with almost all my clients to communicate with them and their team.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meet &amp;amp; Zoom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For calls, I'm mainly using Meet (from Google) and Zoom, depending on the client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Invoices
&lt;/h3&gt;

&lt;p&gt;This is a pretty difficult topic to cover, considering that every country has its own financial laws. This is why you should find an app that's compliant with your country's laws.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.smartbill.ro" rel="noopener noreferrer"&gt;SmartBill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm from Romania 🇷🇴 🇪🇺 so because of that, I'm using SmartBill, a Romanian app that's specially made for Romanian businesses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://waveapps.com/" rel="noopener noreferrer"&gt;Wave&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before SmartBill, I've been using Wave. I liked that it was simple and free. I decided to leave it, and use SmartBill because it was more helpful, considering that is made especially for Romanian businesses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Others
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Google Calendar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For managing my schedule, I use Google Calendar. As a freelancer, especially if you work with multiple clients, &lt;strong&gt;is very important to stay organized&lt;/strong&gt;. This way, you make sure you don't forget things and respect deadlines ✅. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notes from Apple&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I need to write down an idea, plat a quick blog post, etc I use Notes from Apple. I like that they are simple, I can organize them in folders and they sync between my iPhone and Mac. From there I can transform them into tasks, events, etc.&lt;/p&gt;

&lt;p&gt;Please let me know in the comments, &lt;strong&gt;what tools do you use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to reach me, visit &lt;a href="https://statescu.net" rel="noopener noreferrer"&gt;my website&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>freelance</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Weather card with TailwindCSS</title>
      <dc:creator>Răzvan Stătescu</dc:creator>
      <pubDate>Sun, 03 Jan 2021 11:20:00 +0000</pubDate>
      <link>https://dev.to/razvanstatescu/weather-card-with-tailwindcss-4eo8</link>
      <guid>https://dev.to/razvanstatescu/weather-card-with-tailwindcss-4eo8</guid>
      <description>&lt;p&gt;From time to time, I like to play with TailwindCSS, especially when a new version is released. &lt;/p&gt;

&lt;p&gt;If you haven't used tailwind so far, give it a try. 99% you'll fall in love with it.&lt;/p&gt;

&lt;p&gt;Look how simple is to create a weather card:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OdTga85w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b2tppc73rx6thb32oimp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OdTga85w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b2tppc73rx6thb32oimp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Use the &lt;a href="https://play.tailwindcss.com/GFUNQjo8s9"&gt;tailwind playground&lt;/a&gt; to customize this card.&lt;/p&gt;

&lt;p&gt;If you have any questions, you can find my contact details on &lt;a href="https://statescu.net"&gt;my website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>webdev</category>
      <category>css</category>
    </item>
  </channel>
</rss>
