<?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: Luca Argentieri</title>
    <description>The latest articles on DEV Community by Luca Argentieri (@lucaargentieri).</description>
    <link>https://dev.to/lucaargentieri</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%2F337064%2F8f19946f-2222-4b5b-81fe-29df9b10f0f6.jpeg</url>
      <title>DEV Community: Luca Argentieri</title>
      <link>https://dev.to/lucaargentieri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucaargentieri"/>
    <language>en</language>
    <item>
      <title>A new GSAP Nuxt Module</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Mon, 17 Mar 2025 21:00:55 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/a-new-gsap-nuxt-module-4fj4</link>
      <guid>https://dev.to/lucaargentieri/a-new-gsap-nuxt-module-4fj4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Are you tired of importing GSAP into every file?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Are you tired of register every single plugin?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;You can’t wait to create your own animation, right?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;NOW YOU FINALLY CAN!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the new &lt;a href="https://github.com/LucaArgentieri/gsap-nuxt-module" rel="noopener noreferrer"&gt;GSAP Nuxt Module&lt;/a&gt; you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-import GSAP
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;defineNuxtConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;modules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gsap-nuxt-module&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elementRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;elementRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"elementRef"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;GSAP me!&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Dynamically Register Plugins
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;defineNuxtConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;modules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gsap-nuxt-module&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Draggable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Use provided Composables
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Draggable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useDraggable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elementRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;Draggable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;elementRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"elementRef"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Drag me!&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can find more examples &lt;a href="https://github.com/LucaArgentieri/gsap-nuxt-module/tree/main/playground/pages" rel="noopener noreferrer"&gt;here&lt;/a&gt; and test it in the &lt;a href="https://stackblitz.com/edit/gsap-nuxt-module?file=app.vue" rel="noopener noreferrer"&gt;playground&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;GSAP is a library that I use daily with Nuxt, I wanted to create a module that was in the first place comfortable for me, hoping it can be useful for many others.&lt;/p&gt;

&lt;p&gt;I wanted to make the installation and use of GSAP as simple and clean as possible, favoring the maximum developer experience.&lt;/p&gt;

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

&lt;p&gt;I have some new &lt;a href="https://github.com/LucaArgentieri/gsap-nuxt-module/issues/1" rel="noopener noreferrer"&gt;features&lt;/a&gt; to implement, for example I would like to integrate the plugins for GSAP Club members.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I contribute?
&lt;/h2&gt;

&lt;p&gt;Sure, the plugin is open source and available to anyone who wants to contribute to the wonderful Nuxt and GSAP communities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks and feedback
&lt;/h2&gt;

&lt;p&gt;Thank you for reading this article and I invite you to ask me questions, create issues on github, propose a feature and contribute to the module.&lt;/p&gt;

&lt;p&gt;Ah and if you want to click the star! ⭐&lt;/p&gt;




&lt;p&gt;Repo: &lt;a href="https://github.com/LucaArgentieri/gsap-nuxt-module" rel="noopener noreferrer"&gt;https://github.com/LucaArgentieri/gsap-nuxt-module&lt;/a&gt;&lt;br&gt;
NPM: &lt;a href="https://www.npmjs.com/package/gsap-nuxt-module" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/gsap-nuxt-module&lt;/a&gt;&lt;br&gt;
Nuxt: &lt;a href="https://nuxt.com/" rel="noopener noreferrer"&gt;https://nuxt.com/&lt;/a&gt;&lt;br&gt;
GSAP: &lt;a href="https://gsap.com/" rel="noopener noreferrer"&gt;https://gsap.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nuxt</category>
      <category>gsap</category>
      <category>opensource</category>
      <category>animation</category>
    </item>
    <item>
      <title>The notifications hell</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Wed, 27 Nov 2024 07:00:00 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/the-notificationss-hell-59g7</link>
      <guid>https://dev.to/lucaargentieri/the-notificationss-hell-59g7</guid>
      <description>&lt;p&gt;Notifications' Hell is a chaotic nightmare filled with abandoned work chats, aimless alerts, and endless distractions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExemRwMWs5M291eXVjZDZsMXFtdzNhY2cyMGFiYmhtMGt4OXpremw1MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FQvMlVkJ3XSSj9cOxDM%2Fgiphy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExemRwMWs5M291eXVjZDZsMXFtdzNhY2cyMGFiYmhtMGt4OXpremw1MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FQvMlVkJ3XSSj9cOxDM%2Fgiphy.webp" alt="i am in hell" width="440" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every day, we are overwhelmed by numerous notifications, media alerts, emails, and app reminders. At work, tools like Slack, Discord, and Telegram inundate our screens with updates, pings, and unread badges.&lt;/p&gt;

