<?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: Emma Ngo</title>
    <description>The latest articles on DEV Community by Emma Ngo (@bunhere).</description>
    <link>https://dev.to/bunhere</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%2F1167590%2F7c790680-3e25-4e10-8bc4-1cf2938f0b3c.jpeg</url>
      <title>DEV Community: Emma Ngo</title>
      <link>https://dev.to/bunhere</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bunhere"/>
    <language>en</language>
    <item>
      <title>Create a Tarot View App with the Gemini API in just 15 minutes?.</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Mon, 03 Jun 2024 16:05:21 +0000</pubDate>
      <link>https://dev.to/bunhere/create-a-tarot-view-app-with-the-gemini-api-in-just-15-minutes-3g9l</link>
      <guid>https://dev.to/bunhere/create-a-tarot-view-app-with-the-gemini-api-in-just-15-minutes-3g9l</guid>
      <description>&lt;p&gt;Discover "What applications can you make with GeminiAPI?" while engaging with Gemini, a comprehensive language model for Google AI. Here is a demonstration of how to build a Tarot reading app with the help of the Gemini API, including how to send a request through a prompt and get the results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kCTBr78l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://bunhere.s3.amazonaws.com/bunhere-blog-public/images/blogs/tarot-with-gemini.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kCTBr78l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://bunhere.s3.amazonaws.com/bunhere-blog-public/images/blogs/tarot-with-gemini.png" alt="GeminiAPI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Author:&lt;/em&gt; &lt;a href="https://bunhere.com"&gt;&lt;em&gt;bunhere.com&lt;/em&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
I am always looking for feedback on my writing, so please let me know what you think._ ❤️_&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>tarot</category>
      <category>nextjs</category>
      <category>buildwithai</category>
      <category>geminiapi</category>
    </item>
    <item>
      <title>How to improve the RES of a web page?</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Wed, 03 Apr 2024 05:14:36 +0000</pubDate>
      <link>https://dev.to/bunhere/how-to-improve-the-res-of-a-web-page-22bn</link>
      <guid>https://dev.to/bunhere/how-to-improve-the-res-of-a-web-page-22bn</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mhkzt9oA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AzCb_pzXI6UnBhDsz4agG5Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mhkzt9oA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AzCb_pzXI6UnBhDsz4agG5Q.png" alt="RES" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was a nice day when I went to my website and saw this picture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Dz1af5r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ADW87cUNjUX8UzpotBvUNhQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Dz1af5r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ADW87cUNjUX8UzpotBvUNhQ.png" alt="RES" width="800" height="338"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;RES&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;How do I improve RES now? To answer this question, we first need to figure out what RES is.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s RES?
&lt;/h3&gt;

&lt;p&gt;RES (Real Experience Score) is an indicator of the actual user experience with your website. If a web page is considered good, the RES must be greater than or equal to 90.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to evaluate RES
&lt;/h3&gt;

&lt;p&gt;Depending on the browser, the RES scores are calculated differently, but the evaluation criteria will not be too different and the scales will be similar.&lt;/p&gt;

&lt;p&gt;For example, for Google, there are &lt;a href="https://pagespeed.web.dev/"&gt;Lighthouse&lt;/a&gt; which are evaluated on the basis of factors such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://web.dev/fcp/"&gt;FCP&lt;/a&gt; (First Contentful Paint) measures the time from the start of the page to the display of the first DOM content&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.dev/inp/"&gt;INP&lt;/a&gt; (Interaction to Next Paint)—measures page responsiveness using data from the Event Timing API, measuring the time a website takes to respond to user interactions after they perform actions such as clicking or typing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.dev/lcp/"&gt;LCP&lt;/a&gt; (Largest Contentful Paint)—measures page loading speed, marking when the main content (largest content) of the page is loaded in the page load process&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.dev/cls/"&gt;CLS&lt;/a&gt; (Cumulative Layout Shift)—Image Stability Measurement&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.dev/ttfb/"&gt;TTFB&lt;/a&gt; (Time to First Byte)—measures the connection time and responsiveness of the server WEB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qdwGk_tq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AtPq1P8CesDzymetme-L4kA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qdwGk_tq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AtPq1P8CesDzymetme-L4kA.png" alt="RES" width="800" height="215"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Google RES&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And there are many other indicators, these are collectively known as Core Web Vitals. Core Web Vitals are defined by Google and &lt;a href="https://www.w3.org/webperf/"&gt;Web Performance Working Group&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Web Performance Working Group&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;is part of the World Wide Web Consortium (W3C), which is tasked with providing methodologies to measure and improve the performance of web applications. They developed standards and protocols that allow developers and browsers to build and deliver websites more efficiently, improving the end-user experience.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After getting a good understanding of the RES indicators, how can we improve these indicators?&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved RES — optimized website experience
&lt;/h3&gt;

&lt;p&gt;Based on the above definitions, the objectives needed to improve these indicators are: reducing the first load time of the web page; reducing response time of tasks such as clicks or input; fast page loading; control of image quality and smooth display of the image; server responsiveness, etc.&lt;/p&gt;

