<?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: Jovells</title>
    <description>The latest articles on DEV Community by Jovells (@jovells).</description>
    <link>https://dev.to/jovells</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1172077%2F25840c2b-d354-4dbb-992c-77f85f494361.png</url>
      <title>DEV Community: Jovells</title>
      <link>https://dev.to/jovells</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jovells"/>
    <language>en</language>
    <item>
      <title>Tutorial: Deploying a Scaffold-ETH 2 App on Fleek.xyz</title>
      <dc:creator>Jovells</dc:creator>
      <pubDate>Tue, 03 Sep 2024 04:18:53 +0000</pubDate>
      <link>https://dev.to/jovells/tutorial-deploying-a-scaffold-eth-2-app-on-fleekxyz-14h6</link>
      <guid>https://dev.to/jovells/tutorial-deploying-a-scaffold-eth-2-app-on-fleekxyz-14h6</guid>
      <description>&lt;p&gt;Deploying a Scaffold-ETH 2 app on Fleek can be a bit tricky due to its specific requirements for static site generation. This tutorial will walk you through the entire process, ensuring a successful deployment by exporting your app as a Single Page Application (SPA). We'll cover necessary configurations, tips for handling dynamic routes, and a step-by-step guide on how to deploy the app on Fleek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of Next.js and Scaffold-ETH 2.&lt;/li&gt;
&lt;li&gt;Node.js and Yarn installed on your local machine.&lt;/li&gt;
&lt;li&gt;A Fleek account for deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Configure &lt;code&gt;next.config.js&lt;/code&gt; for SPA Export
&lt;/h2&gt;

&lt;p&gt;By default, Next.js apps do not export as SPAs, but you can configure this in the &lt;code&gt;next.config.js&lt;/code&gt; file. This is essential because Fleek requires the app to be an SPA for successful deployment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the &lt;code&gt;next.config.js&lt;/code&gt; file located in the &lt;code&gt;packages/nextjs&lt;/code&gt; directory of your Scaffold-ETH 2 project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the following configuration to export the app as an SPA:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;export&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// Other configurations if needed&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This configuration ensures that Next.js exports a static version of your app suitable for deployment on Fleek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Handle Dynamic Routes
&lt;/h2&gt;

&lt;p&gt;Next.js dynamic routes (&lt;code&gt;[param].js&lt;/code&gt;) are not supported in static exports because they cannot be resolved at build time. You need to refactor your app to use query parameters instead of dynamic routes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Converting Dynamic Routes to Query Params
&lt;/h3&gt;

&lt;p&gt;Suppose you have a dynamic route like this:&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="c1"&gt;// pages/post/[id].js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useRouter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/router&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;Post&lt;/span&gt; &lt;span class="o"&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="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRouter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Post&lt;/span&gt; &lt;span class="na"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Post&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can convert this into a standard route using query parameters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Change the file from &lt;code&gt;[id].js&lt;/code&gt; to a regular &lt;code&gt;post.js&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// pages/post.js&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useRouter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/router&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;Post&lt;/span&gt; &lt;span class="o"&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="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useRouter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Post&lt;/span&gt; &lt;span class="na"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Post&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update any links pointing to the dynamic route to use query parameters:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/link&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;Home&lt;/span&gt; &lt;span class="o"&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="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/post?id=1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Post&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Link&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/post?id=2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Post&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Link&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach ensures compatibility with static site export since all routes are now resolved at build time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Modify the Build Command
&lt;/h2&gt;

&lt;p&gt;Fleek uses the &lt;code&gt;build command&lt;/code&gt; to compile your app before deploying. Since Scaffold-ETH 2 uses a monorepo structure, you'll need to specify the correct build command and output directory.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Set the build command to:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; yarn next:build
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;output directory&lt;/code&gt; should be set to:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;packages/nextjs/out
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This configuration ensures that Fleek correctly builds and exports the static files needed for deployment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you misconfigure the build settings, you may encounter a "dist folder not found" error. Ensure that &lt;code&gt;output: "export"&lt;/code&gt; is correctly configured in your &lt;code&gt;next.config.js&lt;/code&gt; file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 4: Test the Build Locally
&lt;/h2&gt;

&lt;p&gt;Before deploying your app to Fleek, it's crucial to ensure that the build process works locally. This helps catch any build issues early on.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Run the following command in your local environment:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn run next:build
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix any build issues that arise. This may include resolving errors related to dynamic imports, static asset paths, or route configurations.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By testing the build locally, you can ensure that the deployment to Fleek will proceed smoothly without unexpected errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Deploy on Fleek
&lt;/h2&gt;