&lt;p&gt;For some, the constant chatter becomes overwhelming. As that little red number increases, the risk of missing important messages grows. The flood of notifications makes it difficult to stay focused.&lt;/p&gt;

&lt;h2&gt;
  
  
  Navigate the chaos
&lt;/h2&gt;

&lt;p&gt;How can we navigate the chaos of notifications and create a more effective communication workflow that enables us to focus on what truly matters?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExZWhwemY5and6bHYxb3Uzd3p6MXl4NmR5dHoxMzg5YmE0cmpleHRiNSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FnmE8YkDIaB1OE%2Fgiphy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExZWhwemY5and6bHYxb3Uzd3p6MXl4NmR5dHoxMzg5YmE0cmpleHRiNSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FnmE8YkDIaB1OE%2Fgiphy.webp" alt="notifications" width="300" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Sharing Is Caring
&lt;/h3&gt;

&lt;p&gt;What applications do you use to communicate with your team, and have you found any tools that enhance this process to make it smoother or more efficient?&lt;/p&gt;

&lt;p&gt;Discuss!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>workflow</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>What is the ideal workflow between the design and frontend team when you have tight deadlines?</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Tue, 19 Nov 2024 17:11:11 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/what-is-the-ideal-workflow-between-the-design-and-frontend-team-when-you-have-tight-deadlines-11dm</link>
      <guid>https://dev.to/lucaargentieri/what-is-the-ideal-workflow-between-the-design-and-frontend-team-when-you-have-tight-deadlines-11dm</guid>
      <description>&lt;p&gt;I’m sharing this short story to outline a workflow I experienced and invite you to share your thoughts on this fundamental topic.&lt;/p&gt;

&lt;p&gt;The last project I worked on (an e-commerce platform) took 5 weeks to complete the design and development phase.&lt;/p&gt;

&lt;p&gt;After receiving the brief, the design and dev teams immediately met to align on the project. They discussed technical constraints and how to deliver the first layout for client approval.  &lt;/p&gt;

&lt;p&gt;The design team presented the layout using &lt;a href="https://help.figma.com/hc/en-us/articles/360040318013-Play-your-prototypes" rel="noopener noreferrer"&gt;Figma's prototype preview&lt;/a&gt;, which allowed the client to experience the site with interactions and simulations. The client approved the design, and the team moved on to finalize their work.  &lt;/p&gt;

&lt;p&gt;When development started, the dev team encountered significant issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Figma file was unorganized, with layouts scattered.
&lt;/li&gt;
&lt;li&gt;There were no &lt;a href="https://www.youtube.com/watch?v=9xiRHz72du4" rel="noopener noreferrer"&gt;components&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=AwnJyGV-3Zs" rel="noopener noreferrer"&gt;variables&lt;/a&gt;, or hover states.
&lt;/li&gt;
&lt;li&gt;The only way to understand behaviors was through presentation mode.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the rush to meet deadlines, the design team prioritized the client experience but overlooked the needs of the developers. The work was completed in time but this led to inefficiencies and frustration during the development phase.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;In order to maintain a healthy work environment and ensure seamless collaboration between design and development, what can be done?  &lt;/p&gt;

&lt;h3&gt;
  
  
  Let's Discuss
&lt;/h3&gt;

&lt;p&gt;Has something similar happened to you? Share your thoughts and ideas to help avoid these situations and improve team workflows!  &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>design</category>
      <category>frontend</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What is the ideal workflow between backend and frontend teams when you have short deadlines?</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Wed, 13 Nov 2024 07:19:36 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/what-is-the-ideal-workflow-between-backend-and-frontend-teams-when-you-have-short-deadlines-a3b</link>
      <guid>https://dev.to/lucaargentieri/what-is-the-ideal-workflow-between-backend-and-frontend-teams-when-you-have-short-deadlines-a3b</guid>
      <description>&lt;p&gt;Unfortunately, it’s not always possible to have ideal development times, so I was wondering if it is possible to improve the workflow between two teams (backend and frontend in my case), improving the development experience for everyone.&lt;/p&gt;

&lt;p&gt;Feel free to share your workflow, articles, or just your thoughts.&lt;/p&gt;

