<?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: Syki</title>
    <description>The latest articles on DEV Community by Syki (@syki).</description>
    <link>https://dev.to/syki</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%2F766907%2F497d7a5c-7f0a-4ad9-b27a-3484813b92c7.png</url>
      <title>DEV Community: Syki</title>
      <link>https://dev.to/syki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syki"/>
    <language>en</language>
    <item>
      <title>Personal Projects: The Value of Building for Yourself</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sat, 31 Aug 2024 10:14:18 +0000</pubDate>
      <link>https://dev.to/syki/personal-projects-the-value-of-building-for-yourself-2c2f</link>
      <guid>https://dev.to/syki/personal-projects-the-value-of-building-for-yourself-2c2f</guid>
      <description>&lt;p&gt;In the world of technology and innovation, there's a special value in building projects for yourself. These aren't just hobbies or side gigs, they are opportunities for growth, learning, and sometimes, serendipitous success. Personal projects are where you experiment, explore, and expand your capabilities, often without the constraints that come with professional work. They can be incredibly rewarding, both personally and professionally.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Power of Passion Projects
&lt;/h2&gt;

&lt;p&gt;From a young age, I've always been drawn to creating things. Whether it was recording tutorials while playing video games or starting a blog when I got into video editing, these personal projects have always been a way for me to dive deeper into my interests. When I began programming, it was natural for me to start sharing my code through open-source projects or building simple apps that I made public. These weren't just exercises in coding, they were ways to solve problems I encountered, learn new skills, and, most importantly, satisfy my curiosity.&lt;/p&gt;

&lt;p&gt;Many people underestimate the importance of personal projects. They often see them as trivial or non-essential compared to formal education or job experience. But when you look at the job market, particularly in tech, the people who stand out are often those with a story—a portfolio of personal projects that showcase their passion, creativity, and problem-solving abilities. These individuals have something unique to offer, something that can't be taught in a classroom or found on a resume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsyki.dev%2Fuploads%2Fprojects-syki-screen.webp" 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%2Fsyki.dev%2Fuploads%2Fprojects-syki-screen.webp" alt="Syki Personal Projects"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning by Doing
&lt;/h2&gt;

&lt;p&gt;One of the most significant benefits of personal projects is the opportunity to learn by doing. Let's say you want to master a new database system. You could read books, take courses, or watch tutorials, but until you apply that knowledge in a real project, it remains theoretical. Personal projects force you to solve real problems, often leading to a much deeper understanding of the technology.&lt;/p&gt;

&lt;p&gt;For example, I remember when I wanted to learn about a new database. Instead of just studying it, I created a project that depended on it. The experience was invaluable. I encountered challenges that I wouldn't have faced in a controlled learning environment, and overcoming those challenges gave me a level of expertise that I wouldn't have achieved otherwise.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsyki.dev%2Fuploads%2Fgo-learn-screen.webp" 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%2Fsyki.dev%2Fuploads%2Fgo-learn-screen.webp" alt="Syki Learning by Doing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Solving Real Problems
&lt;/h2&gt;

&lt;p&gt;Building for yourself often means solving your own problems. This could be as simple as writing a script to automate a repetitive task or creating a tool that improves your workflow. The beauty of personal projects is that they are driven by your needs and frustrations, which means the solutions you come up with are often highly practical and effective.&lt;/p&gt;

&lt;p&gt;These solutions are not just about making your life easier, they also showcase your ability to identify problems and create functional solutions—skills that are highly valued in any professional setting. Moreover, the projects you build for yourself are likely to resonate with others who have similar problems, potentially leading to broader adoption or even turning your project into a product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.dev/tools/robots-txt-tester" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsyki.dev%2Fuploads%2Frobots-txt-tester-screen.webp" alt="Robots.txt Tester"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal Projects as Bets
&lt;/h2&gt;

&lt;p&gt;Personal projects are like placing bets. Most of these bets won't pay off in a big way. Some may lead to nothing more than a learning experience, while others might have a small impact. But every once in a while, you'll hit the jackpot. A project you started for personal use might turn out to be exactly what a large audience needs, leading to unexpected success.&lt;/p&gt;

&lt;p&gt;The beauty of these bets is that you can't really lose. Even if a project doesn't take off, you've gained valuable experience and built something that can be added to your portfolio. The time spent on personal projects is never wasted, as every failure teaches you something new and brings you one step closer to success.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/marc_louvion/status/1663894345802567683" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsyki.dev%2Fuploads%2Fmarc-bets-screen-tweet.webp" alt="Marc Lou tweet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Snowball Effect
&lt;/h2&gt;

&lt;p&gt;Another fascinating aspect of personal projects is their potential to grow and evolve over time, often with minimal ongoing effort. Some projects, especially those that involve automation, social media bots, or search engine optimization (SEO), can start to generate returns passively. What begins as a small, personal endeavor can snowball into something much larger, growing and thriving without constant attention.&lt;/p&gt;

&lt;p&gt;For instance, a script you write to automate a task might catch on with others who need the same solution, leading to widespread use. Or a blog you start to share your thoughts might begin to attract a significant following, eventually becoming a platform that generates income or opportunities.&lt;/p&gt;

&lt;p&gt;This snowball effect is a powerful reminder that personal projects have the potential to grow beyond your initial expectations. They can create value for others, and in doing so, create value for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/npm_notifier" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsyki.dev%2Fuploads%2Fnpm-notifier-tweeter-screen.webp" alt="NPM Notifier tweeter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Personal projects are more than just hobbies, they are investments in yourself. They offer a unique way to learn, solve real problems, and potentially create something of significant value. Whether or not these projects lead to financial success, they always lead to personal and professional growth. Building for yourself is not just about making something useful, it's about crafting your own story, developing your skills, and placing bets that could one day pay off in unexpected ways.&lt;/p&gt;

&lt;p&gt;In a world where formal education and job experience often take center stage, personal projects are the wild cards that can set you apart. They show that you're not just following a path laid out by others, but that you're actively creating your own. And that, in itself, is incredibly valuable.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>From Idea To MVP: 5 Lessons Learned</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sun, 25 Aug 2024 12:44:33 +0000</pubDate>
      <link>https://dev.to/syki/from-idea-to-mvp-5-lessons-learned-1mpa</link>
      <guid>https://dev.to/syki/from-idea-to-mvp-5-lessons-learned-1mpa</guid>
      <description>&lt;p&gt;Building a startup is akin to embarking on a thrilling yet arduous journey. Every startup begins with a spark of an idea and the drive to transform it into a tangible product. This blog narrates the journey of turning ideas into Minimum Viable Products (MVPs), drawing lessons from my experiences with various projects. Through these stories, I aim to illuminate the pivotal lessons that can guide aspiring entrepreneurs from conceptualization to the creation of an MVP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed Over Perfection
&lt;/h2&gt;

&lt;p&gt;One of the most critical lessons from my startup experiences was the necessity of speed. In the highly competitive tech landscape, particularly when developing a startup after regular work hours, rapid iteration is crucial. Competitors are likely working full-time, and the market does not wait. If a Proof of Concept (POC) cannot be developed within a week or two, or if an MVP takes more than a couple of months, it signifies either a flawed definition of these stages or an unrealistic idea. Simplification and focusing on core functionalities are vital. The market will guide further development based on real user feedback, not on preemptive, elaborate features.&lt;/p&gt;

&lt;p&gt;The truth is Mark Zuckerberg was right when he said, "Move fast and break things.". He changed the motto to "Move fast with stable infrastructure.", becuase the company grew and the motto had to change. But the idea is the same, you have to move fast, you have to make mistakes, you have to learn from them and you have to improve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Meta_Platforms#History" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JQ0yqqtU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/move-fast-and-break-things.webp" alt="Move fast and break things. Mark Zuckerberg" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Embrace Simplicity
&lt;/h2&gt;

&lt;p&gt;In developing my projects, the temptation to over-engineer was strong. For instance, implementing Redis for caching blog posts when expecting a surge of users post-launch. In reality, such optimizations are rarely needed at the initial stage. A more pragmatic approach is to tackle existing problems rather than hypothetical ones. If the MVP is simple and efficient, adding complexity can be done incrementally based on user demand and observed bottlenecks. This not only speeds up initial development but also ensures resources are focused on actual user needs. As Paul Graham famously said, &lt;a href="https://www.paulgraham.com/ds.html" rel="noopener noreferrer"&gt;Do things that don't scale&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/DanKulkov/status/1816765032434483249" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KMilL6XV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/overengineer-tweet.webp" alt="I will not overengineer before the laounch. Dan Kulkov tweet" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prioritize Speed Over Cost
&lt;/h2&gt;

