<?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: Nathan James</title>
    <description>The latest articles on DEV Community by Nathan James (@nsjames).</description>
    <link>https://dev.to/nsjames</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%2F1058633%2Ffa31f248-9ec0-4379-8a72-b603995bc50f.png</url>
      <title>DEV Community: Nathan James</title>
      <link>https://dev.to/nsjames</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nsjames"/>
    <language>en</language>
    <item>
      <title>7 Graphic Tees for Developers (2025 edition)</title>
      <dc:creator>Nathan James</dc:creator>
      <pubDate>Mon, 19 May 2025 21:33:50 +0000</pubDate>
      <link>https://dev.to/nsjames/7-graphic-tees-for-developers-2025-edition-4fah</link>
      <guid>https://dev.to/nsjames/7-graphic-tees-for-developers-2025-edition-4fah</guid>
      <description>&lt;p&gt;If you’re a developer, programmer, coder, engineer, or whatever we’re calling ourselves these days, these will be the perfect shirts for you to wear while on Zoom calls, developer conferences, or just to show off your profession outside of work.&lt;/p&gt;

&lt;p&gt;I guess also If you’re someone looking for a funny t shirt gift for a developer, then this is also a great list for you, though it might be harder for you to understand some of the inside-joke style humor.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/im-the-cto-now-t-shirt" rel="noopener noreferrer"&gt;&lt;strong&gt;I'm the CTO now.&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;When looking for a software developer shirt that gets a reaction, you won't have to go much further than this. If you're the CTO, it's funny.&lt;/p&gt;

&lt;p&gt;If you're &lt;strong&gt;NOT&lt;/strong&gt; the CTO, it's even funnier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5wzpydmuoluqumiaf9d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5wzpydmuoluqumiaf9d.jpg" alt="Product mockup" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are levels to this shirt, and different meanings. Maybe you're the guy the CTO always comes to to ask for advice. Or maybe you're the last dev left in a company and the defacto CTO. Maybe you're just the company clown that likes to stir the pot. In all cases, this one hits home every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/keyboard-hero" rel="noopener noreferrer"&gt;&lt;strong&gt;It's dangerous to go alone&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The intersection of gamer and developer is pretty high. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x94ix4gaq9yc4d52h94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x94ix4gaq9yc4d52h94.png" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And one of the most iconic games is and will always be Zelda. It's also a personal favorite here at Miserably Employed. That sweet sweet golden cartridge from the original NES is a memory that brings back a lot of joy for us, and countless others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2vyzi6vwf4oo362dezz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2vyzi6vwf4oo362dezz.jpg" alt="It's Dangerous to Go Alone… Take This" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a homage to the game that started it all, and a lot of developers on that gaming journey which lead in a big way to the professions we have, we've created a shirt for developers like us who were inspired to quest endlessly against all odds and finish the tasks put before us. Which, is pretty much all software development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1qtq88ufl5cxjabwde5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1qtq88ufl5cxjabwde5.jpg" alt="Product mockup" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/everything-is-fine" rel="noopener noreferrer"&gt;&lt;strong&gt;AI is just fine&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;We have a love/hate relationship with AI. We use it in various portions of our workflows and even in some design elements here at Miserably Employed, and as developers it's helped us speed up and lower friction by becoming a better autocomplete for code we were already going to write in that specific way.&lt;/p&gt;

&lt;p&gt;But, it's a dual edged sword in software engineering with broken vibe coded spaghetti everywhere, poor decisions based on faith instead of experience, and slews of laid off devs that will be replaced with code that will need twice as many in the years to come to fix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxw4plnjcwam0bn7wenf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxw4plnjcwam0bn7wenf.jpg" alt="AI is just fine" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shirt is our answer, with an AI created background that mocks ourselves in the same way we satirically mock our entire industry. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/i-code-naked" rel="noopener noreferrer"&gt;&lt;strong&gt;I code naked&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This shirt speaks for itself, there's not really much more to say. It's become a running joke that you never know if someone is wearing pants on a Zoom call, and developers are no exclusion. &lt;/p&gt;