&lt;p&gt;Discuss!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A new customizable vue video player</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Wed, 24 Jan 2024 13:47:42 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/a-new-customizable-vue-video-player-4mle</link>
      <guid>https://dev.to/lucaargentieri/a-new-customizable-vue-video-player-4mle</guid>
      <description>&lt;p&gt;Hey developers!&lt;/p&gt;

&lt;p&gt;Today, my team at &lt;a href="https://github.com/display-design-studio"&gt;display.studio&lt;/a&gt; released a new Vue library! We are excited to contribute to the open-source community by creating useful tools that are highly customizable and easy to implement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/display-design-studio/vue-player"&gt;Library Link&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  First of all, what is it and why?
&lt;/h4&gt;

&lt;p&gt;There are a lot of video player libraries but we found them hard to customize, heavy, and not easy to use in our nuxt projects.&lt;br&gt;
Our library is available for every vue and nuxt project.&lt;br&gt;
&lt;a href="https://github.com/display-design-studio/vue-player?tab=readme-ov-file#installation"&gt;Guide to installation&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Our goal
&lt;/h4&gt;

&lt;p&gt;We have developed a wrapper with minimal logic, which provides you with all the &lt;a href="https://github.com/display-design-studio/vue-player?tab=readme-ov-file#props"&gt;props&lt;/a&gt; and &lt;a href="https://github.com/display-design-studio/vue-player?tab=readme-ov-file#events"&gt;events&lt;/a&gt; of the video tag.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VuePlayer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@display-studio/vue-player&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;VuePlayer&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;poster=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
           &lt;span class="nt"&gt;&amp;lt;MyCustomControls&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/VuePlayer&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, the controls of the native video tag are disabled to allow you to utilize your custom controls.&lt;/p&gt;

&lt;p&gt;Inside the VuePlayer instance, you can use the useVuePlayer function which provides you with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;togglePlay&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;toggleMute&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;videoMuted&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these elements, you can customize your controls with different text or SVG.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useVuePlayer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@display-studio/vue-player&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;player&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useVuePlayer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vue-player__controls"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click=&lt;/span&gt;&lt;span class="s"&gt;"player.togglePlay()"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vue-player__controls-toggleplay"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{{&lt;/span&gt; &lt;span class="nx"&gt;player&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;playing&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pause&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;play&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="si"&gt;}}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click=&lt;/span&gt;&lt;span class="s"&gt;"player.toggleMute()"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vue-player__controls-togglemute"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{{&lt;/span&gt; &lt;span class="nx"&gt;player&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;videoMuted&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;unmute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="si"&gt;}}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We started a &lt;a href="https://github.com/display-design-studio/vue-player/discussions/1"&gt;discussion on GitHub&lt;/a&gt; to talk about new features such as implementing a fullscreen function in useVuePlayer to customize and place where you prefer.&lt;/p&gt;

&lt;p&gt;Anyone who wants to contribute is welcome!&lt;br&gt;
We are open to listening to feedback on bugs and new feature requests.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;

</description>
      <category>vue</category>
      <category>video</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Shoe Discord Bot</title>
      <dc:creator>Luca Argentieri</dc:creator>
      <pubDate>Mon, 07 Feb 2022 20:06:26 +0000</pubDate>
      <link>https://dev.to/lucaargentieri/shoe-discord-bot-390j</link>
      <guid>https://dev.to/lucaargentieri/shoe-discord-bot-390j</guid>
      <description>&lt;p&gt;Hello, &lt;strong&gt;wonderful people&lt;/strong&gt; of the internet and welcome to my first post in dev.to community.&lt;br&gt;
I'm here today to present my shoe discord bot and all its features.&lt;/p&gt;

&lt;h2&gt;
  
  
  - First of all, why? 💡
&lt;/h2&gt;

&lt;p&gt;Well, I had in mind to build a bot to stay updated on the prices and upcoming releases of the sneakers. The biggest problem was finding the right API, but we managed to find a guy who did a huge job, put together: StockX FlightClub, Goat, and Stadium Goods API, cool right?&lt;br&gt;
With this mega API, we started studying discord.js and the project started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shoe Discord Bot 🤖👟
&lt;/h2&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%2Fuser-images.githubusercontent.com%2F57524787%2F189426406-07847a3e-2e7a-4085-8f75-e299146eab81.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%2Fuser-images.githubusercontent.com%2F57524787%2F189426406-07847a3e-2e7a-4085-8f75-e299146eab81.PNG" alt="Cattura"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Idea 💡
&lt;/h2&gt;