&lt;p&gt;Cost management in startups is a delicate balance. While it is tempting to minimize expenses, doing so at the cost of development speed can be detrimental. This is particularly relevant for projects where the founder is also a programmer. Investing in resources that accelerate development is often more beneficial than cost-cutting measures that slow progress. Time is a critical asset in the early stages of a startup. For example, hiring a freelancer to handle non-core tasks or using paid tools to streamline development can free up time for core development, leading to faster iteration cycles and quicker market entry. The opportunity cost of saving money at the expense of development speed can be significantly higher than the financial expenditure itself.&lt;/p&gt;

&lt;p&gt;The truth is that as technical founders we often want to prove to ourselves that we can do something from scratch, and it's great if we do a project to learn something. However, if we want to do a project that is supposed to make money and be great, doing things from scratch because they will be better than others or will be cheaper can kill our project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/x_syki/status/1818468565311226190" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RPr2G20U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/tweet-server-cost.webp" alt="Tweet server cost" width="800" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing the Right Team
&lt;/h2&gt;

&lt;p&gt;The success of a startup often hinges on the founding team. Deciding whether to go solo or find co-founders is a crucial decision. Each approach has its advantages and challenges. Working solo allows for quick decision-making and a clear vision. However, for more complex projects, having a co-founder with complementary skills is indispensable. The key is to assess whether the idea can be realistically executed solo or if it requires a team. If the latter, finding co-founders who bring diverse skills and share the vision can significantly enhance the startup’s potential for success. This decision should also consider the founder's ability to raise funds or bootstrap the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=A4SLDQDXdp0" rel="noopener noreferrer"&gt;Keys To Successful Co-Founder Relationships | Startup School&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the Simplest Possible Product
&lt;/h2&gt;

&lt;p&gt;The experience with my notifier project underscored the importance of starting with the bare minimum. The first production version should focus on the core functionality—one that solves the primary problem without any frills. In this case, a simple node script would have sufficed to test the concept. If the idea gains traction, additional features can be introduced iteratively. This approach ensures that the MVP is launched quickly, feedback is gathered early, and unnecessary complexities do not hinder progress.&lt;/p&gt;

&lt;p&gt;It always surprises me how many features can be cut from the initial version of a product. It's easy to get carried away with grand ideas, but the reality is that most users only need a fraction of the features we imagine. By focusing on the core functionality, we can deliver a product that meets the immediate needs of users and iterate based on their feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The journey from idea to MVP is fraught with challenges and decisions that shape the future of a startup. The experiences highlight five critical lessons: prioritize speed, embrace simplicity, balance cost and development pace, carefully consider the team structure, and focus on minimal initial functionality. By adhering to these principles, aspiring entrepreneurs can navigate the tumultuous early stages of their startup journey more effectively, increasing their chances of success in a competitive landscape.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>startup</category>
      <category>productivity</category>
      <category>development</category>
    </item>
    <item>
      <title>Stop Using Express, Start Using NestJS</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Mon, 26 Feb 2024 08:13:24 +0000</pubDate>
      <link>https://dev.to/syki/stop-using-express-start-using-nestjs-1j04</link>
      <guid>https://dev.to/syki/stop-using-express-start-using-nestjs-1j04</guid>
      <description>&lt;p&gt;As the JavaScript ecosystem continues to evolve, the choice of frameworks for building backend applications becomes crucial for developers aiming for efficiency, scalability, and maintainability. While Express.js has been a long-standing favorite due to its simplicity and flexibility, NestJS emerges as a powerful alternative, especially for large-scale applications. This article delves deep into why NestJS should be the preferred choice over pure Express for modern backend development.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://expressjs.com/"&gt;Express Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/expressjs/express"&gt;Express GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nestjs.com/"&gt;NestJS Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nestjs/nest"&gt;NestJS GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Case for Moving Beyond Express
&lt;/h2&gt;

&lt;p&gt;Express.js has undeniably set the standard for Node.js web servers with its minimalist approach, offering developers the freedom to structure their applications as they see fit. However, this minimalism often leads to scalability and maintainability issues as applications grow. Express provides the basics—routing, middleware, and simple request handling—but leaves much of the architectural decisions and advanced features to the developer. This can result in varied project structures, inconsistency in coding practices, and the added burden of manually integrating third-party libraries for common needs such as validation, authentication, and error handling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Express.js in Practice
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&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="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&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;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World!&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="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Server running on port 3000&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While the above example highlights Express's simplicity, it masks the complexity that arises when building more sophisticated applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  NestJS: A Comprehensive Solution
&lt;/h2&gt;

&lt;p&gt;NestJS is designed from the ground up to address the challenges posed by complex backend applications. It extends and abstracts Express (and Fastify) functionalities, providing a robust framework that incorporates the best practices of software development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Benefits of NestJS
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;typescript-Based&lt;/strong&gt;: NestJS leverages typescript, offering strong typing and object-oriented programming capabilities, which significantly improve code quality and developer productivity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modular Structure&lt;/strong&gt;: NestJS promotes a modular architecture, making it easier to organize and manage code, especially in large projects. Modules encapsulate providers, controllers, and services, fostering clean separation of concerns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decorators and Metadata&lt;/strong&gt;: By utilizing decorators, NestJS provides an expressive syntax for routing, dependency injection, and class validation, reducing boilerplate and improving readability.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cats&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CatsController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;This action returns all cats&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;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in Application Logic Abstractions&lt;/strong&gt;: Unlike Express, NestJS comes with built-in support for complex application features like guards for authentication, interceptors for response mapping, pipes for validation and transformation, and filters for exception handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dependency Injection&lt;/strong&gt;: NestJS's dependency injection container allows for loose coupling and enhanced testability, streamlining the development of scalable applications.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CatsService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;catsRepository&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CatsRepository&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

    &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Cat&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="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;catsRepository&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findAll&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;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comprehensive Documentation and Tooling&lt;/strong&gt;: NestJS boasts extensive documentation and a CLI tool for generating boilerplate code, which accelerates development and ensures adherence to framework conventions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with ORM and Microservices&lt;/strong&gt;: NestJS seamlessly integrates with popular ORMs like TypeORM, Sequelize, and Mongoose, and supports microservices with a variety of transport layers, such as MQTT, Redis, and NATS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;First-Class Validation and Serialization&lt;/strong&gt;: Utilizing class-validator and class-transformer packages, NestJS simplifies data validation and serialization, enforcing data integrity and security.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Post&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;UsePipes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ValidationPipe&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(@&lt;/span&gt;&lt;span class="nd"&gt;Body&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="nx"&gt;createCatDto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CreateCatDto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;catsService&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;createCatDto&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;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Swagger Integration for API Documentation&lt;/strong&gt;: NestJS provides easy integration with Swagger for automatic API documentation generation, making it easier to create and maintain up-to-date API docs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance and Flexibility&lt;/strong&gt;: Despite its higher-level abstractions, NestJS does not sacrifice performance. Developers can choose between the Express and Fastify adapters based on their needs, optimizing for speed or flexibility.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Transitioning from Express to NestJS
&lt;/h2&gt;

&lt;p&gt;Adopting NestJS in place of Express for new projects is straightforward, thanks to the Nest CLI and the framework's alignment with modern JavaScript features. For existing Express applications, incremental adoption is possible by gradually refactoring parts of the application to NestJS, taking advantage of its advanced features while maintaining the core application logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;NestJS represents a significant step forward in the development of scalable, maintainable backend applications in Node.js. It builds on the foundations laid by Express, addressing its limitations through a comprehensive set of features that facilitate the development of complex applications. By choosing NestJS, developers can leverage modern JavaScript features, enjoy a rich ecosystem of integrations, and follow best practices for software architecture, all of which contribute to building high-quality applications more efficiently.&lt;/p&gt;

&lt;p&gt;For those contemplating the switch or starting a new project, NestJS offers a compelling set of advantages that make it a superior choice for modern backend development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>typescript</category>
      <category>express</category>
    </item>
    <item>
      <title>Your First GitHub Contribution</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sun, 11 Feb 2024 10:18:23 +0000</pubDate>
      <link>https://dev.to/syki/your-first-github-contribution-29f2</link>
      <guid>https://dev.to/syki/your-first-github-contribution-29f2</guid>
      <description>&lt;p&gt;Contributing to open source projects is a rewarding journey that not only enhances your coding skills but also enriches the global developer community. In this detailed guide, we'll explore what contributions entail, their value, how to find projects in need of help, and the steps to make your contribution meaningful.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Contribution?
&lt;/h2&gt;

