<?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>Forem: Clara TC</title>
    <description>The latest articles on Forem by Clara TC (@claratc).</description>
    <link>https://forem.com/claratc</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%2F1285092%2F5fea6a8a-b084-41af-b897-d8b34b935935.png</url>
      <title>Forem: Clara TC</title>
      <link>https://forem.com/claratc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/claratc"/>
    <language>en</language>
    <item>
      <title>Jopi.js : I'm the new community manager!</title>
      <dc:creator>Clara TC</dc:creator>
      <pubDate>Tue, 09 Dec 2025 10:18:01 +0000</pubDate>
      <link>https://forem.com/claratc/jopijs-im-the-new-community-manager-1c2k</link>
      <guid>https://forem.com/claratc/jopijs-im-the-new-community-manager-1c2k</guid>
      <description>&lt;h2&gt;
  
  
  For me, IT is a recent career change
&lt;/h2&gt;

&lt;p&gt;I started working with computers four years ago. It's a complete career change for me; before that, I was a lab technician, taking samples to detect various substances.&lt;/p&gt;

&lt;p&gt;Learning the basics of IT was a real challenge. But little by little, everything became clearer.&lt;/p&gt;

&lt;p&gt;And now, four years later, I'm proud to announce that I'm the Community Manager for the Jopi.js project! This means writing articles, making videos, and also answering your questions. All on a volunteer basis, because behind the Jopi.js project, there's not a company but a passionate individual... and now two passionate individuals :-)&lt;/p&gt;

&lt;p&gt;For me, it's a great source of pride, because this role is a recognition of my skills. While I'm certainly nowhere near the level of Johan, the creator of this project, I'm still very proud!&lt;/p&gt;

&lt;p&gt;As for his background, he's a technical guy. He talks about code, he thinks about code, and I even think he dreams about code at night! The problem with him is that everything seems simple to him. Obviously. Easy! ... and that's the issue, because he doesn't know how to adapt to beginners who don't have 30 years of experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  My empathy is my strength
&lt;/h2&gt;

&lt;p&gt;The reason they asked me to take on the role of community manager is precisely this: I don't have a high level of expertise, which is actually an advantage here. It allows me to better understand what needs to be said and how to say it.&lt;/p&gt;

&lt;p&gt;I'm also an empathetic person, which helps a lot. It motivates me to do my best to explain things clearly.&lt;/p&gt;

&lt;p&gt;I hope to do a good job and receive positive feedback. I'm not being paid for this, so for me, it's a bonus. It will also enhance my resume, which is currently a bit sparse. And one thing is certain: it will help me grow professionally.&lt;/p&gt;

&lt;h2&gt;
  
  
  I created the Jopi.js project website
&lt;/h2&gt;

&lt;p&gt;I'm the one who created the project website (&lt;a href="https://jopijs.com" rel="noopener noreferrer"&gt;https://jopijs.com&lt;/a&gt;). Okay, you can easily guess my personality from it :-) ... also, the little character you see in the infographics represents me (I had a lot of fun).&lt;/p&gt;

&lt;p&gt;The site breaks away from the serious websites you usually find in the tech world. There are two reasons for this. The first reason is that this site reflects my personality. The second reason is that Johan (the mastermind behind the project) wanted to create a technology that simplifies computing, not the other way around. And so, I thought it was good to make a "friendly" site that also exudes this feeling of breaking away.&lt;/p&gt;

&lt;p&gt;So, there you have it, I wanted to write a short article to introduce myself a little. To explain who I am and why I'm here.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Jopi.js
&lt;/h2&gt;

&lt;p&gt;Okay, I still need to tell you a little about JopiJS and what it is. I'll simplify things by saying that Jopi.js is a clone of NextJS: a server-side technology based on NodeJS, used to build websites.&lt;/p&gt;

&lt;p&gt;The goal of JopiJS wasn't to create a clone of NextJS; in fact, there are significant differences. Its aim, however, was to draw inspiration from the simplicity and speed that NextJS offers.&lt;/p&gt;

&lt;p&gt;This desire for simplicity is JopiJS's strength, and what Johan is trying to enhance.&lt;/p&gt;

&lt;p&gt;Personally, I was already familiar with NextJS, and I found it both simple and complex. Over the years, they've added interesting but complex features. Far too complex for me, as I just want to create a simple website without needing high performance or lightning-fast responsiveness.&lt;/p&gt;