&lt;p&gt;Heck, I'm not even wearing pants as I write this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgg2hcoxmmm95vcwgm7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgg2hcoxmmm95vcwgm7g.png" alt="I code naked" width="800" height="710"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/i-peaked-at-onboarding" rel="noopener noreferrer"&gt;&lt;strong&gt;I peaked at onboarding&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;We're all most excited within that early period of a new position at a company. The code is new, you're not sure if it's a microservice avro schema mess yet, you haven't learned about how your product manager and project manager hate each other, and you haven't been tricked 7 times by HR into clicking scam links that "gotcha".&lt;/p&gt;

&lt;p&gt;All you have is hope because of the unknowns and you're as happy as you'll ever be there. There's a saying about boats: "the two happiest days of a boaters life is when you buy the boat and sell the boat" and while there's debate about the truth of that saying it's pretty applicable to software developers.&lt;/p&gt;

&lt;p&gt;The two happiest days of a developer's life is the day you get hired, and the day you quit. Probably some nuance in there with promotions, bonuses and raises that aren't 2.7%. But we don't bring facts into things here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82kqvh0djcsiwuqvw2y7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82kqvh0djcsiwuqvw2y7.jpg" alt="Product mockup" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/i-push-to-prod-on-fridays-v-neck" rel="noopener noreferrer"&gt;&lt;strong&gt;I push to prod on Fridays&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;It's a meme, but it's a meme because there's truth to it. For some reason (spelled "marketing") there's this want to push things to production on Fridays. &lt;/p&gt;

&lt;p&gt;Nothing spells out disaster more than slack messages about downed services at 9pm on a Saturday. Developers don't want to be on-call. The pay bonus for it isn't worth it when the salaries are already so high, the hours so long, and the stress so tangible.&lt;/p&gt;

&lt;p&gt;This shirt wasn't made with love, it was made with spite. And that's how we wear it on calls with managment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1yyjl5sk0397ctd7zsc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1yyjl5sk0397ctd7zsc.jpg" alt="Product mockup" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.miserablyemployed.com/products/the-development-process" rel="noopener noreferrer"&gt;&lt;strong&gt;The de-velopment process&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;There's a famous principle (&lt;a href="https://xkcd.com/323/" rel="noopener noreferrer"&gt;xkcd of course&lt;/a&gt;) called the Ballmer Peak. It's about how there's a sweet spot where when you've drunk just enough alcohol you become a super-human programmer. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiii4ilqbjac3bmuwbarx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiii4ilqbjac3bmuwbarx.png" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether or not there's any truth to the theory, it seems that a large portion of developers have either taken this as a challenge and began drinking either while coding or pushing code (one of the bad decisions) and then having to fix their mistakes after the fact.&lt;/p&gt;

&lt;p&gt;Though, it could just all be bad code, who knows. Looks the same. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8pa17ea2s1wnqp4y1om.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8pa17ea2s1wnqp4y1om.jpg" alt="Product mockup" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to see more shirts like these for developers (and other professions)? Head over to &lt;a href="https://miserablyemployed.com" rel="noopener noreferrer"&gt;MiserablyEmployed.com&lt;/a&gt; and enjoy!&lt;/p&gt;

</description>
      <category>funny</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>How to use `npm create` to make your quickstart docs better</title>
      <dc:creator>Nathan James</dc:creator>
      <pubDate>Fri, 26 Apr 2024 11:26:03 +0000</pubDate>
      <link>https://dev.to/nsjames/use-npm-create-to-make-better-quickstart-docs-2pgo</link>
      <guid>https://dev.to/nsjames/use-npm-create-to-make-better-quickstart-docs-2pgo</guid>
      <description>&lt;p&gt;The #1 primary goal of developer-facing software and tooling is making it as easy as possible for developers to use them.&lt;/p&gt;

&lt;p&gt;It's the reason that Quickstart sections in documentations are so important, and why the length of those sections matters &lt;strong&gt;a lot&lt;/strong&gt;. Too long? Didn't read.&lt;/p&gt;