&lt;p&gt;Now that your app is configured correctly and the build process has been tested locally, you can proceed with deploying it on Fleek.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Log in to your Fleek account&lt;/strong&gt;: Navigate to &lt;a href="https://fleek.xyz" rel="noopener noreferrer"&gt;Fleek&lt;/a&gt; and log in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a New Site&lt;/strong&gt;: Click on "Create New Site" and connect your GitHub repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configure Build Settings&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build Command&lt;/strong&gt;: Set this to &lt;code&gt;yarn &amp;amp;&amp;amp; yarn next:build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish Directory&lt;/strong&gt;: Set this to &lt;code&gt;packages/nextjs/out&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deploy&lt;/strong&gt;: Click on "Deploy Site." Fleek will start building and deploying your app. The process may take a few minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Check Deployment&lt;/strong&gt;: Once the deployment is complete, you can view your live site using the provided URL.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Troubleshooting Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build Errors&lt;/strong&gt;: Ensure that all routes are resolvable at build time. Dynamic routes should be converted to use query parameters as shown above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing Assets&lt;/strong&gt;: Ensure that all static assets are correctly referenced and included in the &lt;code&gt;out&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Dist Folder Not Found" Error&lt;/strong&gt;: This error typically occurs due to incorrect build configuration. Ensure that &lt;code&gt;output: "export"&lt;/code&gt; is correctly configured in your &lt;code&gt;next.config.js&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;For further reading and additional help, refer to the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/app/building-your-application/deploying/static-exports" rel="noopener noreferrer"&gt;Next.js Documentation: Static Exports&lt;/a&gt;: Official documentation on how to configure your Next.js application for static export.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fleek.xyz/docs/platform/deployments/" rel="noopener noreferrer"&gt;Fleek Documentation: Deployments&lt;/a&gt;: Official guide on deploying apps on Fleek, including how to set up your build and publish settings.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fleek.xyz/docs/tutorials/" rel="noopener noreferrer"&gt;Fleek Tutorials&lt;/a&gt;: Additional tutorials and guides provided by Fleek for deploying different types of web applications.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Deploying a Scaffold-ETH 2 app on Fleek requires careful configuration, especially when dealing with dynamic routes and static exports. By following this tutorial, you should be able to successfully deploy your app as a SPA on Fleek. Remember to test your app locally before deployment to ensure all routes and assets are correctly handled.&lt;/p&gt;

&lt;p&gt;Feel free to reach out for any questions or issues during your deployment process!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My Memorable Experience at the MEST/MASTERCARD Web 3.0 Bootcamp, Facilitated by MOWBLOX</title>
      <dc:creator>Jovells</dc:creator>
      <pubDate>Thu, 28 Sep 2023 08:27:58 +0000</pubDate>
      <link>https://dev.to/jovells/my-memorable-experience-at-the-mestmastercard-web-30-bootcamp-facilitated-by-mowblox-36km</link>
      <guid>https://dev.to/jovells/my-memorable-experience-at-the-mestmastercard-web-30-bootcamp-facilitated-by-mowblox-36km</guid>
      <description>&lt;p&gt;In the ever-evolving world of technology, there are moments when a unique opportunity surfaces, beckoning us to embark on a journey that promises to reshape our understanding and ignite our passions. Such was the siren call of the MEST/MASTERCARD Web 3.0 bootcamp, which I discovered through Crypthority, a community of blockchain and web3 explorers. The prospect of deepening my understanding of blockchain technology filled me with excitement. After successfully completing the application process and required tests, I was thrilled to be selected for this incredible opportunity.&lt;/p&gt;

&lt;p&gt;The bootcamp commenced with a warm welcome and an introduction to our tutors,  members of the Mowblox team. From the very first day, we were immersed in the realm of Web 3.0, commencing with basic lessons on the internet and its evolution. By the end of that week, we were already signing messages with private keys and transmitting them over a network for verification.&lt;/p&gt;

&lt;p&gt;By the end of week two, we had begun our journey into Solidity, the programming language for building smart contracts that operate on Ethereum. Remarkably, by the end of the third week, we were already building smart contracts.&lt;/p&gt;

&lt;p&gt;Week four introduced us to the impending EthAccra hackathon. Although many of us were relatively new to blockchain development, we mustered the confidence to participate. The hackathon proved to be a formidable challenge, as we were tasked with rapidly building real-world projects. Nevertheless, this experience enriched our understanding, and some participants even earned bounties for their innovative solutions. My team was honored to receive a bounty for building our project with The Graph, a blockchain indexing protocol.&lt;/p&gt;

&lt;p&gt;Weeks 5 and 6 brought further enrichment to our learning journey. Our tutors led us to explore advanced concepts such as account abstraction and other Ethereum Improvement Proposals (EIPs). During these weeks, our enriched understanding led to engaging discussions, offering us deeper insights into the evolving landscape of blockchain technology.&lt;/p&gt;

&lt;p&gt;In addition to individual assignments we were given throughout the bootcamp, we were organized into groups and assigned mini-projects, each offering bounties for the most exceptional teams. The competitive atmosphere further fueled our determination, and my team's achievement in winning one of those was undoubtedly a highlight of the bootcamp.&lt;/p&gt;

&lt;p&gt;Fridays during the bootcamp featured unique one-hour sector talk sessions, during which industry experts shared their invaluable real-world insights.&lt;/p&gt;

&lt;p&gt;Aside the enriching lessons, we were treated to delectable dishes for lunch and dinner. This culinary experience was an unexpected delight, adding to the overall enjoyment of the program. Furthermore, we received weekly stipends for transportation, a thoughtful gesture aimed at alleviating the financial burden of commuting to the bootcamp and enabling us to immerse ourselves fully in the learning experience. These stipends were however not handed out freely; they were earned through consistent class attendance (at least 70% of the time) and timely submission of assignments.&lt;/p&gt;

&lt;p&gt;As the bootcamp drew to a close, the camaraderie among participants, late-night coding sessions, and shared meals became cherished memories etched in our minds.&lt;/p&gt;

&lt;p&gt;The program was brought to a climax with a graduation ceremony held on September 25th. We were tasked with developing real-world solutions and presenting them to industry professionals and business leaders. The rigorous preparation leading up to this moment was a testament to our dedication. As we took turns presenting our ideas, the sense of accomplishment was palpable. Personally, I was honored to receive the award for the best Peer Mentor, an accolade that filled me with a sense of accomplishment.&lt;/p&gt;

&lt;p&gt;The MEST/MASTERCARD Web 3.0 bootcamp was an immensely valuable experience. The openness and support of our tutors, the interactive class sessions, and the opportunity to connect with like-minded individuals made it an extraordinary journey. As I reflect upon this experience, I am brimming with gratitude for the knowledge gained, the connections established, and the memories created. This bootcamp has indelibly marked my journey into the world of Web 3.0, and I eagerly anticipate the exciting possibilities that lie ahead in this transformative field.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