&lt;p&gt;In the context of open source, a contribution is any input that helps improve a project. This can range from submitting code, fixing bugs, improving documentation, designing graphics, to even participating in project discussions. Contributions are the lifeblood of open source projects, allowing them to grow and evolve over time.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Skill Enhancement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Contributing to open source projects exposes you to real-world coding challenges, allowing you to hone your programming skills. It's an opportunity to work with experienced developers from around the globe, learn new technologies, and understand best practices in software development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Community and Networking&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The open source community is vast and welcoming. By contributing, you become part of a community that values collaboration and innovation. Networking within this community can lead to job opportunities, mentorships, and collaborations on future projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Professional Growth&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Having open source contributions in your portfolio showcases your skills and dedication to potential employers. It demonstrates your ability to collaborate on projects, solve complex problems, and contribute to the tech community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Personal Satisfaction&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There's a deep sense of satisfaction in knowing that your work is being used by people worldwide. Contributing to open source can also be a way to support tools or projects you love and rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding a Project to Contribute To
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Explore GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;GitHub is the largest host of source code in the world. Start by exploring &lt;a href="https://github.com/explore"&gt;trending repositories&lt;/a&gt;, checking out projects you use and love, or using GitHub’s “Explore” feature to find projects that match your interests.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Look for 'Good First Issue' Labels&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Many projects use labels like &lt;code&gt;good first issue&lt;/code&gt; or &lt;code&gt;help wanted&lt;/code&gt; to indicate tasks suitable for newcomers. These issues can provide a gentle introduction to the project's codebase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OIhbmgxO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/good-first-issue.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OIhbmgxO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/good-first-issue.webp" alt="Good First Issue" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Contribute to What You Use&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Consider contributing to libraries or frameworks you use regularly. Familiarity with the project can make it easier to identify bugs or areas for improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Make Your Contribution
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Understand the Project's Contribution Guidelines&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Most projects have a CONTRIBUTING.md file or a section in their README.md with guidelines on how to contribute. Read these instructions carefully to understand the process and expectations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh4AxtSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/contributiong-md-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh4AxtSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/contributiong-md-screen.webp" alt="Contribution Guidelines" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Set Up Your Development Environment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Fork and clone the repository to your local machine and follow the project's setup instructions. Ensure you can build the project and run tests before making changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pick an Issue and Communicate&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Choose an issue to work on and notify the project maintainers that you're interested in working on it. This prevents duplicate efforts and allows maintainers to provide guidance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f1rmzFNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/issue-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f1rmzFNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/issue-screen.webp" alt="Issue" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Make Your Changes and Write Tests&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Implement your solution in a clean, well-documented manner. Write tests to cover your changes, ensuring that your contribution doesn't introduce new bugs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Submit a Pull Request (PR)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you're satisfied with your changes, push your branch to GitHub and open a pull request. Provide a clear description of the problem and how your changes address it. Engage in the review process, responding to feedback and making adjustments as necessary.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k8ZCjxRo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/pull-request-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k8ZCjxRo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/pull-request-screen.webp" alt="Pull Request" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Celebrate Your Contribution!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Regardless of the outcome, submitting a pull request is an achievement. Celebrate your contribution to the open source world!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Contributing to open source is a pathway to learning, growth, and collaboration. It's about more than just code; it's a way to give back, challenge yourself, and connect with like-minded individuals. Start small, stay persistent, and watch as your contributions make a difference in the open source ecosystem.&lt;/p&gt;

&lt;p&gt;Happy contributing!&lt;/p&gt;

</description>
      <category>github</category>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Your First GitHub Contribution</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sun, 11 Feb 2024 10:18:23 +0000</pubDate>
      <link>https://dev.to/syki/your-first-github-contribution-2nip</link>
      <guid>https://dev.to/syki/your-first-github-contribution-2nip</guid>
      <description>&lt;p&gt;Contributing to open source projects is a rewarding journey that not only enhances your coding skills but also enriches the global developer community. In this detailed guide, we'll explore what contributions entail, their value, how to find projects in need of help, and the steps to make your contribution meaningful.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Contribution?
&lt;/h2&gt;

&lt;p&gt;In the context of open source, a contribution is any input that helps improve a project. This can range from submitting code, fixing bugs, improving documentation, designing graphics, to even participating in project discussions. Contributions are the lifeblood of open source projects, allowing them to grow and evolve over time.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Skill Enhancement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Contributing to open source projects exposes you to real-world coding challenges, allowing you to hone your programming skills. It's an opportunity to work with experienced developers from around the globe, learn new technologies, and understand best practices in software development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Community and Networking&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The open source community is vast and welcoming. By contributing, you become part of a community that values collaboration and innovation. Networking within this community can lead to job opportunities, mentorships, and collaborations on future projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Professional Growth&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Having open source contributions in your portfolio showcases your skills and dedication to potential employers. It demonstrates your ability to collaborate on projects, solve complex problems, and contribute to the tech community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Personal Satisfaction&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There's a deep sense of satisfaction in knowing that your work is being used by people worldwide. Contributing to open source can also be a way to support tools or projects you love and rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding a Project to Contribute To
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Explore GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;GitHub is the largest host of source code in the world. Start by exploring &lt;a href="https://github.com/explore"&gt;trending repositories&lt;/a&gt;, checking out projects you use and love, or using GitHub’s “Explore” feature to find projects that match your interests.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Look for 'Good First Issue' Labels&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Many projects use labels like &lt;code&gt;good first issue&lt;/code&gt; or &lt;code&gt;help wanted&lt;/code&gt; to indicate tasks suitable for newcomers. These issues can provide a gentle introduction to the project's codebase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OIhbmgxO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/good-first-issue.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OIhbmgxO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/good-first-issue.webp" alt="Good First Issue" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Contribute to What You Use&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Consider contributing to libraries or frameworks you use regularly. Familiarity with the project can make it easier to identify bugs or areas for improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Make Your Contribution
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Understand the Project's Contribution Guidelines&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Most projects have a CONTRIBUTING.md file or a section in their README.md with guidelines on how to contribute. Read these instructions carefully to understand the process and expectations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh4AxtSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/contributiong-md-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh4AxtSM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/contributiong-md-screen.webp" alt="Contribution Guidelines" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Set Up Your Development Environment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Fork and clone the repository to your local machine and follow the project's setup instructions. Ensure you can build the project and run tests before making changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pick an Issue and Communicate&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Choose an issue to work on and notify the project maintainers that you're interested in working on it. This prevents duplicate efforts and allows maintainers to provide guidance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f1rmzFNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/issue-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f1rmzFNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/issue-screen.webp" alt="Issue" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Make Your Changes and Write Tests&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Implement your solution in a clean, well-documented manner. Write tests to cover your changes, ensuring that your contribution doesn't introduce new bugs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Submit a Pull Request (PR)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you're satisfied with your changes, push your branch to GitHub and open a pull request. Provide a clear description of the problem and how your changes address it. Engage in the review process, responding to feedback and making adjustments as necessary.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k8ZCjxRo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/pull-request-screen.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k8ZCjxRo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/pull-request-screen.webp" alt="Pull Request" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Celebrate Your Contribution!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Regardless of the outcome, submitting a pull request is an achievement. Celebrate your contribution to the open source world!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Contributing to open source is a pathway to learning, growth, and collaboration. It's about more than just code; it's a way to give back, challenge yourself, and connect with like-minded individuals. Start small, stay persistent, and watch as your contributions make a difference in the open source ecosystem.&lt;/p&gt;

&lt;p&gt;Happy contributing!&lt;/p&gt;

</description>
      <category>github</category>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>10 VSCode Extensions You Have To Know</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Tue, 02 Jan 2024 17:46:39 +0000</pubDate>
      <link>https://dev.to/syki/10-vscode-extensions-you-have-to-know-5628</link>
      <guid>https://dev.to/syki/10-vscode-extensions-you-have-to-know-5628</guid>
      <description>&lt;p&gt;As a specialist in the world of coding, you're likely always on the lookout for tools that can streamline your workflow and enhance your coding experience. Visual Studio Code (VSCode) is a powerful editor that supports a multitude of extensions to boost productivity, code quality, and overall efficiency. Here are ten VSCode extensions you absolutely need to know about:&lt;/p&gt;

&lt;h2&gt;
  
  
  List of 10 Essential VSCode Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens"&gt;GitLens — Git supercharged&lt;/a&gt; by Eric Amodio
&lt;/h3&gt;

&lt;p&gt;GitLens supercharges Git within VS Code. It allows you to visualize code authorship at a glance via Git blame annotations and CodeLens. Effortlessly navigate and explore Git repositories, gain valuable insights via rich visualizations, and leverage powerful comparison commands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gitkraken.com/gitlens"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p3gpI0lW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/GitLens.webp" alt="GitLens" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://marketplace.visualstudio.com/items?itemName=waderyan.gitblame"&gt;Git Blame&lt;/a&gt; by Wade Anderson
&lt;/h3&gt;

&lt;p&gt;This extension shows git blame information in the status bar. It's a simple yet powerful tool for quickly understanding who last modified a line of code and why.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Sertion/vscode-gitblame"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vx-9K2Qz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/GitBlame.webp" alt="GitHub - Git Blame" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;Prettier - Code formatter&lt;/a&gt; by Esben Petersen
&lt;/h3&gt;

