<?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: Dami_Crypt</title>
    <description>The latest articles on Forem by Dami_Crypt (@gilbert_dami).</description>
    <link>https://forem.com/gilbert_dami</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%2F3571782%2F433ff874-4360-455a-a801-ee9a1b154b1e.jpg</url>
      <title>Forem: Dami_Crypt</title>
      <link>https://forem.com/gilbert_dami</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gilbert_dami"/>
    <language>en</language>
    <item>
      <title>WHAT I LEARNED DEBUGGING MY DEV CHALLENGE PROJECT AT 2AM</title>
      <dc:creator>Dami_Crypt</dc:creator>
      <pubDate>Wed, 22 Apr 2026 11:39:38 +0000</pubDate>
      <link>https://forem.com/gilbert_dami/what-i-learned-debugging-my-dev-challenge-project-at-2am-4ke1</link>
      <guid>https://forem.com/gilbert_dami/what-i-learned-debugging-my-dev-challenge-project-at-2am-4ke1</guid>
      <description>&lt;p&gt;While working on the challenge i was stuck for 3 hours because my "Connect Wallet" button threw Cannot read properties of undefine. &lt;/p&gt;

&lt;p&gt;I thought Solana was broken. Turns out, I was broken. Here are 3 concepts that clicked for me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;async/await&lt;/strong&gt; is just "wait for your food"
JavaScript doesn't wait by default. When you call an API, you get a Promise, not data.
//Wrong – I did this for days
const res = fetch(url)
console.log(res) // Promise {}&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;// Right&lt;br&gt;
const res = await fetch(url) // pause until network responds&lt;br&gt;
const data = await res.json() // pause until body is parsed&lt;br&gt;
console.log(data)&lt;br&gt;
&lt;em&gt;Rule:&lt;/em&gt; Use &lt;code&gt;await&lt;/code&gt; twice for fetch. Once for network, once for &lt;code&gt;.json()&lt;/code&gt;. And your function must be &lt;code&gt;async&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;window.solana.connect() is not JavaScript
This was my biggest facepalm. I assumed &lt;code&gt;connect()&lt;/code&gt;, &lt;code&gt;publicKey&lt;/code&gt;, &lt;code&gt;signTransaction()&lt;/code&gt; were built into JS like &lt;code&gt;fetch()&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Reality check:&lt;br&gt;
&lt;code&gt;new Connection()&lt;/code&gt;👇 @solana/web3.js npm package&lt;br&gt;
&lt;code&gt;window.solana.connect()&lt;/code&gt;👇  Phantom extension injects it&lt;br&gt;&lt;br&gt;
Phantom adds this script to every page:&lt;br&gt;
window.solana = {&lt;br&gt;
  connect: async () =&amp;gt; { /opens popup / },&lt;br&gt;
  signTransaction: async (tx) =&amp;gt; { / signs locally / }&lt;br&gt;
}&lt;br&gt;
If you uninstall Phantom, &lt;code&gt;window.solana&lt;/code&gt; disappears. That's why my code crashed in incognito.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Lesson:&lt;/em&gt; If it's not on MDN and you didn't &lt;code&gt;npm install&lt;/code&gt; it, check if an extension injected it. Open console and type &lt;code&gt;window.solana&lt;/code&gt; to verify.&lt;/p&gt;

&lt;p&gt;I am opened to comments, corrections and learning more. Let's take up the next challenge 💪.&lt;/p&gt;

&lt;p&gt;What concept clicked for you recently? Drop it below 👇&lt;/p&gt;

</description>
      <category>solana</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>DEV FACE CHALLENGES</title>
      <dc:creator>Dami_Crypt</dc:creator>
      <pubDate>Tue, 21 Apr 2026 15:46:14 +0000</pubDate>
      <link>https://forem.com/gilbert_dami/dev-face-challenges-48h7</link>
      <guid>https://forem.com/gilbert_dami/dev-face-challenges-48h7</guid>
      <description>&lt;p&gt;Nobody talks about the quiet parts of being a developer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CHALLENGES&lt;/strong&gt;&lt;br&gt;
It’s not the code. The code makes sense. Functions return what you tell them to. &lt;/p&gt;