&lt;p&gt;So how can you shorten those?&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter npx
&lt;/h2&gt;

&lt;p&gt;If you don't know about &lt;code&gt;npx&lt;/code&gt;, it stands for "Node Package eXecute", and is a way to execute scripts on the &lt;code&gt;package.json&lt;/code&gt; from command-line without first installing the packing manually. You could do something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx yourlib create myproject
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That will run whatever you have in your &lt;code&gt;create&lt;/code&gt; script in your &lt;code&gt;package.json&lt;/code&gt;. For example:&lt;br&gt;
&lt;/p&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;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@your/lib"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&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.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;"scripts"&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;"create"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node index.js"&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;p&gt;This is great, but if you look at big modern projects like &lt;a href="https://svelte.dev/docs/introduction#start-a-new-project"&gt;Svelte&lt;/a&gt; or &lt;a href="https://vitejs.dev/guide/#scaffolding-your-first-vite-project"&gt;Vite&lt;/a&gt; you'll notice they don't use &lt;code&gt;npx&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;They use &lt;code&gt;npm create&lt;/code&gt;. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One possible reason is that new developers know they have &lt;code&gt;npm&lt;/code&gt; installed, but they don't realize they also have &lt;code&gt;npx&lt;/code&gt;. That gives them pause, and makes them reconsider whether to use the tech if they have to install something additional onto their OS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, how does that work?&lt;/p&gt;

&lt;h2&gt;
  
  
  npm create isn't magic
&lt;/h2&gt;

&lt;p&gt;It's basically doing the same thing as &lt;code&gt;npx lib create&lt;/code&gt;, but it uses a specifically named &lt;code&gt;npm&lt;/code&gt; package, and the &lt;code&gt;bin&lt;/code&gt; property in your &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Package name format
&lt;/h3&gt;

&lt;p&gt;In order for your package to be picked up by &lt;code&gt;npm create&lt;/code&gt; its name needs to follow this exact format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create-&amp;lt;whatever&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For instance, the package I created was &lt;a href="https://www.npmjs.com/package/create-eos"&gt;create-eos&lt;/a&gt;, as it's a CLI for getting set up on the &lt;a href="https://docs.eosnetwork.com/docs/latest/quick-start/introduction"&gt;EOS Network&lt;/a&gt; quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bin files
&lt;/h3&gt;

&lt;p&gt;Your &lt;code&gt;package.json&lt;/code&gt; supports specifying a &lt;code&gt;bin&lt;/code&gt; file, which is a way to tell tooling that there's an &lt;a href="https://docs.npmjs.com/cli/v7/configuring-npm/package-json#bin"&gt;executable script in your package&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Edit your &lt;code&gt;package.json&lt;/code&gt; and add the &lt;code&gt;bin&lt;/code&gt; property that points to a file called &lt;code&gt;bin.js&lt;/code&gt;.&lt;br&gt;
&lt;/p&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;"bin"&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;"create-&amp;lt;whatever&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./bin.js"&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;p&gt;Now create that file and put this at the top.&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="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="s2"&gt;./index.js&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;This will call your &lt;code&gt;index.js&lt;/code&gt; script from the executable using the &lt;a href="https://alexewerlof.medium.com/node-shebang-e1d4b02f731d"&gt;node shebang&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What you put inside of your &lt;code&gt;index.js&lt;/code&gt; is up to you, but you can reference the &lt;a href="https://www.npmjs.com/package/create-eos"&gt;CLI I created&lt;/a&gt; if you want a starting point.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it!
&lt;/h2&gt;