&lt;p&gt;Prettier is an opinionated code formatter that supports multiple languages and integrates with most editors. This extension enables Prettier in VS Code, enforcing consistent code style across your projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://prettier.io/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tmfodgts--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/prettier.webp" alt="Prettier" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker"&gt;Code Spell Checker&lt;/a&gt; by Street Side Software
&lt;/h3&gt;

&lt;p&gt;A comprehensive spelling checker for source code. Catch common spelling errors, which can be a lifesaver for code documentation and comments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://streetsidesoftware.com/vscode-spell-checker/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hH4YGJEX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/code-spell-checker.webp" alt="VSCode Spell Checker" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot"&gt;GitHub Copilot&lt;/a&gt; by GitHub
&lt;/h3&gt;

&lt;p&gt;GitHub Copilot is your AI pair programmer. It helps you write code faster and with fewer errors. It suggests whole lines or blocks of code as you type, helping you code more efficiently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/features/copilot"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--swMksUe_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/copilot-homepage.webp" alt="GitHub Copilot" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github"&gt;GitHub Pull Requests and Issues&lt;/a&gt; by GitHub
&lt;/h3&gt;

&lt;p&gt;This extension makes it easy to review and manage GitHub pull requests and issues in VS Code. It offers a seamless integration for managing your project's GitHub aspects directly from your editor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Microsoft/vscode-pull-request-github#readme"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4zdX3bv6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/github-pull-requests-and-issues.webp" alt="GitHub Pull Requests and Issues" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;a href="https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client"&gt;Thunder Client&lt;/a&gt; by Ranga Vadhineni
&lt;/h3&gt;

&lt;p&gt;Thunder Client is a lightweight Rest API Client for VS Code. It's a handy tool for testing HTTP requests and debugging API issues right inside your editor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thunderclient.com/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SvlfOwzJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/thunder-client-homepage.webp" alt="Thunder Client" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker"&gt;Docker&lt;/a&gt; by Microsoft
&lt;/h3&gt;

&lt;p&gt;The Docker extension makes it easy to build, manage, and deploy containerized applications from VS Code. It integrates seamlessly with Docker and provides a smooth user experience for developers working with containers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Microsoft/vscode-docker/blob/main/README.md"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LJnTDDGu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/docker-extension-homepage.webp" alt="VSCode Docker" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. &lt;a href="https://marketplace.visualstudio.com/items?itemName=pnp.polacode"&gt;Polacode&lt;/a&gt; by PNP
&lt;/h3&gt;

&lt;p&gt;Polacode allows you to take beautiful, Polaroid-like snapshots of your code. It's perfect for sharing code snippets in a visually appealing way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/octref/polacode"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jRGrCBkw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/polacode.webp" alt="Polacode on GitHub" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. &lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme"&gt;Material Icon Theme&lt;/a&gt; by Philipp Kief
&lt;/h3&gt;

&lt;p&gt;This extension provides a set of Material Design Icons for Visual Studio Code. It enhances the visual appeal and makes it easier to navigate your project's file structure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/PKief/vscode-material-icon-theme/blob/main/README.md"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_IqYY7Ju--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/material-icon-theme.webp" alt="Material Icon Theme on GitHub" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Each of these extensions brings its own unique set of features to the table, aiming to make&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Never Kill Your Products</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Thu, 14 Dec 2023 17:16:07 +0000</pubDate>
      <link>https://dev.to/syki/never-kill-your-products-28ag</link>
      <guid>https://dev.to/syki/never-kill-your-products-28ag</guid>
      <description>&lt;p&gt;In the vast sea of web products, apps, and services, the life cycle of a product is fraught with challenges. Many projects never see the light of day, and even more are discarded prematurely, often at the expense of valuable learning opportunities and potential future gains.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Value of Persistence
&lt;/h2&gt;

&lt;p&gt;Every product, successful or not, is a testament to your skills and dedication. The digital footprints left by these products form a portfolio that showcases your journey, growth, and capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building Your Digital Portfolio
&lt;/h3&gt;

&lt;p&gt;Your creations are more than just projects, they are a narrative of your professional evolution. Keeping them alive maintains a living history of your work, allowing others to witness your progress and commitment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.pl//projects"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JbUtAVBu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.pl/uploads/projects.webp" alt="Digital Portfolio" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A Case for Patience
&lt;/h3&gt;

&lt;p&gt;Products need time to mature. Immediate success is rare. Search engine indexing and organic growth are gradual, word of mouth needs time to spread. Abandoning a project too early could mean missing out on these opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Hold On
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;No Significant Costs&lt;/strong&gt;: If the product isn't draining resources, let it live.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Potential for Growth&lt;/strong&gt;: Some products have a slow start but can gain traction over time.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Educational Value&lt;/strong&gt;: There's always something to learn from keeping a project around.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Archiving with Care
&lt;/h2&gt;

&lt;p&gt;If maintaining a product is unsustainable, consider archiving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Backup&lt;/strong&gt;: Always keep a backup of your projects. They're valuable assets.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Screenshots&lt;/strong&gt;: Document your work with screenshots. They serve as proof of your accomplishments.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Showcase&lt;/strong&gt;: Use these archives to bolster your portfolio. They can be powerful talking points in interviews or meetings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://archive.org/web"&gt;Web Archive&lt;/a&gt; is a great tool for archiving websites. It's free and easy to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---iqFjt7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.pl/uploads/web-archive.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---iqFjt7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.pl/uploads/web-archive.webp" alt="Web Archive" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Before you consider killing a product, weigh its potential against its cost. Remember, every project has intrinsic value as part of your professional story. Make sure it's preserved in some form, as it could one day be the key to unlocking new opportunities.&lt;br&gt;
s&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>product</category>
      <category>startup</category>
    </item>
    <item>
      <title>AI tools for web developers you need to follow</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sat, 09 Dec 2023 16:47:43 +0000</pubDate>
      <link>https://dev.to/syki/ai-tools-for-web-developers-you-need-to-follow-1fil</link>
      <guid>https://dev.to/syki/ai-tools-for-web-developers-you-need-to-follow-1fil</guid>
      <description>&lt;p&gt;The landscape of web development is rapidly evolving, thanks in part to the advancement of AI technologies. These tools not only enhance productivity but also introduce innovative approaches to tackling complex problems. In this article, we'll delve into four such tools that are revolutionizing the field: &lt;code&gt;v0 by Vercel&lt;/code&gt;, &lt;code&gt;Snyk&lt;/code&gt;, &lt;code&gt;GitHub Copilot&lt;/code&gt;, and &lt;code&gt;ChatGPT&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  v0 by Vercel
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is v0 by &lt;a href="https://v0.dev/"&gt;Vercel&lt;/a&gt;?&lt;/strong&gt;&lt;br&gt;
Vercel's &lt;code&gt;v0&lt;/code&gt; is an AI-powered tool designed to accelerate the web development process. It's integrated within Vercel's ecosystem, which is known for its support in deploying, previewing, and scaling React projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://v0.dev/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zh4cn7yB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/v0.webp" alt="v0 by Vercel" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Usage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Automated Code Optimization&lt;/strong&gt;: &lt;code&gt;v0&lt;/code&gt; leverages AI to analyze and optimize your code, ensuring better performance and faster load times.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Real-time Feedback&lt;/strong&gt;: Offers instant feedback on code quality, making it easier to adhere to best practices.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Integration with Next.js&lt;/strong&gt;: Being part of the Vercel platform, it seamlessly integrates with Next.js, offering enhanced capabilities for React developers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Snyk
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is &lt;a href="https://snyk.io/"&gt;Snyk&lt;/a&gt;?&lt;/strong&gt;&lt;br&gt;
Snyk is an open-source security platform that utilizes AI to identify and fix vulnerabilities in your codebase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snyk.io/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EfYxDWOY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/snyk.webp" alt="Snyk" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Usage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Vulnerability Detection&lt;/strong&gt;: Snyk's AI algorithms scan your code, dependencies, and even open-source libraries to detect security vulnerabilities.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Automated Fix Suggestions&lt;/strong&gt;: Provides AI-generated recommendations for fixing detected security issues.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Continuous Monitoring&lt;/strong&gt;: Keeps your projects secure by continuously monitoring and alerting you of new vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is GitHub &lt;a href="https://github.com/features/copilot"&gt;Copilot&lt;/a&gt;?&lt;/strong&gt;&lt;br&gt;
Developed by GitHub in collaboration with OpenAI, GitHub Copilot is an AI-powered code assistant that helps developers write code more efficiently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/features/copilot"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--56UF8uji--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/copilot.webp" alt="GitHub Copilot" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Usage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Code Autocompletion&lt;/strong&gt;: Offers real-time suggestions for code completion, making coding faster and more efficient.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Learning from Context&lt;/strong&gt;: GitHub Copilot understands the context of your code and provides relevant suggestions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Support for Multiple Languages&lt;/strong&gt;: Works with a wide range of programming languages and frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ChatGPT
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is &lt;a href="https://openai.com/blog/chatgpt"&gt;ChatGPT&lt;/a&gt;?&lt;/strong&gt;&lt;br&gt;
ChatGPT, developed by OpenAI, is an advanced language model that can understand and generate human-like text, making it a valuable tool for various aspects of web development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openai.com/blog/chatgpt"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kLtfWxIS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://syki.dev/uploads/chatgpt.webp" alt="ChatGPT" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features and Usage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Automated Content Generation&lt;/strong&gt;: Can be used to generate code documentation, descriptions, and even debug code.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Conversational Interfaces&lt;/strong&gt;: Ideal for creating sophisticated chatbots and interactive customer support tools.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Natural Language Processing&lt;/strong&gt;: Offers powerful NLP capabilities for analyzing user input and generating responses in web applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
The integration of AI in web development tools like &lt;code&gt;v0 by Vercel&lt;/code&gt;, &lt;code&gt;Snyk&lt;/code&gt;, &lt;code&gt;GitHub Copilot&lt;/code&gt;, and &lt;code&gt;ChatGPT&lt;/code&gt; is transforming the way developers work. These tools not only enhance efficiency and productivity but also bring a new level of intelligence and automation to the development process. Keeping up with these tools is essential for any web developer looking to stay ahead in the rapidly evolving tech landscape.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>100 Bucket List Ideas for Programmers</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Mon, 04 Dec 2023 16:56:10 +0000</pubDate>
      <link>https://dev.to/syki/100-bucket-list-ideas-for-programmers-506m</link>
      <guid>https://dev.to/syki/100-bucket-list-ideas-for-programmers-506m</guid>
      <description>&lt;p&gt;Technology enthusiasts often dream big, aspiring to achieve goals that push the boundaries of innovation and personal development. To help structure these ambitions, I have compiled an extensive bucket list tailored for tech aficionados. This list not only outlines various goals but also includes additional columns like "Inspiration," "How," "Year," "Status," and "Souvenir" to provide a comprehensive roadmap for your tech journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in the List?