&lt;h4&gt;
  
  
  FCP
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Reduce the size of the site.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete unnecessary files like JavaScript, CSS, and images.&lt;/li&gt;
&lt;li&gt;Use miniature versions of JavaScript and CSS files.&lt;/li&gt;
&lt;li&gt;Image optimization (see below).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Image optimization.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use smaller image formats, such as &lt;a href="https://developers.google.com/speed/webp#:~:text=WebP%20is%20a%20modern%20image,in%20size%20compared%20to%20PNGs"&gt;webp&lt;/a&gt;, JPEG 2000, or JPEG XR.&lt;/li&gt;
&lt;li&gt;Compress images with tools like TinyPNG or Smush.&lt;/li&gt;
&lt;li&gt;Cut and resize the image to fit the display size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use browser cache.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable browser cache for JavaScript, CSS and image files.&lt;/li&gt;
&lt;li&gt;Use HTTP headers to control cache time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid unnecessary JavaScript.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only load JavaScript when necessary.&lt;/li&gt;
&lt;li&gt;Use compact JavaScript libraries.&lt;/li&gt;
&lt;li&gt;Avoid using JavaScript to perform tasks that can be done in HTML or CSS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  INP
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;JavaScript time reduction:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use miniature versions of JavaScript files.&lt;/li&gt;
&lt;li&gt;Avoid using JavaScript to block output.&lt;/li&gt;
&lt;li&gt;Using web workers to perform heavy JavaScript tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid using JavaScript to block rendering:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the JavaScript files at the bottom of the page.&lt;/li&gt;
&lt;li&gt;Use async or defer attributes for JavaScript files.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Using web workers to perform heavy JavaScript tasks such as image or video processing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Page size reduction:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete unnecessary files like JavaScript, CSS, and images.&lt;/li&gt;
&lt;li&gt;Use miniature versions of JavaScript and CSS files.&lt;/li&gt;
&lt;li&gt;Image optimization (watch FCP).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  LCP
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Image Optimization (watch FCP)&lt;/li&gt;
&lt;li&gt;Use browser cache (watch FCP)&lt;/li&gt;
&lt;li&gt;Avoid unnecessary JavaScript (watch FCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  CLS
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Use fixed image size:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the size of the images before loading.&lt;/li&gt;
&lt;li&gt;Use width and height attributes for &lt;img&gt; tags.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid using JavaScript to change the layout—location or size of HTML elements.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use CSS Flexbox or Grid to create a flexible site layout.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Track CLS with PageSpeed Insights to track CLS and get improvement suggestions.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  TTFB
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Website Compression: Compress HTML, CSS and JavaScript using gzip or Brotli.&lt;/li&gt;
&lt;li&gt;Database Optimization: Reduce database size and optimize queries.&lt;/li&gt;
&lt;li&gt;Use browser cache (watch FCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In addition, you can use the PageSpeed Insights tool to evaluate website performance and receive suggestions for improvement.&lt;/li&gt;
&lt;li&gt;Monitor website performance with Google Analytics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---7THKsJj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ax_AvJey_5VT3IBZWYgXXig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---7THKsJj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ax_AvJey_5VT3IBZWYgXXig.png" alt="RES" width="800" height="453"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;RES Updated&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;PageSpeed Insights: &lt;a href="https://developers.google.com/speed/docs/insights/v5/about"&gt;Document&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am always looking for feedback on my writing, so please let me know what you think. &lt;em&gt;❤️&lt;br&gt;&lt;br&gt;
Website:&lt;/em&gt; &lt;a href="https://bunhere.com/"&gt;&lt;em&gt;bunhere.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>corewebvitals</category>
      <category>res</category>
      <category>seo</category>
    </item>
    <item>
      <title>Optimize Command Line Usage with Amazon CodeWhisperer</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Wed, 13 Mar 2024 05:12:23 +0000</pubDate>
      <link>https://dev.to/bunhere/optimize-command-line-usage-with-amazon-codewhisperer-1bd5</link>
      <guid>https://dev.to/bunhere/optimize-command-line-usage-with-amazon-codewhisperer-1bd5</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mvkb_Df7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AGZS3LNVei8pH_Xoy8XP5pg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mvkb_Df7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AGZS3LNVei8pH_Xoy8XP5pg.png" alt="Amazon CodeWhisperer for the command line" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a developer, the use of command-line commands to work from environment configuration to program execution is no longer unusual. For some people, remembering commands isn’t too hard, but using tools is also a way to support and increase performance.&lt;/p&gt;

&lt;p&gt;I used to use &lt;a href="https://fig.io/"&gt;Fig&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EuDiXbnk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AA3FewjlhrzQE2fAnbv2Tpw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EuDiXbnk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AA3FewjlhrzQE2fAnbv2Tpw.png" alt="Amazon CodeWhisperer for the command line" width="800" height="227"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fig.io/user-manual/getting-started"&gt;Fig&lt;/a&gt; helps users execute sentences faster with suggestions of sentences executed (and many other tasks). But I just got an e-mail from Fig about the shutdown, which is because the Fig team joined Amazon and created the &lt;a href="https://docs.aws.amazon.com/codewhisperer/latest/userguide/command-line-getting-started-installing.html"&gt;Amazon CodeWhisperer for command line&lt;/a&gt; with core tasks from Fig and to use all the resources to concentrate on the CodeWisperer that’s one of the reasons why Fig stopped working.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DaXCrfwm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ASNh37NnCmM_MAJ5Ke9xOpQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DaXCrfwm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ASNh37NnCmM_MAJ5Ke9xOpQ.png" alt="fig email" width="800" height="765"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig mail&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And to see what the CodeWhisperer has to do with it, let’s find out about it below!&lt;/p&gt;
&lt;h3&gt;
  
  
  Learn and install CodeWhisperer.
&lt;/h3&gt;
&lt;h3&gt;
  
  
  Difference between Fig and CodeWhisperer
&lt;/h3&gt;

&lt;p&gt;CodeWhisperer for command line provides the core features of Fig, including:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Complete IDE-style syntax for over 500+ command-line tools (CLI).&lt;/li&gt;
&lt;li&gt;Translate natural language to Bash.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;CodeWhisperer for command line is free for individual users and is designed to be faster, more reliable than Fig&lt;/em&gt;. They have many interesting features to be released in CodeWhisperer for command line in 2024, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux Support&lt;/li&gt;
&lt;li&gt;Talk to Who&lt;/li&gt;
&lt;li&gt;Inline AI completions&lt;/li&gt;
&lt;li&gt;Autocomplete in SSH&lt;/li&gt;
&lt;li&gt;Private autocomplete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: CodeWhisperer for command line does not include features similar to Fig Scripts, Dotfiles, Plugins or Servers, and they do not plan to support these features in the near future either.&lt;/p&gt;
&lt;h3&gt;
  
  
  What’s the CodeWhisperer?
&lt;/h3&gt;

&lt;p&gt;With the Fig team’s profound awareness of the impact AI has on developers, creating CodeWhisperer to replace Fig is understandable.&lt;/p&gt;

&lt;p&gt;Amazon CodeWhisperer for command line is a code-writing tool using artificial intelligence. (AI). This tool increases efficiency and productivity for programmers by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proposal Code/ Command Line&lt;/li&gt;
&lt;li&gt;Supports multiple programming languages&lt;/li&gt;
&lt;li&gt;Integrate with an integrated development environment (IDE)&lt;/li&gt;
&lt;li&gt;Accelerate software development: helps programmers focus more on software logic and architecture, rather than technical details.&lt;/li&gt;
&lt;li&gt;Improved code quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amazon CodeWhisperer for command line is a powerful and useful code-writing tool for command-line programmers. This tool helps you increase efficiency and productivity, minimize errors, and speed up software development.&lt;/p&gt;

&lt;p&gt;You can find out more &lt;a href="https://docs.aws.amazon.com/codewhisperer/latest/userguide/command-line.html"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;To install CodeWhisperer, follow the steps below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;. Download CodeWhisperer for command line &lt;a href="https://desktop-release.codewhisperer.us-east-1.amazonaws.com/latest/CodeWhisperer.dmg"&gt;here&lt;/a&gt; CodeWhisperer only supports MAC @@&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;. Authentication&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For the CodeWhisperer individual user: Use the &lt;a href="https://docs.aws.amazon.com/general/latest/gr/aws_builder_id.html"&gt;Builder ID&lt;/a&gt; to authenticate with CodeWisperer. You will receive the start URL of your AWS account.&lt;/li&gt;
&lt;li&gt;For CodeWhisperer Professional users: Use the &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html"&gt;IAM Identity Center&lt;/a&gt; to authenticate with CodeWisperer. You will receive the start URL of your AWS account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;. Follow the instructions to install the shell integration and grant access to macOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uH58UEcM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ai-58LPMjpSr3604AwaHMgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uH58UEcM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ai-58LPMjpSr3604AwaHMgg.png" alt="access config" width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EMc83dh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Aytcd2333pId8ueXmhv5OZQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EMc83dh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Aytcd2333pId8ueXmhv5OZQ.png" alt="access config" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Supported command line environments
&lt;/h4&gt;

&lt;p&gt;CodeWhisperer for command line integrates with the following environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operating systems: macOS&lt;/li&gt;
&lt;li&gt;Shells: bash, zsh, fish&lt;/li&gt;
&lt;li&gt;Terminal emulators: iTerm2, macOS terminal, Hyper, Alacritty, Kitty, wezTerm&lt;/li&gt;
&lt;li&gt;IDEs: VS Code terminal, Jetbrains terminals (except Fleet)&lt;/li&gt;
&lt;li&gt;CLIs: 500+ of the most popular CLIs such as git, aws, docker, npm, yarn&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Verifying your download
&lt;/h4&gt;

&lt;p&gt;After you download CodeWhisperer for command line, you can verify its code signature as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;codesign -v /Applications/CodeWhisperer.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If there is no output, then the app’s code signature is valid, and it has not been tampered with since it was signed.&lt;/p&gt;

&lt;p&gt;Now you can access the CodeWhisperer and integrate it into the IDEs you want to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1GU66zW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AAyAaEmVMpOyLjp7E7sQzoA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1GU66zW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AAyAaEmVMpOyLjp7E7sQzoA.png" alt="dashboard" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The creation of tools makes us work faster, more productive. Personally, I don’t think it’s too embarrassing not to remember all the orders.&lt;/p&gt;

&lt;p&gt;Welcome to your installation, and take advantage of the great features of Amazon CodeWhisperer for command line&lt;/p&gt;

&lt;p&gt;If you like this post and my open source, don’t forget to give me support (clapp, upvote).&lt;/p&gt;

&lt;p&gt;Author: &lt;a href="https://bunhere.com/"&gt;bunhere.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am always looking for feedback on my writing, so please let me know what you think.&lt;/em&gt; ❤️&lt;/p&gt;




</description>
      <category>awstoolkit</category>
      <category>aws</category>
      <category>commandline</category>
    </item>
    <item>
      <title>Learn about push notification types! And the effective Push Notification elements</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Sun, 03 Mar 2024 12:04:46 +0000</pubDate>
      <link>https://dev.to/bunhere/learn-about-push-notification-types-and-the-effective-push-notification-elements-4n4o</link>
      <guid>https://dev.to/bunhere/learn-about-push-notification-types-and-the-effective-push-notification-elements-4n4o</guid>
      <description>&lt;p&gt;In today’s digital age, push notifications have become an integral part of the experience of mobile users and users of web applications. From notifications of new news and updates on events to reminders of daily activities, push notifications are boosting the relationship between users and apps.&lt;/p&gt;

&lt;p&gt;It’s also a powerful tool to attract users’ attention and keep them in your app. However, not all push notifications work.&lt;/p&gt;

&lt;p&gt;This article will provide you with information about the most common types of push notifications and the important factors that contribute to generating effective push notifications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VQ2PjpLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ARcsOVq30pd2IDfUVcXUSIg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VQ2PjpLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ARcsOVq30pd2IDfUVcXUSIg.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Push Notification&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. What is Push Notification??
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Push notification&lt;/em&gt; is a way for mobile applications or websites to send notifications to users without them opening the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1. Classify push notification usage
&lt;/h3&gt;

&lt;h4&gt;
  
  
  By Purpose
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Transaction Notification: Updates on financial operations, payments, and transactions. For example, a notification from a bank, an e-wallet.&lt;/li&gt;
&lt;li&gt;Event Notification: Notifications of upcoming events, promotions, and discounts. For example, notifications from shopping apps and social networks.&lt;/li&gt;
&lt;li&gt;News Notification: Updates on the latest news and new articles. For example, notifications from news apps and blogs.&lt;/li&gt;
&lt;li&gt;Reminder notifications: reminders of important schedules, events, and dates. For example, notifications from the calendar app, notes.&lt;/li&gt;
&lt;li&gt;Interactive Notifications: Updates about other people’s activities, new messages. For example, notifications from social networking applications and chats&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By Application Platform
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Mobile App: Send to the user via the mobile app installed on the device.&lt;/li&gt;
&lt;li&gt;Website: Send to users via a web browser. For example, an announcement from a news site.&lt;/li&gt;
&lt;li&gt;Wearable device: sent to users via wearable devices like smartwatches.&lt;/li&gt;
&lt;li&gt;Voice: Sends voice notifications. For example, a virtual assistant notification.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By priority level
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Emergency: immediate display, sound, and vibration. For example, hazard warnings, natural disasters.&lt;/li&gt;
&lt;li&gt;Normal: Displayed in the notification bar, there may be a sound or slight vibration. For example, new message notifications and app updates.&lt;/li&gt;
&lt;li&gt;Silent: Show in the notification bar but no sound or vibration. For example, advertising announcements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  By display
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Text Format: Displays notification content as simple text.&lt;/li&gt;
&lt;li&gt;Image format: displays the message content accompanied by the image.&lt;/li&gt;
&lt;li&gt;Video format: displays notification content accompanied by video.&lt;/li&gt;
&lt;li&gt;Interaction type: Allows users to interact directly with notifications. For example, answering messages, ordering products.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1.2. Notes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Take into account the frequency, timing, content, and display of notifications to avoid annoying users.&lt;/li&gt;
&lt;li&gt;Additionally, users can customize notification settings for each application, including enabling/disabling notifications, choosing the type of notification they want to receive, and selecting sounds and vibrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Types of push notifications
&lt;/h3&gt;

&lt;p&gt;Here are some types of push notifications and their purposes:&lt;/p&gt;

&lt;h3&gt;
  
  
  Standard Push Notifications
&lt;/h3&gt;

&lt;p&gt;Standard Push Notifications This is the simplest type of notification, containing only text and can include images.&lt;/p&gt;

&lt;p&gt;This notification is usually used to notify about events, news, or new content in the app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rich Push Notifications
&lt;/h3&gt;

&lt;p&gt;Rich Push Notifications contains more content than standard push notifications, including text, images, videos, and other interactive features.&lt;/p&gt;

&lt;p&gt;This helps highlight the message and provides a better user experience.&lt;/p&gt;

&lt;p&gt;Example: An e-commerce application can use rich push notifications to display the latest product with images and discounts.&lt;/p&gt;

&lt;p&gt;Disadvantages: Requires large data capacity, may not be compatible with all devices and operating systems, more complex in creation and design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive Push Notifications
&lt;/h3&gt;

&lt;p&gt;Interactive Push Notifications allows users to take action directly from the notification bar without opening the application.&lt;/p&gt;

&lt;p&gt;Example: Users can answer messages, conduct short surveys, or quickly view new information from the notification bar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Geotargeted Push Notifications
&lt;/h3&gt;

&lt;p&gt;Geotargeted Push Notifications uses a user’s location data to send a notification when they get close to a specific location.&lt;/p&gt;

&lt;p&gt;For example: A hotel booking app can send push notifications when users are near a multi-hotel area.&lt;/p&gt;

&lt;h3&gt;
  
  
  Segmented Notifications
&lt;/h3&gt;

&lt;p&gt;Sends notifications to specific user groups based on criteria such as age, gender, preferences, previous behavior, and geographical location.&lt;/p&gt;

&lt;p&gt;Example: A sports app can send notifications about an ongoing match only to users who have expressed interest in the sport.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behavioral Notifications
&lt;/h3&gt;

&lt;p&gt;Behavioral Notifications: Personalizes notifications based on previous user behavior in the application.&lt;/p&gt;

&lt;p&gt;Example: An online menu application can send notifications about offers or new dishes based on a user’s order history.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transactional Notifications
&lt;/h3&gt;

&lt;p&gt;Transactional Notifications are notifications relating to specific transactions that users make in an application.&lt;/p&gt;

&lt;p&gt;Example: Order confirmation, shipping status update, and successful payment notification.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reminder Notifications
&lt;/h3&gt;

&lt;p&gt;Reminder Notifications send notifications to remind users of events or tasks they need to perform.&lt;/p&gt;

&lt;p&gt;Example: Reminders of upcoming meetings, exercise schedules, or deadlines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Silent Notifications
&lt;/h3&gt;

&lt;p&gt;Silent Notifications: Not displayed to users, but used to update data in the background or activate automated processes.&lt;/p&gt;

&lt;p&gt;Example: Updates data from the server, updates geolocation without interrupting user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent Notifications
&lt;/h3&gt;

&lt;p&gt;Persistent Notifications: The notification appears on the device’s notification bar and is not deleted until the user performs a specific action or accepts the notification.&lt;/p&gt;

&lt;p&gt;Example: Notification of network connection status, notification of application or system status.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How do you SEND notifications effectively?
&lt;/h3&gt;

&lt;h3&gt;
  
  
  3.1. Survey
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uehC05Un--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ApCOFxK9bB9cs9Zl50G4E_w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uehC05Un--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2ApCOFxK9bB9cs9Zl50G4E_w.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Survey&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://helpdesk.helplama.com/what-do-consumers-think-about-push-notifications/"&gt;&lt;strong&gt;Helplama&lt;/strong&gt;&lt;/a&gt; obtained the following result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;43% of users said receiving &lt;em&gt;2–5 push notifications&lt;/em&gt; a week would turn them off the push notification.&lt;/li&gt;
&lt;li&gt;30% of users will &lt;em&gt;stop using the app&lt;/em&gt; altogether if they receive &lt;em&gt;6–10 push notifications&lt;/em&gt; weekly.&lt;/li&gt;
&lt;li&gt;64% of people will &lt;em&gt;stop using the app&lt;/em&gt; altogether if they receive more than &lt;em&gt;5 push notifications per week&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;61% of users will use the app more often or at the same rate if push notifications are personalized to their stated preferences.&lt;/li&gt;
&lt;li&gt;Older users (30 years and older) do not like push notifications more than younger users (18–29 years old).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.2. 15 criteria when pushing notifications
&lt;/h3&gt;

&lt;p&gt;Based on the above data, you need to consider the content as well as the method of sending notifications to keep the user on track. I need to remind you. &lt;em&gt;15 criteria&lt;/em&gt; Below are all the criteria that are important when implementing push notifications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[1]&lt;/strong&gt; &lt;em&gt;Priority user consent and preferences&lt;/em&gt;: Always ask for user consent for notifications and provide clear options for users to manage their preferences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[2]&lt;/strong&gt; &lt;em&gt;Personalization and segmentation&lt;/em&gt;: Adjust notifications based on user behavior, preferences, and demographics. Segmenting your audience ensures that the message is relevant and attractive to each group of users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[3]&lt;/strong&gt; &lt;em&gt;Create a clear and concise message&lt;/em&gt;: Make sure your message is simple, easy to understand, and delivers the core message quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[4]&lt;/strong&gt; &lt;em&gt;Use multimedia wisely&lt;/em&gt;: combine images, videos, or sounds to enrich the notification, but do so in a reasonable way to avoid overwhelming the user.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[5]&lt;/strong&gt; &lt;em&gt;Reasonable notification time&lt;/em&gt;: Sends notifications at times when users are most likely to receive them. Consider time zones and user habits while avoiding annoying hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[6]&lt;/strong&gt; &lt;em&gt;Maintaining frequency balance&lt;/em&gt;: The user receiving too many notifications can cause annoyance and uninstall the application. Find a balance that keeps users up-to-date without overwhelming them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[10]&lt;/strong&gt; &lt;em&gt;A/B testing deployment&lt;/em&gt;: regularly check different notification versions to see which version works best in terms of content, time, and frequency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[11]&lt;/strong&gt; &lt;em&gt;Performance measurement and analysis&lt;/em&gt;: Use analytics to track your notification performance. This data is crucial if you want to optimize your strategy and improve the level of interaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[12]&lt;/strong&gt; &lt;em&gt;Relevance assurance&lt;/em&gt;: Notifications must always provide content that is valuable to the user, whether it is information, entertainment, or advertising.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[13]&lt;/strong&gt; &lt;em&gt;Assure multi-platform elements&lt;/em&gt;: Adjust your approach to match the best principles and practices of different platforms (iOS, Android, web, v.v.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[14]&lt;/strong&gt; &lt;em&gt;Use notifications only for critical alerts&lt;/em&gt;: Pre-set push notifications for important or urgent messages to maintain effectiveness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[15]&lt;/strong&gt; &lt;em&gt;Provides the option to allow rejection&lt;/em&gt;: Users can easily refuse to receive notifications, which respects their preferences and improves overall satisfaction.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  End
&lt;/h3&gt;

&lt;p&gt;Hopefully, this article provides enough insights and definitions of how to use &lt;strong&gt;push notifications&lt;/strong&gt; , as well as helping you understand how to implement push notifications in a reasonable way to keep users on track with your app, avoiding push notification work.&lt;/p&gt;

&lt;p&gt;See you in the next article on how to create push notifications with the PWA application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Find me:&lt;/em&gt; &lt;a href="https://bunhere.com"&gt;&lt;em&gt;bunhere.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am always looking for feedback on my writing, so please let me know what you think._ ❤️_&lt;/p&gt;
&lt;/blockquote&gt;




</description>
      <category>programming</category>
      <category>webappdevelopment</category>
      <category>notifications</category>
    </item>
    <item>
      <title>License Your code is right: A GitHub Must-Do</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Mon, 22 Jan 2024 05:12:27 +0000</pubDate>
      <link>https://dev.to/bunhere/license-your-code-is-right-a-github-must-do-35g1</link>
      <guid>https://dev.to/bunhere/license-your-code-is-right-a-github-must-do-35g1</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mWcZCaka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A4SG53_FPbUVQHbrAoUgqxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mWcZCaka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A4SG53_FPbUVQHbrAoUgqxg.png" alt="github license" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;When creating a repo on GitHub, you need to choose a license for your project. Have you ever wondered what each of these licenses means?&lt;/p&gt;

&lt;p&gt;A license is a legal document that defines the rights of users to access the source code of a project. There are many different types of licenses, each with different rights and restrictions.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Licenses
&lt;/h3&gt;

&lt;p&gt;Each type of license has its own terms and conditions, but they are generally divided into two main categories.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copyleft licenses require that all copies of the source code be distributed under the same license. This means that software licensed under the GPL is always open-source and free.&lt;/li&gt;
&lt;li&gt;Permissive licenses allow users to use and distribute the source code in any way they want, as long as they give credit to the author.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Follow this blog to research Github License
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Read: &lt;a href="https://bunhere.medium.com/license-your-code-right-a-github-must-do-61174c424438"&gt;Github License&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Find me: &lt;a href="https://bunhere.com"&gt;bunhere.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am always looking for feedback on my writing, so please let me know what you think.&lt;/em&gt; ❤️&lt;/p&gt;

</description>
      <category>license</category>
      <category>engineering</category>
      <category>github</category>
    </item>
    <item>
      <title>Create a portfolio website without coding. Why not??</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Wed, 17 Jan 2024 16:36:34 +0000</pubDate>
      <link>https://dev.to/bunhere/create-a-portfolio-website-without-coding-why-not-m39</link>
      <guid>https://dev.to/bunhere/create-a-portfolio-website-without-coding-why-not-m39</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--26BIxnZ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AjIhBwpGQ6XxI7m6Xb_kwow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--26BIxnZ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AjIhBwpGQ6XxI7m6Xb_kwow.png" alt="figma to code" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;figma to code&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introdution
&lt;/h3&gt;

&lt;p&gt;With the rapid development of AI, developers have been facing the question of whether AI can replace developers. The answer to this question depends on the perspective of each individual.&lt;/p&gt;

&lt;p&gt;In this article, I will focus on the fact that, thanks to a few AI tools, it is now possible for anyone to create a website, not just developers. You can be a designer, or simply have the skills to use Figma.&lt;/p&gt;

&lt;p&gt;Using Figma, you only need to have good aesthetic sense and a good layout for the interface to create your own portfolio website.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some Figma Plugins
&lt;/h3&gt;

&lt;p&gt;Readmore here: &lt;a href="https://bunhere.medium.com/create-a-portfolio-website-without-coding-why-not-519fe2a9ad78"&gt;Figma to Code&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Here is a product created using DhiWise, with some manual source code edits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9fAvRzWJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AX__4W1FrFyZNe9mEXjZ5TA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9fAvRzWJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AX__4W1FrFyZNe9mEXjZ5TA.png" alt="demo" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo: &lt;a href="https://figmatocode.bunhere.com"&gt;figmatocode.bunhere.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code demo: &lt;a href="https://github.com/loanngo99/figma-to-code-demo"&gt;BunDemo — Figma to code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am always looking for feedback on my writing, so please let me know what you think._ ❤️&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>nocodedevelopment</category>
      <category>webdesign</category>
      <category>figmaplugin</category>
    </item>
    <item>
      <title>Building a Pick-Me Game with Next.js and Google Sheets Integration API</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Fri, 24 Nov 2023 17:32:16 +0000</pubDate>
      <link>https://dev.to/bunhere/building-a-pick-me-game-with-nextjs-and-google-sheets-integration-api-34m1</link>
      <guid>https://dev.to/bunhere/building-a-pick-me-game-with-nextjs-and-google-sheets-integration-api-34m1</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hUaEAWEe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AdL06fcZOEkjfn35xYyOLHw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hUaEAWEe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AdL06fcZOEkjfn35xYyOLHw.png" alt="Google Sheet API" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Google Sheets Integration API&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In this article, we will delve into the exciting world of web development by creating a pick-me game using Next.js. Not only will we build an engaging user interface, but we’ll also explore the integration of Google Sheets to store user data effortlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Google Sheets API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--imwrQVvZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AIiyJCLuzEXBS0DAZS1YtYA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--imwrQVvZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AIiyJCLuzEXBS0DAZS1YtYA.png" alt="pickme" width="800" height="432"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;pickme demo&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://medium.com/@emma.ngo1110/building-a-pick-me-game-with-next-js-and-google-sheets-integration-api-0418b27a49b9"&gt;Read More&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Author: &lt;a href="https://bunhere.com"&gt;bunhere.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am always looking for feedback on my writing, so please let me know what you think.&lt;/em&gt; ❤️&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>softwaredevelopment</category>
      <category>googlesheetapi</category>
      <category>games</category>
    </item>
    <item>
      <title>Easy way to build your own SHORTEN URL WebApp with NextJS</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Sat, 11 Nov 2023 08:07:13 +0000</pubDate>
      <link>https://dev.to/bunhere/easy-way-to-build-your-own-shorten-url-webapp-with-nextjs-3jm4</link>
      <guid>https://dev.to/bunhere/easy-way-to-build-your-own-shorten-url-webapp-with-nextjs-3jm4</guid>
      <description>&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%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2AbfRZ-EZ9a-ZRaccKCWR1qg.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%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2AbfRZ-EZ9a-ZRaccKCWR1qg.png" alt="shorten url webApp"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;shorten url webApp&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Are you tired of sharing long and cumbersome URLs?&lt;/p&gt;

&lt;p&gt;Do you want to create your own URL-shortening service?&lt;/p&gt;

&lt;p&gt;While there are a lot of services available that help with this, they are not free.&lt;/p&gt;

&lt;p&gt;I offer my work on creating an open source Shorten Url in order to save costs (sometimes I just need to pay for the domain name).&lt;/p&gt;

&lt;p&gt;In this tutorial, I’ll walk you through the process of building your very own URL-shortening web application using Next.js, a popular React framework.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://medium.com/p/17ae9152a74f" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;
&lt;/h3&gt;

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

&lt;p&gt;&lt;em&gt;I am always looking for feedback on my writing, so please let me know what you think.&lt;/em&gt; ❤️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Turn your website into a mobile app with PWA</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Mon, 30 Oct 2023 07:25:17 +0000</pubDate>
      <link>https://dev.to/bunhere/turn-your-website-into-a-mobile-app-with-pwa-5089</link>
      <guid>https://dev.to/bunhere/turn-your-website-into-a-mobile-app-with-pwa-5089</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3x3FZtQ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A0TwclvnwRWb1b4Q5jDxzPA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3x3FZtQ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A0TwclvnwRWb1b4Q5jDxzPA.png" alt="pwa" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I used Lighthouse to analyze my website, I found out that there was one criterion that my website could not meet, and that was PWA.&lt;/p&gt;

&lt;p&gt;I’m starting to wonder what PWA is.&lt;/p&gt;

&lt;p&gt;PWA (Progressive Web Apps) is a web app that uses progressive enhancement to provide users with a more reliable experience, uses new capabilities to provide a more integrated experience, and can be installed. And, because it’s a web app, it can reach anyone, anywhere, on any device, all with a single codebase.&lt;/p&gt;

&lt;p&gt;Read my article about PWA &lt;a href="https://medium.com/p/5451838798cc"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webappdevelopment</category>
      <category>programming</category>
      <category>web</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Basic Overview of SEO for Fresher Web Developers</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Mon, 16 Oct 2023 07:29:15 +0000</pubDate>
      <link>https://dev.to/bunhere/basic-overview-of-seo-for-fresher-web-developers-4d9h</link>
      <guid>https://dev.to/bunhere/basic-overview-of-seo-for-fresher-web-developers-4d9h</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qy7pv1kqvpb8fdxoqm4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qy7pv1kqvpb8fdxoqm4.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SEO stands for &lt;b&gt;Search Engine Optimization&lt;/b&gt;, or search engine optimization. SEO is an important process in web development. A website that is SEO-optimized will be more likely to appear at the top of the search results, thereby attracting more visits.&lt;/p&gt;

&lt;p&gt;But for a fresher developer, you're going to focus on how to create or develop a website to ensure that it's functional or that the interface is eye-catching.&lt;/p&gt;

&lt;p&gt;In this article, I will only discuss the basic concepts and approaches to SEO in web development. &lt;br&gt;
&lt;a href="https://medium.com/p/7aebcd792679"&gt;Read the artical&lt;/a&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>seotips</category>
      <category>freshertechs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>[Material Web 1.0] Material Design with a Web Platform</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Sun, 01 Oct 2023 12:08:01 +0000</pubDate>
      <link>https://dev.to/bunhere/material-web-10-material-design-with-a-web-platform-2d0b</link>
      <guid>https://dev.to/bunhere/material-web-10-material-design-with-a-web-platform-2d0b</guid>
      <description>&lt;h3&gt;
  
  
  Introduce
&lt;/h3&gt;

&lt;p&gt;Material Design is a design language developed by Google in 2014. It is based on the idea of creating interfaces that are intuitive, beautiful, and responsive. Material Design uses a variety of elements to achieve this, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Motion&lt;/strong&gt; : Material Design uses motion to create a sense of depth and realism in interfaces. Buttons and other elements move in response to user input, and animations are used to guide users through tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth&lt;/strong&gt; : Material Design uses shadows and highlights to create a sense of depth in interfaces. This helps users understand the hierarchy of elements on a screen and identify what is interactive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Light and shadow&lt;/strong&gt; : Material Design uses light and shadow to simulate the way that light interacts with physical objects. This helps to create interfaces that are more realistic and engaging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color&lt;/strong&gt; : Material Design uses a vibrant color palette to create interfaces that are both visually appealing and easy to read.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://m3.material.io"&gt;Material.io&lt;/a&gt; includes extensive UX guidance as well as UI component implementations for Android, Flutter, and the Web. In this blog, I’ll concentrate on Material with the web application.&lt;/p&gt;

&lt;p&gt;Material 3, the most recent version, enables personal, adaptive, and expressive experiences ranging from dynamic color and improved accessibility to foundations for large screen layouts and design tokens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IZrix211--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AhTeR1tJCu1wMJibZsZP6Ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IZrix211--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AhTeR1tJCu1wMJibZsZP6Ow.png" alt="" width="800" height="909"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Material 3&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  The benefits of using Material Design
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It creates a consistent user experience across different platforms&lt;/strong&gt;. Whether a user is using an Android app, a web app, or a desktop app, they can expect a similar look and feel. This makes it easier for users to learn how to use new products and to switch between different devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is visually appealing&lt;/strong&gt;. Material Design uses a vibrant color palette and realistic animations to create interfaces that are both beautiful and engaging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is responsive&lt;/strong&gt;. Material Design interfaces are designed to be responsive to user input. This means that buttons and other elements move and change in response to user touch and gestures. This makes interfaces more intuitive and easier to use.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Material Web
&lt;/h3&gt;

&lt;p&gt;If you’re a frontend developer, you must be familiar with the use of library components.&lt;/p&gt;

&lt;p&gt;Material Web is Google’s component library for building applications that work in any web framework.&lt;/p&gt;

&lt;p&gt;Material Web, also known as Material Web Components or MWC, is a library of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components"&gt;web components&lt;/a&gt; that follows Google’s &lt;a href="https://m3.material.io"&gt;Material Design&lt;/a&gt; guidelines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hJPSFdDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A348UnKJVIw1kzGLI8zZ1uA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hJPSFdDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A348UnKJVIw1kzGLI8zZ1uA.png" alt="" width="800" height="323"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Material Web&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Web components
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components"&gt;Web components&lt;/a&gt; are custom HTML elements with encapsulated styles and behaviors. They work across many different frameworks (such as Lit, React, Vue, and Svelte) as well as web environments (such as Eleventy, Wordpress, and Ruby on Rails).&lt;/p&gt;
&lt;h4&gt;
  
  
  Design Token
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://m3.material.io/foundations/design-tokens/overview"&gt;Design tokens&lt;/a&gt; are the building blocks of all UI elements. In MWC, tokens are CSS custom properties that can be used to style components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2sHRoGHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AxC5wzihQ6vh_iNmMJT5n1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2sHRoGHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AxC5wzihQ6vh_iNmMJT5n1g.png" alt="" width="800" height="317"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Tokens ensure the same style values are used across design files and code&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Material 1.0
&lt;/h3&gt;

&lt;p&gt;Material 1.0 (released in September 2023) Web components are a collection of web components built on the Material Design language. These web components provide web developers with an easy way to create beautiful, user-friendly, and responsive web interfaces.&lt;/p&gt;

&lt;p&gt;The following are the features and components that are currently available on Material version 1:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Features&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Color theming
&lt;/li&gt;
&lt;li&gt;Typography theming&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Components&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Button
&lt;/li&gt;
&lt;li&gt;FAB
&lt;/li&gt;
&lt;li&gt;Icon button
&lt;/li&gt;
&lt;li&gt;Checkbox
&lt;/li&gt;
&lt;li&gt;Chips
&lt;/li&gt;
&lt;li&gt;Dialog
&lt;/li&gt;
&lt;li&gt;Divider
&lt;/li&gt;
&lt;li&gt;Elevation
&lt;/li&gt;
&lt;li&gt;Focus ring
&lt;/li&gt;
&lt;li&gt;List
&lt;/li&gt;
&lt;li&gt;Menu
&lt;/li&gt;
&lt;li&gt;Progress indicators
&lt;/li&gt;
&lt;li&gt;Radio
&lt;/li&gt;
&lt;li&gt;Ripple
&lt;/li&gt;
&lt;li&gt;Select
&lt;/li&gt;
&lt;li&gt;Slider
&lt;/li&gt;
&lt;li&gt;Switch
&lt;/li&gt;
&lt;li&gt;Tabs
&lt;/li&gt;
&lt;li&gt;Text field&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Quick start
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Install&lt;/strong&gt; Material web components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @material/web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Import&lt;/strong&gt; element definitions from &lt;code&gt;_@material/web/&amp;lt;component&amp;gt;/&amp;lt;component-variant&amp;gt;.js_&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;// index.js
import '@material/web/button/filled-button.js';
import '@material/web/button/outlined-button.js';
import '@material/web/checkbox/checkbox.js';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use&lt;/strong&gt; the  tag in HTML markup. Refer to the &lt;a href="https://github.com/material-components/material-web/blob/main/docs/components"&gt;component docs&lt;/a&gt; for more guidance on using each component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="module" src="./index.js"&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;label&amp;gt;
  Material 3
  &amp;lt;md-checkbox checked&amp;gt;&amp;lt;/md-checkbox&amp;gt;
&amp;lt;/label&amp;gt;

&amp;lt;md-outlined-button&amp;gt;Back&amp;lt;/md-outlined-button&amp;gt;
&amp;lt;md-filled-button&amp;gt;Next&amp;lt;/md-filled-button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  End.
&lt;/h3&gt;

&lt;p&gt;In this article, I’m just introducing you to the concept of material design and its applications in web application development.&lt;/p&gt;

&lt;p&gt;Material Web 1.0 has just been released, so there will be many features and components that are not available at the moment.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See you in the next post!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>materialdesign</category>
      <category>googletools</category>
      <category>webdev</category>
      <category>webui</category>
    </item>
    <item>
      <title>Native PHP: How to Start?</title>
      <dc:creator>Emma Ngo</dc:creator>
      <pubDate>Sat, 26 Aug 2023 05:31:05 +0000</pubDate>
      <link>https://dev.to/bunhere/native-php-how-to-start-9g3</link>
      <guid>https://dev.to/bunhere/native-php-how-to-start-9g3</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eeK5kwix--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/720/0%2AzgRYLXE72VKqK5Do" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eeK5kwix--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/720/0%2AzgRYLXE72VKqK5Do" alt="" width="720" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m a web developer, and the main language that I use is PHP. As you know, actually, more than 70–80 percent of the current website you can see is PHP.&lt;/p&gt;

&lt;p&gt;Before NativePHP, there was a lot of technical help needed to build PHP into an application (example: PHP Desktop). One of the most famous PHP frameworks currently is Laravel, and in &lt;a href="https://laravel-news.com/laracon-day-2-live-stream"&gt;Laracon 2023 day 2&lt;/a&gt; the event of Laravel, &lt;a href="https://www.linkedin.com/in/marcel-pociot-aa5045156"&gt;Marcel Pocio&lt;/a&gt;t introduced us to NativePHP with the topic "Writing Desktop Apps with PHP.”&lt;/p&gt;

&lt;p&gt;Actually, I tried it, and it was really easy. You just need 3 commands, and you will have an application based on a standard Laravel project. It looks like a package for Laravel, so don’t worry if you are a PHP player.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I start?
&lt;/h3&gt;

&lt;p&gt;If you have run the project with Laravel before, I believe you only need to run three commands before you can work with nativePHP&lt;/p&gt;

&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;

&lt;p&gt;composer require nativephp/electron&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DFZlOI-1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AcAYXVnN8aZ9L0S-2zS9Imw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DFZlOI-1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AcAYXVnN8aZ9L0S-2zS9Imw.png" alt="" width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can run your current Laravel project or create a new one.&lt;/p&gt;

&lt;h4&gt;
  
  
  Run the installer
&lt;/h4&gt;

&lt;p&gt;php artisan native:install&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SF7C8Tvf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A4bf8RJiedOUUXB_BC3dWTA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SF7C8Tvf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2A4bf8RJiedOUUXB_BC3dWTA.png" alt="" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the two commands above, nativePHP was successfully set up.&lt;/p&gt;

&lt;p&gt;The last thing is to run it.&lt;br&gt;&lt;br&gt;
php artisan native:serve&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jARPTJVr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/876/1%2A1HpXk_0XvErq5muHMA11bA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jARPTJVr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/876/1%2A1HpXk_0XvErq5muHMA11bA.png" alt="" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, you will get an application like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nXYt5fgg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AYHV_xSPK4ClFefYnriW9Vg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nXYt5fgg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AYHV_xSPK4ClFefYnriW9Vg.png" alt="" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is special?
&lt;/h3&gt;

&lt;p&gt;nativePHP has 5 highlight features; you can read more &lt;a href="https://nativephp.com/docs/1/getting-started/introduction"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Window management&lt;/li&gt;
&lt;li&gt;Menu management&lt;/li&gt;
&lt;li&gt;File management&lt;/li&gt;
&lt;li&gt;Database support (SQLite)&lt;/li&gt;
&lt;li&gt;Native notifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the thing that impresses me is “&lt;a href="https://nativephp.com/docs/1/the-basics/menu-bar"&gt;Menu Bar&lt;/a&gt;”&lt;br&gt;&lt;br&gt;
I really think that it gives me an application, not a web application anymore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gxO6vWkx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Al9_MFk-swgDoGLn7IAgyQw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gxO6vWkx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Al9_MFk-swgDoGLn7IAgyQw.png" alt="" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Menu bar label&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FXn0c1Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ac9p2CHKEYyT5l0bB6A7niQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FXn0c1Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2Ac9p2CHKEYyT5l0bB6A7niQ.png" alt="" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Menu bar Context Menu&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Byw9iYCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AHHnT_Bq6C0dZ0RFHjVtx-w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Byw9iYCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/1024/1%2AHHnT_Bq6C0dZ0RFHjVtx-w.png" alt="" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  End.
&lt;/h3&gt;

&lt;p&gt;This topic might be late because nativePHP was introduced in April 2023.&lt;br&gt;&lt;br&gt;
But I believe that not many people know about the interesting features of nativePHP.&lt;br&gt;&lt;br&gt;
As before, PHP has other technical support PHP to make an application like “PHP Desktop”.&lt;br&gt;&lt;br&gt;
There are a lot of opportunities for PHP developers like me to build our product from the ground up.&lt;br&gt;&lt;br&gt;
Let's try; I'm impressed by what you can do with your application!!&lt;br&gt;&lt;br&gt;
Have a nice day :))))&lt;/p&gt;

</description>
      <category>php</category>
      <category>nativephp</category>
      <category>laravel</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