&lt;p&gt;Now all you need to do is push that up to &lt;code&gt;npm&lt;/code&gt; using &lt;code&gt;npm publish&lt;/code&gt; and anyone can call &lt;code&gt;npm create &amp;lt;whatever&amp;gt;@latest&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Use this in your quickstart guides to give developers using your software and tools a better and modern experience. The more work you do for them, the less docs you have to write.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Did you like what you read? Follow me on &lt;a href="https://twitter.com/nsjames_"&gt;Twitter&lt;/a&gt;. I write about software development, developer relations, and buildinpublic.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>npm</category>
      <category>node</category>
    </item>
    <item>
      <title>How to compete with Google, Amazon, Microsoft and Apple using Web3</title>
      <dc:creator>Nathan James</dc:creator>
      <pubDate>Thu, 31 Aug 2023 10:35:27 +0000</pubDate>
      <link>https://dev.to/nsjames/how-to-compete-with-google-amazon-microsoft-and-apple-using-web3-1k0c</link>
      <guid>https://dev.to/nsjames/how-to-compete-with-google-amazon-microsoft-and-apple-using-web3-1k0c</guid>
      <description>&lt;p&gt;Spoiler alert: &lt;strong&gt;You don't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is a bad habit that kills 90% of web3 projects before they even launch. It's the mindset that it's a good idea to take something web2 and slap web3 on top of it. These projects are doomed to fail because they are trying to compete with the biggest companies in the world on their own turf without providing any additional value other than the perceived value of being decentralized.&lt;/p&gt;

&lt;p&gt;Here are some wildly successful web3 projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://uniswap.org/"&gt;Uniswap&lt;/a&gt; - Easy decentralized swaps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ipfs.io/"&gt;IPFS&lt;/a&gt; - Efficient decentralized file storage&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ens.domains/"&gt;ENS&lt;/a&gt; - Readable names for Ethereum addresses&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://metamask.io/"&gt;MetaMask&lt;/a&gt; - A way to access web3 applications (dApps)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://opensea.io/"&gt;OpenSea&lt;/a&gt; - NFT marketplace&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://chain.link/"&gt;ChainLink&lt;/a&gt; - Decentralized oracle network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one has one thing in common. &lt;br&gt;
&lt;strong&gt;They are web3 native.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Instead of trying to take something that is inherently web2 and make it web3, they are taking advantage of unique properties of web3 to create something that is impossible (or nonsensical) to do in web2. Each project relies on fundamental properties of web3 to provide value to their users.&lt;/p&gt;

&lt;p&gt;They have made it practically improbable for tech giants to compete with them because to do so would require core changes to their tech stacks, methodologies and business models. &lt;/p&gt;

&lt;p&gt;This is the key to competing with all varieties of the alphabet soup. &lt;/p&gt;

&lt;p&gt;The mindset shift is to look at the web3 space itself and the properties that it provides and ask yourself "What can I do with this? What is the next obvious step?".&lt;/p&gt;

&lt;p&gt;This isn't to say that you can't take inspiration from web2. In fact, you should. OpenSea is a great example of taking a web2 concept and making it web3. They took the concept of a marketplace for collectibles and made it decentralized. &lt;/p&gt;

&lt;p&gt;However, they didn't try to make decentralize eBay, they wrapped a marketplace around an existing web3 concept (NFTs).&lt;/p&gt;

&lt;h2&gt;
  
  
  A common example of how to fail
&lt;/h2&gt;

&lt;p&gt;Mark is fed up with Twitter. He's tired of the censorship, the shadow bans, not knowing why his content isn't reaching his audience. &lt;/p&gt;

&lt;p&gt;He's tired of the centralized and dark nature of it all. He wants to build a decentralized Twitter. A Twitter killer.&lt;/p&gt;

&lt;p&gt;He starts building. He uses blockchain for hashed data, IPFS for raw data, smart contracts for the logic, MetaMask for&lt;br&gt;
logins, etc. It's a masterpiece of web3 technology.&lt;/p&gt;

&lt;p&gt;He launches it and... nothing happens. He gets a few users, but it's not taking off. He can't figure out why. He has everything that Twitter has, but he's decentralized. Why aren't people using it?&lt;/p&gt;

&lt;p&gt;The answer is simple. &lt;strong&gt;It's just Twitter.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The only users he will ever get are the ones with ideological alignment. The ones that care about decentralization. Though these people are passionate, they are a small minority. The vast majority of people don't care about decentralization.&lt;/p&gt;

&lt;p&gt;What they care about is the value and functionalities that only decentralization can provide.&lt;/p&gt;