&lt;/h2&gt;

&lt;p&gt;The list covers a wide range of goals, from developing specific skills like achieving a 150 wpm typing speed to ambitious projects like building a DIY electric skateboard or bike. It includes participating in significant events, like attending a major tech conference, and milestones in personal development, such as mentoring a junior developer. Each goal is categorized for easy reference, covering areas like DIY projects, programming, development, learning, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  List
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://syki.dev/bucket-list"&gt;My progress in Bucket List&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;goal&lt;/th&gt;
&lt;th&gt;category&lt;/th&gt;
&lt;th&gt;inspiration&lt;/th&gt;
&lt;th&gt;year&lt;/th&gt;
&lt;th&gt;status&lt;/th&gt;
&lt;th&gt;souvenir&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Be a contributor in a large project&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=MT6M_sqAuZo"&gt;How to Open Source Like a Pro&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a news aggregator&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://feedly.com/"&gt;Feedly&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a physics engine&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=iSMbRGTBOHU"&gt;I'm Coding an Entire Physics Engine from Scratch&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a recommendation system&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=n3RKsY2H-NE"&gt;How Recommender Systems Work (Netflix/Amazon)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a sentiment analysis tool&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://brand24.com/blog/sentiment-analysis/"&gt;How to Master AI-powered Sentiment Analysis in 2023?&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build an augmented reality (AR) app&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.tekrevol.com/blogs/how-to-build-an-augmented-reality-apps/"&gt;A GUIDE ON HOW TO BUILD AN AUGMENTED REALITY APP IN 2023&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build and deploy a chat server&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://en.wikipedia.org/wiki/Internet_Relay_Chat"&gt;IRC&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a cybersecurity tool&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.kali.org/tools/"&gt;Kali Tools&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a multiplayer online game&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=_ze26M_Fm6g"&gt;Dani&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a PWA (Progressive Web App)&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps"&gt;PWA&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create AI Influencer&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=ky5ZB-mqZKM&amp;amp;t=11s"&gt;AI influencers are getting filthy rich... let's build one&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a blockchain application&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=coQ5dg8wM2o"&gt;Build Your First Blockchain App Using Ethereum Smart Contracts and Solidity&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a cryptocurrency&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=befUVytFC80"&gt;you need to create a Cryptocurrency RIGHT NOW!!&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a VR application&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://developer.oculus.com/documentation/unity/unity-tutorial-hello-vr/"&gt;Tutorial - Create Your First VR App on Meta Quest Headset&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop an e-commerce website&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://nextjs.org/commerce"&gt;Next.js Commerce&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop an open-source game engine&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=LyJkcv_rL9Y&amp;amp;list=PLpM-Dvs8t0Va6RoHkaLuPbRh7Fwpy4nbV"&gt;GameDev in C++&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop browser extension&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=xIKwkPWUgOA"&gt;Chrome Extensions Should Scare You.&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have a project on github with 100 stars&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/torvalds?achievement=starstruck&amp;amp;tab=achievements"&gt;Linus Torvalds&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have your own tor page&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=bllS9tkCkaM"&gt;i put a DARK WEB website on a Raspberry Pi!!&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invent a Gesture-Control Interface&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=P5k-4-OEuTk"&gt;Iron man&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Set up a continuous integration/continuous deployment pipeline&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/features/actions"&gt;Automate your workflow&lt;/a&gt; from idea to production]&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Set up a Kubernetes cluster&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=8zXG4ySy1m8"&gt;Why would you build a Raspberry Pi Cluster?&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sponsor open source project&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/sponsors"&gt;Invest in the software that powers your world&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write own database with query mechanism&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://acmiitr.medium.com/making-our-own-database-part-1-6cd9c49ed924"&gt;Making Our Own Database&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write Page in Static Site Generator&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.gatsbyjs.com/"&gt;Gatsby&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write Single Page Application&lt;/td&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;a href="https://react.dev/"&gt;React&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automate your home with Raspberry Pi project&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=0rIvB3LZiKA"&gt;I built a smarter smart home&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a custom keyboard&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=bBon6WwkdJE"&gt;Build your own Mechanical Keyboard… the RIGHT Way&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a DIY electric skateboard or bike&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=3bcvFzecg2Q"&gt;I built an electric skateboard!&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a mini arcade machine with custom games&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=oTydZBIGAuk"&gt;The ULTIMATE DIY Arcade Machine Guide&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a PC&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=AHR80l7od2Q"&gt;Building a $100,000 PC for Minecraft&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a personal cloud storage system&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=pLC0FUnko-M"&gt;This is my Endgame - Mother Vault Server Room Update&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a self-watering garden system with IoT&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=O_Q1WKCtWiA"&gt;Arduino Garden Controller - Automatic Watering and Data Logging&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a small autonomous car or robot&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=lnP32gzHdvI"&gt;Fast line follower Robot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build an underwater ROV&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://dev.toBuilding%20a%20DIY%20submarine"&gt;Building a DIY submarine&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Building and flying an FPV drone&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=bBb_kSO3vTo"&gt;Why Should you fly Freestyle at 800mW? | FPV&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design a smart mirror with interactive features&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=OYlloiaBINo"&gt;DIY Smart Mirror - Full Tutorial&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design and print something in 3D&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=nRsaf16EdNM"&gt;I Made a Robot Arm... in the Middle of my Room!&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Designing your own PCB&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=MsdJgEinb34"&gt;PCB Creation for Beginners - Start to finish tutorial in 10 minutes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix broken electronics&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/@ElectroBOOM"&gt;ElectroBOOM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have your own server locally&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=8zXG4ySy1m8"&gt;Why would you build a Raspberry Pi Cluster?&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implement a smart home&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=0rIvB3LZiKA"&gt;I built a smarter smart home&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Make a robot arm&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=nRsaf16EdNM"&gt;I Made a Robot Arm... in the Middle of my Room!&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open something with Flipper Zero&lt;/td&gt;
&lt;td&gt;DIY&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=nLIp4wd0oXs"&gt;This Makes Hacking TOO Easy - Flipper Zero&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Be the owner of the smartphone application&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=LY4rxYe-jKI&amp;amp;list=PLN3n1USn4xllDDLwgJ4avEqgj4dWynofp"&gt;VoidLog&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a SaaS product&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=v_3lcqUOaOA"&gt;How I created a new SaaS Product in a day&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have your own game in the store&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=_ze26M_Fm6g"&gt;Dani&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Work in startup&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=TLysAkFM4cA"&gt;a day in the life of a startup engineer working from home&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Polyphasic sleep for a week&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://venturebeat.com/offbeat/how-sleeping-6-times-a-day-helped-the-founder-of-wordpress-build-a-billion-dollar-company/#:~:text=Mullenweg%20took%20humanity's%20polyphasic%20tendencies,time%2C%E2%80%9D%20he%20told%20Ferris."&gt;How sleeping 6 times a day helped the founder of WordPress build a billion-dollar company&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Taking part in the Podcast&lt;/td&gt;
&lt;td&gt;Entrepreneurship&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/lexfridman"&gt;Lex Fridman&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Full access to the server - hack&lt;/td&gt;
&lt;td&gt;Hacking&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=QqknSms8VVI&amp;amp;t=16s"&gt;Mr. Robot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get a bug bounty&lt;/td&gt;
&lt;td&gt;Hacking&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.hackerone.com/"&gt;HackerOne&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hack in a Capture the Flag Contest&lt;/td&gt;
&lt;td&gt;Hacking&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=6MrQ-mN8HM8"&gt;Mr. Robot&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write malware&lt;/td&gt;
&lt;td&gt;Hacking&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=aNEqC-U5tHM"&gt;Malware Development: Processes, Threads, and Handles&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;150 wpm speed typing&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/monkeytypegame/monkeytype"&gt;Monkeytype&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automate your daily task with Python scripts&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=NCvI-K0Gp90"&gt;Start Automating Your Life Using Python! (File Management with Python Tutorial)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a Twitter bot&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=V7LEihbOv3Y"&gt;How I post banger tweets with artificial intelligence // Twitter Bot Tutorial&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compile your own Linux Kernel&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=APQY0wUbBow"&gt;How to compile a custom Linux kernel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a chatbot&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=dvOnYLDg8_Y&amp;amp;list=PLQVvvaa0QuDdc2k5dwtDTyT9aCja0on8j"&gt;Creating a Chatbot with Deep Learning, Python, and TensorFlow p.1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a data visualization project using D3.js&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=_8V5o2UHG0E"&gt;Data Visualization with D3.js - Full Tutorial Course&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a photo editing tool&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.cleveroad.com/blog/how-to-build-a-photo-editing-app-like-prisma-and-make-it-thrive/"&gt;Full Guide on How to Make a Photo Editing App&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a Digital Artwork Generator&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=zf4z8A-OWBY"&gt;How To Generate INSANE AI Art For Beginners (Midjourney V4 )&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a file encryption tool&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=TZT7wvTeVyY"&gt;Make Your Own Encryption Program&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a video editing software&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=iydG-e1dQGA"&gt;I Coded a Video Editor (and it kind of sucks)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop a voice assistant application&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=BEw5EFqCCEI"&gt;Creating Jarvis powered by OpenAI and Python | ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop smartwatch app&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=-JO5oHRkYbk"&gt;Create and Run a Wearable App on WearOS using Android Studio&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Develop your own Slack/Discord bot&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=SPTfmiYiuok"&gt;Code a Discord Bot with Python - Host for Free in the Cloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implement a facial recognition system&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=bK_k7eebGgc&amp;amp;list=PLgNJO2hghbmhHuhURAGbe6KWpiYZt0AMH"&gt;Build a Deep Facial Recognition App from Paper to Code&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn a Functional Programming Language&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=8z_bUIl_uPo"&gt;Functional programming - A general introduction&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn an archaic language&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=7d7-etf-wNI"&gt;COBOL in 100 seconds&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn and use Docker for containerization&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn blazing fast language&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/@ThePrimeagen"&gt;ThePrimeagen&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn one unusual language (e.g. Brainfuck)&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=hdHjjBS4cs8"&gt;Brainf**k in 100 Seconds&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learn quantum computing basics&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=q3ecPsMd4tA"&gt;Coding On A Quantum Computer&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master advanced algorithms and data structures (100 LeatCode)&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=8wysIxzqgPI"&gt;My Brain after 569 Leetcode Problems&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program a custom voice-controlled home assistant&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=BEw5EFqCCEI"&gt;Creating Jarvis powered by OpenAI and Python | ChatGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program a microcontroller&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=XlFO5Iat178"&gt;A Hacker's Guide to Programming Microcontrollers [Tutorial]&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program in Vim&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=X6AR2RMB5tE&amp;amp;list=PLm323Lc7iSW_wuxqmKx_xxNtJC_hJbQ7R"&gt;Vim As Your Editor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use Split Keyboard&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=nh-BAxbithc&amp;amp;t=156s"&gt;Unboxing A New Keyboard!!! (Typing Test Too!)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web scraper data&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=qo_fUjb02ns"&gt;Industrial-scale Web Scraping with AI &amp;amp; Proxy Networks&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write a program in assembly&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=WnBXLmKk_qw&amp;amp;t=82s"&gt;Tsoding&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write an NPM module&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/"&gt;NPM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write Server Side Application&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write your own artificial intelligence model&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=kCc8FmEb1nY"&gt;Let's build GPT: from scratch, in code, spelled out.&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write your own operating system&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/torvalds"&gt;Linus Torvalds&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write your own programming language&lt;/td&gt;
&lt;td&gt;Programming&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=pgeSGBwtHW8&amp;amp;t=132s"&gt;I made my own Programming Language&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have a private blog&lt;/td&gt;
&lt;td&gt;Teaching&lt;/td&gt;
&lt;td&gt;&lt;a href="https://overreacted.io/"&gt;Dan Abramov&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lecture to students&lt;/td&gt;
&lt;td&gt;Teaching&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=xFFs9UgOAlE&amp;amp;t=807s"&gt;CS50 Lecture by Mark Zuckerberg - 7 December 2005&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mentor a Junior Dev&lt;/td&gt;
&lt;td&gt;Teaching&lt;/td&gt;
&lt;td&gt;&lt;a href="https://stablekernel.com/article/how-to-properly-mentor-a-junior-developer/"&gt;How To Properly Mentor a Junior Developer&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write a paper on a tech topic and publish it&lt;/td&gt;
&lt;td&gt;Teaching&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/@TwoMinutePapers"&gt;Two Minute Papers&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write a technical book or ebook&lt;/td&gt;
&lt;td&gt;Teaching&lt;/td&gt;
&lt;td&gt;&lt;a href="https://paulcunningham.me/writing-technical-books/"&gt;Writing Technical Books&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Attend a major tech conference&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.ces.tech/"&gt;CES&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Take part in a hackathon&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=mAJlZUKhOGs"&gt;I Challenged Myself To Win A Hackathon&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit Computer History Museum&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit NASA Johnson Space Center&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit National Air and Space Museum&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit The Collection of Historical Scientific Instruments&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit The Large Hadron Collider&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit The MIT Museum&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visit The National Museum of Nuclear Science &amp;amp; History&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.mwrf.com/community/article/21848496/the-engineers-travel-bucket-list"&gt;The Engineer’s Travel Bucket List&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Download List
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://syki.dev/uploads/bucket-list.csv"&gt;Download CSV&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.dev/uploads/bucket-list.json"&gt;Download JSON&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Additional Columns Explained
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Inspiration
&lt;/h3&gt;