&lt;p&gt;We had in mind to build a bot to stay updated on the prices and upcoming releases of the sneakers.&lt;br&gt;
The biggest problem was finding the right API, but we managed to find a guy who did a huge job, put together: StockX FlightClub, Goat and Stadium Goods API, cool right?&lt;/p&gt;

&lt;p&gt;With this mega api we started studying discord.js and the project started.&lt;/p&gt;

&lt;h2&gt;
  
  
  API 👟
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/druv5319/Sneaks-API" rel="noopener noreferrer"&gt;Sneaks-API&lt;/a&gt; by &lt;a href="https://github.com/druv5319" rel="noopener noreferrer"&gt;@druv5319&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A StockX API, FlightClub API, Goat API, and Stadium Goods API all in one.&lt;/p&gt;

&lt;p&gt;Sneaks API is a sneaker API built using Node.JS, Express, and Got. The Sneaks API allows users to get essential sneaker content such as images, product links and even prices from resell sites while also collecting data and storing it within a database.&lt;br&gt;
&lt;a href="https://github.com/druv5319/Sneaks-API" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup 📦
&lt;/h2&gt;

&lt;h3&gt;
  
  
  First create an application from &lt;a href="https://discord.com/developers/applications" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go in Bot and create a new bot&lt;/li&gt;
&lt;li&gt;Go in 0Auth2/General&lt;/li&gt;
&lt;li&gt;Select in AUTHORIZATION METHOD In-App Authorization&lt;/li&gt;
&lt;li&gt;Tick bot in SCOPES&lt;/li&gt;
&lt;li&gt;Tick administrator in BOT PERMISSIONS &lt;/li&gt;
&lt;li&gt;Copy CLIENT ID&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Now move in Bot tab and tick
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Presence Intent&lt;/li&gt;
&lt;li&gt;Server Members Intent&lt;/li&gt;
&lt;li&gt;Message Content Intent&lt;/li&gt;
&lt;/ul&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%2Fuser-images.githubusercontent.com%2F57524787%2F190902625-7265b502-bfa4-43ac-a949-f59a3fec7369.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%2Fuser-images.githubusercontent.com%2F57524787%2F190902625-7265b502-bfa4-43ac-a949-f59a3fec7369.PNG" alt="Bot message content intent"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Invite the bot in your discord server with this link template: &lt;a href="https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&amp;amp;scope=bot" rel="noopener noreferrer"&gt;https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&amp;amp;scope=bot&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Clone the repo
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/LucaArgentieri/Shoe-Discord-Bot.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Run
&lt;/h4&gt;



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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create a .env file and put bot token (you can copy it from dev portal -&amp;gt; bot -&amp;gt; token)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BOT_TOKEN_KEY=DISCORD_BOT_TOKEN_HERE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Run
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Use commands in chat! 🎉
&lt;/h4&gt;

&lt;h5&gt;
  
  
  You can use heroku or others for host your bot and have fun
&lt;/h5&gt;

&lt;h2&gt;
  
  
  Commands 🤖
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Some names are temporary
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;$help&lt;/strong&gt;&lt;br&gt;
For information on generic resell prices or based on the desired number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$retail Yeezy&lt;/strong&gt;(example)&lt;br&gt;
To get information about a shoe at retail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$nextDrop&lt;/strong&gt;&lt;br&gt;
To stay updated on upcoming releases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$todayDrop&lt;/strong&gt;&lt;br&gt;
To stay updated on the releases of the day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$monthDrop&lt;/strong&gt;&lt;br&gt;
To stay updated on the releases of the current month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$infoShoesNumber Yeezy 11&lt;/strong&gt;(example)&lt;br&gt;
To get information about a shoe with number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$mostPopular&lt;/strong&gt;&lt;br&gt;
To see the most popular scapre in the last three months.&lt;/p&gt;




&lt;h4&gt;
  
  
  Thanks to all &lt;a href="https://github.com/LucaArgentieri/Shoe-Discord-Bot/graphs/contributors" rel="noopener noreferrer"&gt;Contributors&lt;/a&gt; 👩‍💻👨‍💻
&lt;/h4&gt;

&lt;h4&gt;
  
  
  If you like star ⭐️ and share!
&lt;/h4&gt;

&lt;p&gt;This is a personal project that I use to learn, everyone is free to use it and can contribute to the code.&lt;/p&gt;

&lt;p&gt;I let you the &lt;a href="https://github.com/LucaArgentieri/Shoe-Discord-Bot" rel="noopener noreferrer"&gt;link to my repo&lt;/a&gt; and thank you for reading, see you in the next post.&lt;/p&gt;

&lt;p&gt;Bye!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>discord</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