&lt;p&gt;JopiJS removes this complexity, making it much simpler. Ironically, benchmarks show it's 7.5x faster than NextJS!!! &lt;a href="https://www.youtube.com/watch?v=h7p9FM2uTu4" rel="noopener noreferrer"&gt;(proof in video here)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This extreme speed of JopiJS means there's no need to compensate with tricks that make things much more technically complex (that's how I see NextJS in its latest versions). So I have something simple, and at the same time, really nice performance! ... although in reality, for me, there's not a huge difference between displaying 11,000 pages/sec and 80,000 pages/sec. I usually create small websites to promote vacation rentals.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>NodeJS - npx, super handy for running patches!</title>
      <dc:creator>Clara TC</dc:creator>
      <pubDate>Mon, 08 Dec 2025 18:15:29 +0000</pubDate>
      <link>https://forem.com/claratc/nodejs-npx-super-handy-for-running-patches-5d23</link>
      <guid>https://forem.com/claratc/nodejs-npx-super-handy-for-running-patches-5d23</guid>
      <description>&lt;p&gt;&lt;strong&gt;I'm going to talk to you about the &lt;code&gt;npx&lt;/code&gt; tool, which is a standard NodeJS tool.&lt;/strong&gt; I didn't really know this tool before, but now I love it; it saves me a lot of time!&lt;/p&gt;

&lt;p&gt;I use it to easily deploy my NodeJS scripts to my servers and run them to patch data. Maybe you're familiar with this: you make a mistake, then you run a patch to try and fix it... okay, it happens to me too... sometimes :-)&lt;/p&gt;

&lt;h2&gt;
  
  
  What is npx?
&lt;/h2&gt;

&lt;p&gt;npx is a tool that allows you to download and run a NodeJS package. If I use &lt;code&gt;npx myPackageName&lt;/code&gt;, it will automatically download and run the NodeJS package &lt;code&gt;myPackageName&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run a NodeJS package?
&lt;/h2&gt;

&lt;p&gt;In &lt;code&gt;package.json&lt;/code&gt; there is an entry named &lt;code&gt;bin&lt;/code&gt; which allows you to specify the name of a script that will be executed by npx.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "name': "myPackageName",
    "version": "1.0.1",
    "bin": "./myScript.js"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I do &lt;code&gt;npx myPackageName arg1 arg2&lt;/code&gt;, it downloads the latest version of the package myPackageName and then executes the script &lt;code&gt;./myScript.js&lt;/code&gt; with the arguments &lt;code&gt;arg1&lt;/code&gt; and &lt;code&gt;arg2&lt;/code&gt;. It's the same as if I were doing &lt;code&gt;node ./myScript.js -- arg1 arg2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So it's very practical!&lt;/p&gt;

&lt;p&gt;The only small thing is that you need to add this line at the beginning of the script (a shebang): &lt;code&gt;#!/usr/bin/env node&lt;/code&gt;. So at the beginning of my &lt;code&gt;myScript.js&lt;/code&gt; file, I need to add this line. That's all!&lt;/p&gt;

&lt;h2&gt;
  
  
  What I used to do for my patches
&lt;/h2&gt;

&lt;p&gt;Before discovering npx, I had scripts that I uploaded to my servers (zip, upload, unzip) and then ran manually. Then, when I updated these scripts, I had to upload them again to all my servers before running them.&lt;/p&gt;

&lt;p&gt;With npx, there's no need to do that anymore! Because it automatically downloads the latest version of my package!&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a private repository is super easy!
&lt;/h2&gt;

&lt;p&gt;I use the Verdaccio tool, which allows me to have private NodeJS packages.&lt;/p&gt;

&lt;p&gt;This lets me create private packages that I can deploy very quickly on my servers, without errors, while also having a history of my previous versions.&lt;/p&gt;

&lt;p&gt;When you publish a package, it's visible to everyone. But with a tool like Verdaccio, you can easily have a private repository.&lt;/p&gt;

&lt;p&gt;Okay, I'm going to make you smile... &lt;code&gt;npx verdaccio&lt;/code&gt;... there you go, it's installed on your computer! All you have to do is open the URL &lt;code&gt;http://myPrivateNpmServer:4873/&lt;/code&gt; in your browser to see for yourself!&lt;/p&gt;

&lt;p&gt;The Verdaccio welcome screen will tell you what to do to create a login/password. It's very simple!&lt;/p&gt;

&lt;p&gt;Once that's done, you just need to do this on your servers so they use Verdaccio: &lt;code&gt;npm set registry http://myPrivateNpmServer:4873/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That's it! You now have your own private repository!&lt;/p&gt;

&lt;h2&gt;
  
  
  Complete Example
&lt;/h2&gt;

&lt;p&gt;Here I'm going to show you a complete project that you can copy and paste.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;package.json&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "name": "myPatchName",
  "version": "1.0.0,
  "scripts: {
    "publish": "npm publish --registry http://myPrivateNpmServer:4873/"
  },

  "bin": "./myScript.js"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;myScript.js&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cp"&gt;#!/usr/bin/env node
&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="s2"&gt;Executing my patch!&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;And that's it!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To debug the script, simply run &lt;code&gt;npx myPatchName&lt;/code&gt; in the local folder. It will automatically use your development version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To publish the script, simply run &lt;code&gt;npm run publish&lt;/code&gt; in the local folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>nextjs</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