&lt;p&gt;This column reflects what sparked the idea or desire to pursue a particular goal. It could be a person, event, book, or even a movie that ignited the passion for a specific achievement. For example, the inspiration for building a DIY electric skateboard might be a passion for sustainable transportation or a favorite tech vlogger's project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Year
&lt;/h3&gt;

&lt;p&gt;This column suggests a timeframe or a target year for accomplishing the goal. It helps in planning and setting realistic timelines. For example, you might aim to attend a major tech conference by 2025.&lt;/p&gt;

&lt;h3&gt;
  
  
  Status
&lt;/h3&gt;

&lt;p&gt;Status tracks your progress. It could be 'Not Started' 'In Progress' 'Completed' or 'On Hold' This helps in keeping track of your journey and maintaining motivation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Souvenir
&lt;/h3&gt;

&lt;p&gt;A unique addition, this column is about commemorating the achievement. It could be a physical item, a digital badge, a blog post, or even a photo. For example, a souvenir for building a PC could be the first photo of the completed setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Tech Enthusiast's Bucket List is more than just a collection of goals; it's a roadmap for personal and professional growth in the realm of technology. With the additional columns providing a framework for inspiration, methodology, timing, tracking, and commemorating achievements, this list is a dynamic tool for anyone passionate about technology.&lt;/p&gt;

&lt;p&gt;Happy tech adventures!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>developer</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>You Should Have Your Own Pi Server</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sat, 25 Nov 2023 09:25:44 +0000</pubDate>
      <link>https://dev.to/syki/you-should-have-your-own-pi-server-1d1n</link>
      <guid>https://dev.to/syki/you-should-have-your-own-pi-server-1d1n</guid>
      <description>&lt;p&gt;As a programmer, delving into the realms of DevOps and local infrastructure is not just beneficial, it's a cornerstone for skill development. Let me explain why having your own Raspberry Pi server is essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Importance of a Local Server