&lt;p&gt;It’s the silence after you hit send on 20 proposals.&lt;br&gt;&lt;br&gt;
It’s refreshing your inbox knowing nothing new came in.  &lt;/p&gt;

&lt;p&gt;It’s friends thinking you’re blowing because you work with computers, while you’re calculating if data will last till month end.&lt;/p&gt;

&lt;p&gt;It’s looking for clients after 3 years of coding.&lt;br&gt;&lt;br&gt;
It’s the guilt of being too tired to learn the new framework Twitter says will make you employable.&lt;br&gt;&lt;br&gt;
It’s questioning if you’re actually good at this.&lt;/p&gt;

&lt;p&gt;The hardest bug I’ve debugged this year wasn’t in my code.&lt;br&gt;&lt;br&gt;
It was the voice in my head saying “maybe you should just quit”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todo&lt;/strong&gt;&lt;br&gt;
But I’m still here. Still opening VS Code. Still applying. Still believing that one yes will make all the no’s make sense.&lt;/p&gt;

&lt;p&gt;If you’re a dev and you’re tired, or doubting yourself today: you are not alone.&lt;br&gt;&lt;br&gt;
We just don’t post this part.&lt;/p&gt;

&lt;h1&gt;
  
  
  DevLife #BuildInPublic
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Building a Blockchain Garden Tracker for Earth Day</title>
      <dc:creator>Dami_Crypt</dc:creator>
      <pubDate>Mon, 20 Apr 2026 01:59:52 +0000</pubDate>
      <link>https://forem.com/gilbert_dami/building-a-blockchain-garden-tracker-for-earth-day-4gh1</link>
      <guid>https://forem.com/gilbert_dami/building-a-blockchain-garden-tracker-for-earth-day-4gh1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Weekend Challenge: Earth Day Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;For this Earth Day challenge, I built a simple decentralized application (dApp) called Garden Tracker a tool that allows users to log the crops they plant and store that activity on the blockchain.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;br&gt;
Plant something in real life -&amp;gt; Record it on-chain&lt;/p&gt;

&lt;p&gt;Using the Solana blockchain, users can connect their wallet, select a crop, and sign a transaction that permanently records their planting activity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;I deployed my project on netlify via GitHub, the url to get to the application is : &lt;a href="https://damiedchallenge.netlify.app/" rel="noopener noreferrer"&gt;https://damiedchallenge.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The full code can be viewed via the GitHub repository below. Also the GitHub repo contains a README file which explains what the project is about and how users can navigate it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/CEO12DOLS/Earth-day-challenge.git" rel="noopener noreferrer"&gt;https://github.com/CEO12DOLS/Earth-day-challenge.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How i built it
&lt;/h2&gt;

&lt;p&gt;I built the Garden Tracker using HTML, CSS, and JavaScript with integration into the Solana ecosystem.&lt;/p&gt;

&lt;p&gt;The app connects to the Phantom Wallet using window.solana, allowing users to securely sign transactions.Also the application uses devnet tokens to sign transactions and not real tokens&lt;/p&gt;

&lt;p&gt;When a user plants a crop, the app creates a Solana transaction using Solana Web3.js and stores the planting data as a memo on-chain (e.g. “Planted Tomato at Backyard”). &lt;/p&gt;

&lt;p&gt;This approach demonstrates how blockchain can be used to record real-world activities like gardening in a transparent and verifiable way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Best Sustainability Impact - because it tracks real-world planting and promotes eco-friendly habits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Best Solana Project - It uses the Solana ecosystem with wallet and on-chain transactions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Solana Web3.js documentation&lt;/li&gt;
&lt;li&gt;Phantom Wallet documentation&lt;/li&gt;
&lt;li&gt;Inspiration from AI&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>javascript</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>An introduction about myself</title>
      <dc:creator>Dami_Crypt</dc:creator>
      <pubDate>Fri, 17 Oct 2025 23:39:11 +0000</pubDate>
      <link>https://forem.com/gilbert_dami/an-introduction-about-myself-47mh</link>
      <guid>https://forem.com/gilbert_dami/an-introduction-about-myself-47mh</guid>
      <description>&lt;p&gt;Hi, I’m Gilbert a website developer, crypto and luxury lover. I am looking to connect with other developers and grow in the tech space&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