&lt;h3&gt;
  
  
  Novelty is not to be ignored
&lt;/h3&gt;

&lt;p&gt;First look at TikTok. It became a global phenomenon in less than a year. It didn't try to copy YouTube, or Instagram, or Twitter. It created a novel experience that was native to the platform. It was a new way to consume content, create content, interact with content and creators.&lt;/p&gt;

&lt;p&gt;Next, look at Threads. With a huge company behind it that has experience with social networks, it still failed. Why? Because&lt;br&gt;
it was just a copy of Twitter. It didn't provide any value that Twitter didn't already provide. It was just Twitter, but with the ability to log in with Instagram.&lt;/p&gt;

&lt;p&gt;You want to replicate the success of TikTok, not the failure of Threads. You want to create something that is novel and native to web3, not just a copy of something that already exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  So how do we come up with a good idea?
&lt;/h2&gt;

&lt;p&gt;The first step is to look at the web3 space itself. What are the properties that it provides? What are the things that are impossible (or impractical) to do in web2?&lt;/p&gt;

&lt;p&gt;The second step is to look at web2. What are the things that people love about web2? What are the things that people hate about web2? What are the things that people want to do in web2, but can't?&lt;/p&gt;

&lt;p&gt;Find the intersection of these two things and jot down some ideas. Test out the waters, but always be asking the question: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What makes this web3 native?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer to this question is what will make your project successful, not the fact that you've branded a web2 idea as web3.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are some web3 native concepts?
&lt;/h3&gt;

&lt;p&gt;This is by no means an exhaustive list, but it should give you some ideas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tokenization&lt;/strong&gt; - The ability to make anything tradable / ownable / sellable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peer to peer payments&lt;/strong&gt; - Payments directly from one user to another&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Governance&lt;/strong&gt; - Immutable, decentralized, community driven governance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real Ownership&lt;/strong&gt; - Your keys, your content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Immutability&lt;/strong&gt; - No more deletions, everything is permanent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency&lt;/strong&gt; - No more black box algorithms, everything is public&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decentralized&lt;/strong&gt; - Distributed by nature&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Censorship resistant&lt;/strong&gt; - No more shadow bans, no more deplatforming&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permissionless&lt;/strong&gt; - No gatekeepers or walled gardens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unrestricted APIs&lt;/strong&gt; - No way to prevent third parties from building on top of your contracts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just looking at the list above it is much easier to come up with a web3 native social network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want more thought-provoking content that will help you build a successful web3 project?
&lt;/h2&gt;

&lt;p&gt;My name is Nathan James, and I'm a web3 developer, educator, and entrepreneur. &lt;/p&gt;

&lt;p&gt;I've been building web3 projects since 2017 and have helped hundreds of developers build web3 projects.&lt;/p&gt;

&lt;p&gt;If you want to learn more about building successful web3 projects follow me on &lt;a href="https://twitter.com/nsjames_"&gt;Twitter&lt;/a&gt;&lt;br&gt;
and check out the &lt;a href="https://docs.eosnetwork.com/"&gt;EOS Network Documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>Getting funding - Understanding what Grant Programs are looking for and how you can fund your Open-Source Web3 projects</title>
      <dc:creator>Nathan James</dc:creator>
      <pubDate>Thu, 29 Jun 2023 12:14:38 +0000</pubDate>
      <link>https://dev.to/nsjames/getting-funding-understanding-what-grant-program-is-looking-for-and-how-you-can-fund-your-open-source-web3-projects-2292</link>
      <guid>https://dev.to/nsjames/getting-funding-understanding-what-grant-program-is-looking-for-and-how-you-can-fund-your-open-source-web3-projects-2292</guid>
      <description>&lt;p&gt;I've been investigating, participating, and running grant programs for a while now. &lt;br&gt;
There are a few things that I've learned along the way that I want to share with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Grant Program?
&lt;/h2&gt;

&lt;p&gt;A grant program is a process that provides a way to fund initiatives that are aligned with the&lt;br&gt;
mission and vision of the organization that is running the grant program.&lt;/p&gt;