&lt;/h2&gt;

&lt;p&gt;Having a local server like a Raspberry Pi allows you to experiment in a safe environment. You can break things, rebuild them, and learn without the fear of affecting live systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experimentation Leads to Mastery
&lt;/h3&gt;

&lt;p&gt;The heart of innovation in programming lies in the freedom to experiment. A Raspberry Pi server provides this freedom, allowing you to test new software, stress-test your applications, and gain hands-on experience with server management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding DevOps
&lt;/h3&gt;

&lt;p&gt;DevOps is not just a set of practices, it's a culture that emphasizes the collaboration between software development and IT operations. By managing your own Pi server, you get a fundamental understanding of this culture.&lt;/p&gt;

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

&lt;p&gt;Raspberry Pi is a small, affordable computer that can be used for a variety of projects. It's a great way to learn about servers and infrastructure without breaking the bank.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Raspberry Pi Setup
&lt;/h2&gt;

&lt;p&gt;I run two Raspberry Pi servers: one as a NAS (Network Attached Storage) and the other for monitoring service uptime with Uptime Kuma, among other experimental services.&lt;/p&gt;

&lt;h3&gt;
  
  
  NAS Server
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Raspberry Pi 4 model B WiFi DualBand Bluetooth 4GB RAM 1,5GHz&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Storage&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;4TB HDD&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Open Media Vault&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Uptime Kuma Server
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Raspberry Pi 4B WiFi 2GB RAM&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Function&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Monitoring service uptime&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Uptime Kuma&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why You Should Consider It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Skill Development&lt;/strong&gt;: Managing a server enhances your knowledge beyond just writing code.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Understanding Infrastructure&lt;/strong&gt; Learn about networks, storage, and security firsthand.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;DevOps Practices&lt;/strong&gt;: Implement continuous integration and deployment in a contained environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Every programmer should step into the world of servers and infrastructure. It's not just about understanding how to code but also how to deploy, manage, and ensure the resilience of your applications. A Raspberry Pi is an affordable, effective way to start this journey.&lt;/p&gt;

&lt;p&gt;Start small, but think big. Your journey into understanding the full lifecycle of software development is just a Pi away.&lt;/p&gt;

</description>
      <category>raspberrypi</category>
      <category>devops</category>
      <category>programming</category>
      <category>developer</category>
    </item>
    <item>
      <title>SEO Checklist for Frontend Developers</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sat, 21 Oct 2023 06:46:15 +0000</pubDate>
      <link>https://dev.to/syki/seo-checklist-for-frontend-developers-28o2</link>
      <guid>https://dev.to/syki/seo-checklist-for-frontend-developers-28o2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As a Frontend Developer, there are many things you need to remember to make your site visible in search results. In this article, we present a detailed SEO checklist that will help you optimize your site for search engines.&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO Checklist for Frontend Developers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Technical SEO
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Robots.txt&lt;/strong&gt;: Make sure the site has a properly configured robots.txt file that allows search engine bots to index the appropriate pages. &lt;a href="https://syki.pl/en/blog/what-is-robots-txt-and-how-to-create-it"&gt;What is robots.txt and how to create it?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;XML Sitemap&lt;/strong&gt;: Create an XML sitemap and submit it to Google Search Console to help search engines better understand the structure of your site. &lt;a href="https://syki.pl/en/blog/what-is-sitemap-xml-and-how-to-create-it"&gt;What is sitemap.xml and how to create it?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;RSS Feed&lt;/strong&gt;: If your site has a blog or news section, create an RSS feed and submit it to Google Search Console. &lt;a href="https://syki.pl/en/blog/what-is-rss-feed-and-how-to-create-it"&gt;What is RSS feed and how to create it?&lt;/a&gt;. If you have RSS you can test it here: &lt;a href="https://syki.pl/rss-feed-tester"&gt;RSS Feed Tester&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Site Speed&lt;/strong&gt;: Use tools like Google Lighthouse for site speed optimization. Remember, page load speed is a key ranking factor. &lt;a href="https://developers.google.com/web/tools/lighthouse/"&gt;Google Lighthouse&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Mobile Optimization&lt;/strong&gt;: Make sure the site is optimized for mobile devices. Use Google tools such as Mobile-Friendly Test. &lt;a href="https://search.google.com/test/mobile-friendly"&gt;Mobile-Friendly Test&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;HTTPS&lt;/strong&gt;: Ensure the site is using HTTPS. This is now a basic standard for any website.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Structured Data&lt;/strong&gt;: Use structured data (Schema.org) to provide additional information about your site content to search engines. &lt;a href="https://schema.org/"&gt;Schema.org&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Analytics&lt;/strong&gt;: Add Google Analytics or another analytics tool to your site to track traffic and user behavior. &lt;a href="https://analytics.google.com/analytics/web/"&gt;Google Analytics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Search Console&lt;/strong&gt;: Add your site to Google Search Console to monitor its performance in Google search. This will help track progress as well as identify any potential errors. &lt;a href="https://search.google.com/search-console/about"&gt;Google Search Console&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Content SEO
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Keyword Research&lt;/strong&gt;: Conduct keyword research before creating content. This will help determine what topics you should focus on. &lt;a href="https://ads.google.com/home/tools/keyword-planner/"&gt;Google Keyword Planner&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Content Quality&lt;/strong&gt;: Ensure the content is unique, well-written, and provides value to users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Title Tags&lt;/strong&gt;: Each page should have a unique and descriptive page title that contains keywords.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Meta Descriptions&lt;/strong&gt;: Each page should have a unique and descriptive meta description. Although meta descriptions are not a direct ranking factor, they can influence CTR.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Header Tags&lt;/strong&gt;: Use header tags (H1, H2, H3, etc.) to structure your content and highlight key points. A correct header structure also allows for easier content understanding by search engines and disabled users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Alt Tags&lt;/strong&gt;: All images should have alt tags describing the image. This helps search engines understand what the image depicts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Advanced SEO
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;International SEO&lt;/strong&gt;: If the site is available in multiple languages or targets different regions, apply hreflang tags. &lt;a href="https://developers.google.com/search/docs/advanced/crawling/localized-versions"&gt;Hreflang Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Social Meta Tags&lt;/strong&gt;: Add Open Graph and Twitter Cards meta tags to your site to enhance its appearance on social platforms. &lt;a href="https://ogp.me/"&gt;Open Graph&lt;/a&gt;, &lt;a href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards"&gt;Twitter Cards&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;404 and Redirects&lt;/strong&gt;: Manage 404 errors and make sure any necessary redirects (301, 302) are in place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Canonical URLs&lt;/strong&gt;: Use canonical URLs to avoid duplicate content issues. &lt;a href="https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls"&gt;Canonical URLs Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Console Errors&lt;/strong&gt;: Check the console for errors and fix them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Update Everything&lt;/strong&gt;: Ensure that your site is using the latest version of any CMS, framework, library, or other software. This is important for security and performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Scanners&lt;/strong&gt;: Regularly scan your site for errors and issues. &lt;a href="https://www.screamingfrog.co.uk/seo-spider/"&gt;Screaming Frog&lt;/a&gt;, &lt;a href="https://app.ahrefs.com/site-audit"&gt;ahrefs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Uptime&lt;/strong&gt;: Use uptime monitoring tools to ensure your site is available to users. &lt;a href="https://uptimerobot.com/"&gt;Uptime Robot&lt;/a&gt;, &lt;a href="https://www.statuscake.com/"&gt;StatusCake&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;Hosting Speed&lt;/strong&gt;: Make sure your site is hosted on a fast and reliable server.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Optimizing a site for SEO is essential for every Frontend Developer. I hope this checklist will assist you in effectively optimizing your site. Remember that SEO is a continuous process, and regular monitoring and optimization are keys to success.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>frontend</category>
      <category>tutorial</category>
      <category>google</category>
    </item>
    <item>
      <title>How Many Dependencies Does Your Project Really Have?</title>
      <dc:creator>Syki</dc:creator>
      <pubDate>Sun, 15 Oct 2023 11:34:13 +0000</pubDate>
      <link>https://dev.to/syki/how-many-dependencies-does-your-project-really-have-239c</link>
      <guid>https://dev.to/syki/how-many-dependencies-does-your-project-really-have-239c</guid>
      <description>&lt;h2&gt;
  
  
  Introduction: The Light-Hearted Side of "node_modules"
&lt;/h2&gt;