&lt;p&gt;Grant programs are usually run by companies or foundations that want to support a specific cause,&lt;br&gt;
or have specific goals that they want to achieve. It allows participants to submit proposals&lt;br&gt;
that are aligned with the goals of the grant program, and if the proposal is accepted, the&lt;br&gt;
participant receives funding to work on the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do Grant Programs exist?
&lt;/h2&gt;

&lt;p&gt;Grant programs are usually run by a company or a foundation that wants to support a specific cause&lt;br&gt;
which is aligned with their mission and vision.&lt;/p&gt;

&lt;p&gt;For example, the &lt;a href="https://github.com/eosnetworkfoundation/grant-framework"&gt;EOS Network Foundation's Grant Program&lt;/a&gt;&lt;br&gt;
is focused on supporting projects that are building on the EOS Network. The alignment with the&lt;br&gt;
foundation's mission and vision is clear, they want to support the EOS Network ecosystem.&lt;/p&gt;

&lt;p&gt;Another example is the &lt;a href="https://web3.foundation/grants/"&gt;Web3 Foundation's Grants Program&lt;/a&gt;&lt;br&gt;
which is focused on supporting projects that are building on a variety of networks (Polkadot, Kusama, etc.),&lt;br&gt;
but the alignment with the foundation's mission and vision is also clear, they want to support&lt;br&gt;
the Web3 ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the process look like?
&lt;/h2&gt;

&lt;p&gt;The process of applying for a grant program is usually the same across all grant programs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You submit a proposal&lt;/li&gt;
&lt;li&gt;The proposal is reviewed&lt;/li&gt;
&lt;li&gt;The proposal is accepted or rejected&lt;/li&gt;
&lt;li&gt;If accepted, you start working on milestones&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There might be some back and forth at step 3, but not always. In a lot of cases you might get rejected with &lt;br&gt;
some feedback, and you can re-submit the proposal with the feedback in mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  When do you get paid?
&lt;/h2&gt;

&lt;p&gt;This differs between grant programs, but there are generally two ways you get paid.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You get paid upfront&lt;/li&gt;
&lt;li&gt;You get paid after you complete a milestone&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's important to understand how the grant program you're applying for works. &lt;/p&gt;

&lt;p&gt;If you need funding upfront, and don't realize that the grant program pays after you complete a milestone, &lt;br&gt;
you'll be in for a surprise, and possibly suffer reputation damage which will prevent you from ever being &lt;br&gt;
able to complete your proposal, or get further funding from that grant program (and possibly others).&lt;/p&gt;

&lt;h2&gt;
  
  
  What qualifies for Grant Programs?
&lt;/h2&gt;

&lt;p&gt;Grant programs are open to anyone who wants to participate (within legal requirements). However, there are some&lt;br&gt;
things you need to keep in mind to be able to take advantage of them.&lt;/p&gt;

&lt;p&gt;Most grant programs require that the project is open-source, aims to solve a problem that &lt;br&gt;
is aligned with their mission, and has a clear roadmap of milestones and timeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two hidden types of proposals
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Okay, here's some alpha for you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Though this is never talked about or stated on any grant programs, there are two types of proposals. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;business&lt;/strong&gt; proposal&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;tech&lt;/strong&gt; proposal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both of these types of grants are common, and sometimes there is overlap, but it's important to understand&lt;br&gt;
how evaluators look at these proposals and what they are looking for in each of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  The business proposal
&lt;/h3&gt;

&lt;p&gt;These kinds of proposals are centered around projects that are focused on building a business. They want to &lt;br&gt;
build a product that will be used by users, and build their own community. These are always crucial for the&lt;br&gt;
success of any grant program, as they are the ones that will bring users to the network, and help it grow.&lt;/p&gt;

&lt;p&gt;However, in a lot of cases, these projects do not focus on the business model, and instead focus entirely on features.&lt;br&gt;
This is a mistake, as no grant program wants to become a substitute for a business model. The aim of a grant program&lt;br&gt;
is to help you get started, not to fund your business.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;crucial&lt;/strong&gt; that you outline how you will reach self-sufficiency in your proposal. &lt;/p&gt;