&lt;p&gt;Ah, &lt;code&gt;node_modules&lt;/code&gt; – every JavaScript developer's favorite folder (not really, but let's pretend). It's where tiny utility packages, like &lt;a href="https://www.npmjs.com/package/is-odd" rel="noopener noreferrer"&gt;is-odd&lt;/a&gt;, find their place alongside larger, more comprehensive libraries. Who hasn't felt a mix of amusement and bewilderment on discovering packages that accomplish tasks which seem... trivial?&lt;/p&gt;

&lt;p&gt;Speaking of amusing, remember that &lt;a href="https://blog.sandworm.dev/security-alert-dont-npm-install-https" rel="noopener noreferrer"&gt;security advisory&lt;/a&gt; which cautioned against a particular &lt;code&gt;npm install&lt;/code&gt;? If you thought that was rare, think again!&lt;/p&gt;

&lt;h2&gt;
  
  
  Is It As Bad As They Say?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Spoiler alert:&lt;/strong&gt; It might be even worse.&lt;/p&gt;

&lt;p&gt;You might argue, "It's just a tiny package, what harm can it do?" That's where the actual cascade begins. Every package you add brings along its own plethora of dependencies, and those dependencies have their own dependencies, and so on. It's like the matryoshka dolls of the JavaScript world.&lt;/p&gt;

&lt;p&gt;To provide a bit of perspective, most small random projects can have over a whopping 1000 dependencies. Yep, you read that right.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diving Into Your Dependency Tree
&lt;/h2&gt;

&lt;p&gt;The real eye-opener is when you delve into the intricacies of your dependency tree. Just a simple audit can reveal the magnitude of what your seemingly innocent &lt;code&gt;package.json&lt;/code&gt; file drags into your project.&lt;/p&gt;

&lt;p&gt;Tool I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://docs.sandworm.dev/" rel="noopener noreferrer"&gt;SandWorm Audit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  My project written in Next.js
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Package.json
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@monaco-editor/react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.6.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/node"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^20.8.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^18.2.25"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@vercel/analytics"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@vercel/postgres"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"axios"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.5.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"dayjs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.11.10"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"flowbite"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.8.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"flowbite-react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.6.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"formik"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.4.5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"jwt-decode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.1.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"monaco-editor"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.44.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"next"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^13.5.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"next-auth"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.23.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"next-intl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3.0.0-beta.7"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"next-themes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.2.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"qs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.11.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^18.2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-dom"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^18.2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-hot-toast"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.4.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-select"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.7.7"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-sweet-state"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.7.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tailwind-merge"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.14.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"uuid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^9.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"yup"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.3.2"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@svgr/webpack"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/qs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.9.8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/uuid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^9.0.5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@typescript-eslint/eslint-plugin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.7.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"autoprefixer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.4.16"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"8.51.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-config-next"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^13.5.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-config-prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^9.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-plugin-simple-import-sort"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"postcss"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.4.31"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.0.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"prettier-plugin-tailwindcss"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.5.5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tailwindcss"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.3.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"typescript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.2.2"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Audit
&lt;/h4&gt;

&lt;p&gt;My &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt; project have 652 dependencies, as you see in package.json, project is not that big, but still we have buch of dependencies, but wait this is nothing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/forwlo-frontend@1.0.1-dependencies.csv" rel="noopener noreferrer"&gt;CSV&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Tree
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/forwlo-frontend@1.0.1-tree.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5oxbp628t8475jxamf8t.png" alt="Next.js project tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  TreeMap
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/forwlo-frontend@1.0.1-treemap.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50f6imhd7ktw1w50f4l3.png" alt="Next.js project TreeMap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Nest.js backend project
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Package.json
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/common"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/config"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/core"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/jwt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/passport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/platform-express"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/swagger"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^7.1.11"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"argon2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.31.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"class-transformer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.5.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"class-validator"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.14.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"passport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.6.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"passport-jwt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"reflect-metadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.1.13"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"rxjs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^7.8.1"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/cli"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/schematics"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@nestjs/testing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@prisma/client"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.1.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/express"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.17.17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/jest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^29.5.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/node"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^20.3.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/passport-jwt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.0.9"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/supertest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.0.12"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@typescript-eslint/eslint-plugin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@typescript-eslint/parser"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.42.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-config-prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^9.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-plugin-prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"jest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^29.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"prisma"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.1.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"source-map-support"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.5.21"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"supertest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.3.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"ts-jest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^29.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"ts-loader"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^9.4.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"ts-node"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^10.9.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tsconfig-paths"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"typescript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.1.3"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Audit
&lt;/h4&gt;

&lt;p&gt;My &lt;a href="https://nestjs.com/" rel="noopener noreferrer"&gt;NestJS&lt;/a&gt; project have 719 dependencies, after i saw the audit of next.js, nest.js didn't suprice me at all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-backend@0.0.1-dependencies.csv" rel="noopener noreferrer"&gt;CSV&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Tree
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-backend@0.0.1-tree.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8azly1fnntr9qwb38lxa.png" alt="NestJS project Tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  TreeMap
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-backend@0.0.1-treemap.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d22wew2ub7uwydxb6t1.png" alt="NextJS project TreeMap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example of a simple React Native project
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Package.json
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@expo-google-fonts/inter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.2.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@expo-google-fonts/maven-pro"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.2.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@expo/webpack-config"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^18.1.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@gorhom/bottom-sheet"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^4.5.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@react-native-async-storage/async-storage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.19.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@react-native-community/datetimepicker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"7.2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@react-native-picker/picker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/styled-components-react-native"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.2.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"axios"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"dayjs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.11.9"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~49.0.11"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-checkbox"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~2.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-constants"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~14.4.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-font"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~11.4.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-image"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~1.5.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-linking"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~6.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-localization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~14.5.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-router"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.0.6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-secure-store"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~12.3.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"expo-status-bar"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~1.7.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"i18next"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^23.5.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"jwt-decode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.1.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"18.2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-hook-form"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^7.46.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-i18next"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^13.2.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.72.4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-gesture-handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~2.12.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-reanimated"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~3.3.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-safe-area-context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"4.7.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-screens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~3.25.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-select-dropdown"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.4.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-svg"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"13.13.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-swiper-flatlist"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.2.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-web"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~0.19.8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-sweet-state"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.7.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"styled-components"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.3.11"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"devDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@babel/core"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^7.22.19"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/metro-config"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.76.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~18.2.21"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/react-native-snap-carousel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.8.5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@types/styled-components"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.1.26"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@typescript-eslint/eslint-plugin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.7.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@typescript-eslint/parser"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.7.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"babel-plugin-styled-components"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^2.1.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.49.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"eslint-config-universe"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^12.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"prettier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^3.0.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"react-native-svg-transformer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"typescript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^5.2.2"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Audit
&lt;/h4&gt;

&lt;p&gt;My &lt;a href="https://reactnative.dev/" rel="noopener noreferrer"&gt;React Native&lt;/a&gt; project have 1434 dependencies, that suprised me a lot. I've just created this project, and work on it maybe for a week.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-mobile@0.0.0-dependencies.csv" rel="noopener noreferrer"&gt;CSV&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Tree
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-mobile@0.0.0-tree.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn74rlycto1ejsokzd30f.png" alt="React Native project tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  TreeMap
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://syki.pl/uploads/the-tail-end-mobile@0.0.0-treemap.svg" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepkf97y2f87tvb4iwsf6.png" alt="React Native project TreeMap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  To Contribute or Not to Contribute
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Case for Creating Your Own Packages
&lt;/h3&gt;

&lt;p&gt;Before you add another random package for a function that's probably ten lines of code, pause and reflect. Do you really need it? More often than not, you'll realize that writing that function yourself or simply copying what you need will suffice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unraveling the Nested Dependencies
&lt;/h3&gt;

&lt;p&gt;However, if you find that you're relying on a package that itself has numerous unnecessary dependencies, consider contributing. Trim down the fat, so to speak. If you've got the time and expertise, pitch in and help the community streamline things. Your future self (and your fellow devs) will thank you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Message: Think Before You "npm install"
&lt;/h2&gt;

&lt;p&gt;Every time you're on the brink of adding another package, think about the cascade it might bring along. Every additional dependency is potential technical debt, not to mention the security implications.&lt;/p&gt;

&lt;p&gt;Moreover, if you're in the privileged position of having time on your hands, consider contributing to existing packages or even creating your own streamlined versions. The npm ecosystem thrives because of contributors, and you could be the next one to make it better!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Dependencies are both a boon and a bane. They save time and provide functionality but also bloat projects and introduce risks. Striking a balance is key. Use what you need, contribute when you can, and always be judicious with your &lt;code&gt;npm install&lt;/code&gt; commands. Remember, with great power (to install) comes great responsibility!&lt;/p&gt;

</description>
      <category>npm</category>
      <category>javascript</category>
      <category>typescript</category>
      <category>node</category>
    </item>
  </channel>
</rss>