&lt;h3&gt;
  
  
  The tech proposal
&lt;/h3&gt;

&lt;p&gt;These kinds of proposals are centered around proposals that &lt;strong&gt;do not benefit&lt;/strong&gt; from a business model.&lt;/p&gt;

&lt;p&gt;For example, a proposal to build a new command-line tool that will help developers build a specific type of application&lt;br&gt;
should &lt;strong&gt;not&lt;/strong&gt; have a business model, as that would negatively impact the adoption of the tool; and the goal of the&lt;br&gt;
grant program is to help the tool get funded and then adopted.&lt;/p&gt;

&lt;p&gt;These types of proposals should focus on the technical aspects of the project, and how it will benefit the growth of&lt;br&gt;
the ecosystem, improvement of the network, or other technical aspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to write a winning proposal?
&lt;/h2&gt;

&lt;p&gt;There are a few secrets to writing a winning proposal. Some of them are obvious, and some of them are not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow directions
&lt;/h3&gt;

&lt;p&gt;This one is obvious, but it's not always followed. Actually, it's rarely followed 😂.&lt;/p&gt;

&lt;p&gt;If the grant program asks you to submit a proposal in a specific format, do it. There are often automated&lt;br&gt;
tools that will help evaluators review your proposal, and if you don't follow the format, you'll just have to &lt;br&gt;
do the work later on, and you'll be wasting everyone's time. It also reflects poorly on you at the very first stage&lt;br&gt;
of evaluation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be clear &amp;amp; specific
&lt;/h3&gt;

&lt;p&gt;I see way too many proposals that are vague. There is no clear roadmap, no clear milestones, and no clear timeline.&lt;/p&gt;

&lt;p&gt;These &lt;strong&gt;never&lt;/strong&gt; get accepted.&lt;/p&gt;

&lt;p&gt;You want the reader to be able to understand what you're proposing in as little time as possible. If they have to&lt;br&gt;
spend an hour reading your proposal, it often shows that you don't know what you're doing, and you're just trying&lt;br&gt;
to fluff up your proposal. &lt;/p&gt;

&lt;p&gt;These aren't whitepapers, they are grant proposals. They should be short, concise, and to the point. You need to &lt;br&gt;
explain the technicals of what you want to accomplish, but you don't need to (for example) dig into the details of&lt;br&gt;
how you will implement a specific feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  Singular focus
&lt;/h3&gt;

&lt;p&gt;This is a big one. Scatterbrained proposals are much harder to accept, as they are often too ambitious, and don't&lt;br&gt;
make the evaluator feel confident that you will be able to deliver on your promises. You don't want to do &lt;br&gt;
15 things in one proposal, you want to do 1-3 things, and do them well.&lt;/p&gt;

&lt;p&gt;You will always have the chance to create a new proposal in the future to add new functionality, but you need to&lt;br&gt;
focus on the core that you want to build for each proposal.&lt;/p&gt;

&lt;p&gt;This makes it very easy for the evaluator to understand what you're proposing, and how you will accomplish it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be realistic
&lt;/h3&gt;

&lt;p&gt;Look, I know you have big plans, and you want to build the next big thing. But you need to be realistic about what&lt;br&gt;
you can accomplish in the time that you have, and within the parameters of the grant program.&lt;/p&gt;

&lt;p&gt;You're not going to build a AAA FPS game in 2 months with a $20k grant. It's just not going to happen.&lt;/p&gt;

&lt;p&gt;This is a sure-fire way to get instantly rejected, and that first impression on the evaluators is going to be hard&lt;br&gt;
to shake off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks for reading!
&lt;/h2&gt;

&lt;p&gt;I hope this was helpful, and I hope you learned something new. If you have any questions, feel free to reach out&lt;br&gt;
to me on Twitter &lt;a href="https://twitter.com/nsjames_"&gt;@nsjames_&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>funding</category>
    </item>
  </channel>
</rss>
