<?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: Sean</title>
    <description>The latest articles on DEV Community by Sean (@helloitsm3).</description>
    <link>https://dev.to/helloitsm3</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%2F87335%2Fe600f56f-5a65-415a-a6aa-56c64695861d.png</url>
      <title>DEV Community: Sean</title>
      <link>https://dev.to/helloitsm3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/helloitsm3"/>
    <language>en</language>
    <item>
      <title>What is Glass Wallet and how to use it?</title>
      <dc:creator>Sean</dc:creator>
      <pubDate>Fri, 18 Nov 2022 10:03:32 +0000</pubDate>
      <link>https://dev.to/helloitsm3/what-is-glass-wallet-and-how-to-use-it-fgk</link>
      <guid>https://dev.to/helloitsm3/what-is-glass-wallet-and-how-to-use-it-fgk</guid>
      <description>&lt;p&gt;Table of contents&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is Glass Wallet?&lt;/li&gt;
&lt;li&gt;Why Glass Wallet?&lt;/li&gt;
&lt;li&gt;Join the community&lt;/li&gt;
&lt;li&gt;Creating a wallet&lt;/li&gt;
&lt;li&gt;Requesting Tokens&lt;/li&gt;
&lt;li&gt;Minting NFTs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Glass Wallet?
&lt;/h2&gt;

&lt;p&gt;It is an upcoming mobile and browser wallet to allow users to interact with the &lt;a href="https://sui.io/" rel="noopener noreferrer"&gt;Sui&lt;/a&gt; blockchain. It allows you to manage your assets and connect to other dApps all in one app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Glass Wallet?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;It is a non-custodial wallet - Only you have access to the data, passwords and private keys.&lt;/li&gt;
&lt;li&gt;Supports both mobile and web browser&lt;/li&gt;
&lt;li&gt;dApp store to allow you to have quick access to the feature and SUI projects with just one click.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Join the community
&lt;/h2&gt;

&lt;p&gt;With close to 18,000 members on our &lt;a href="https://discord.gg/MPMYd4CEdS" rel="noopener noreferrer"&gt;Discord server&lt;/a&gt;, we are one of the largest, if not, the largest wallet community for SUI. Feel free to join the server to meet other like minded individuals and also to be part of the early supporter for the Glass Wallet community 🥳&lt;/p&gt;

&lt;p&gt;Feel free to download the app here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://apps.apple.com/app/glass-wallet/id6443949035" rel="noopener noreferrer"&gt;iOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.google.com/store/apps/details?id=app.glasswallet" rel="noopener noreferrer"&gt;Android&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Official links&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.glasswallet.app/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://glasswallet.app/" rel="noopener noreferrer"&gt;Official website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.gg/MPMYd4CEdS" rel="noopener noreferrer"&gt;Discord server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating a wallet
&lt;/h2&gt;

&lt;p&gt;Creating wallet is very simple. All you need to do is to follow the instructions given when you first launch the app.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You should see this page when you first launch the app. Click on the "Get Started" button and it'll re-direct you to the next step.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F9EqwV4T.jpeg" 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%2Fi.imgur.com%2F9EqwV4T.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agree to the privacy policy then select "Create Wallet Now"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FRnvFI0F.jpeg" 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%2Fi.imgur.com%2FRnvFI0F.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should now see a page that gives you 2 option on whether to create or import a wallet.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FrXtZjpE.jpeg" 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%2Fi.imgur.com%2FrXtZjpE.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should see this page if you select "Import a wallet". It will ask you for your 12-word passphrase and once you key in, you should be able to load your wallet.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F7SvkQg6.jpeg" 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%2Fi.imgur.com%2F7SvkQg6.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you're like me who selected "Create a new wallet", you should see this page. This will ask you for your password which will prompt you every time you launch the app.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FJJSrQRd.jpeg" 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%2Fi.imgur.com%2FJJSrQRd.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you're done setting up your password, you will be directed to a page with your seed phrase. &lt;strong&gt;You should store your passphrase securely and not send it to anyone.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FJJSrQRd.jpeg" 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%2Fi.imgur.com%2FJJSrQRd.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally! You're done creating your wallet using Glass Wallet app. We will automatically airdrop you 0.05 SUI for every wallet that you've successfully created. Isn't that awesome?&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F5WhFjr5.jpeg" 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%2Fi.imgur.com%2F5WhFjr5.jpeg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do I request more tokens from the faucet?
&lt;/h2&gt;

&lt;p&gt;The amazing thing about Glass Wallet is that we have built-in a faucet into the wallet which allows you to request for a devnet token on the SUI blockchain. Here are the steps to request for a token from the faucet&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Select the menu at the top right&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FnK6ebuv.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%2Fi.imgur.com%2FnK6ebuv.jpg" width="591" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select either one of the accounts that you want to request from faucet&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FR7CNwnu.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%2Fi.imgur.com%2FR7CNwnu.jpg" width="750" height="1284"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should see a "Request test SUI tokens".&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FhObInFy.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%2Fi.imgur.com%2FhObInFy.jpg" width="750" height="1286"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on it and you will be able to get 0.05 tokens.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do I mint using Glass wallet?
&lt;/h2&gt;

&lt;p&gt;You currently cannot mint NFT using the wallet app. However, you can send and receive NFTs from within the app. This allows you to easily trade NFTs between wallets in the app. &lt;/p&gt;

&lt;p&gt;You can click &lt;a href="https://docs.glasswallet.app/features/transactions/receive-tokens-nfts" rel="noopener noreferrer"&gt;here&lt;/a&gt; to find out more on how to receive NFTs.&lt;/p&gt;

&lt;p&gt;You can click &lt;a href="https://docs.glasswallet.app/features/transactions/send-nfts" rel="noopener noreferrer"&gt;here&lt;/a&gt; to find out more on how to send NFTs.&lt;/p&gt;

</description>
      <category>sass</category>
    </item>
    <item>
      <title>Free platform to host your full stack application</title>
      <dc:creator>Sean</dc:creator>
      <pubDate>Fri, 11 Nov 2022 04:49:34 +0000</pubDate>
      <link>https://dev.to/helloitsm3/free-platform-to-host-your-full-stack-application-37ho</link>
      <guid>https://dev.to/helloitsm3/free-platform-to-host-your-full-stack-application-37ho</guid>
      <description>&lt;p&gt;Hello web developers!👋&lt;/p&gt;

&lt;p&gt;Ever thought of where you can host your small scale full stack application completely for free? You heard it right! There are many services out there that supports developers by providing a free tier to their service. In this post, I'll be guiding you through the process of hosting it your application on these platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: I won't be going through how to build the frontend and backend. I'll only be showing you how to host your application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Table of Contents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend&lt;/li&gt;
&lt;li&gt;Backend&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frontend
&lt;/h2&gt;

&lt;p&gt;Since Next.js is popular for web development, I'll be using Next.js to demonstrate the deployment on Vercel. Vercel also supports hosting for CRA but it supports best for Next.js since this framework is created by the Vercel team. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a repository on GitHub for your frontend app.&lt;/li&gt;
&lt;li&gt;Log into your &lt;a href="https://vercel.com"&gt;Vercel&lt;/a&gt; account and click on &lt;code&gt;Add new &amp;gt; Project&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nlllM4bT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/rDJ5vV8.png" width="880" height="147"&gt;
&lt;/li&gt;
&lt;li&gt;You should see something like this. Click on &lt;code&gt;Continue with GitHub&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ozRg66Hg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/DP6UyHJ.png" width="880" height="517"&gt;
&lt;/li&gt;
&lt;li&gt;Find your project and click on &lt;code&gt;import&lt;/code&gt; then click &lt;code&gt;Deploy&lt;/code&gt;. &lt;strong&gt;Note&lt;/strong&gt;: If your frontend application is inside a &lt;code&gt;frontend&lt;/code&gt; folder, make sure to change &lt;code&gt;Root Directory&lt;/code&gt; to &lt;code&gt;./frontend&lt;/code&gt;. This will tell Vercel where to find your frontend application
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cZMNJ30i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/UpTZ9HJ.png" width="880" height="530"&gt;
&lt;/li&gt;
&lt;li&gt;That's it! You've successfully deployed your Next.js application on Vercel 🥳&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Backend
&lt;/h2&gt;

&lt;p&gt;I'll assume that you are using &lt;a href="https://expressjs.com/"&gt;ExpressJS&lt;/a&gt; for your backend server. The reason why we are using a separate server is because Vercel only allows your serverless function to run for up to 10 seconds in your Next.js app. If you requests manages to run within 10 seconds then you're free to use Vercel's serverless function but for most cases, you'll need to use ExpressJS as your requests will usually take more than 10 seconds to receive a response.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a repository on GitHub for your backend server. &lt;strong&gt;Note&lt;/strong&gt;: If you don't want to create a new repository for your server, you can just host it together with your frontend repository. Just create a folder named &lt;code&gt;backend&lt;/code&gt; and place your ExpressJS files in it.&lt;/li&gt;
&lt;li&gt;Visit &lt;a href="https://dashboard.render.com/"&gt;Render&lt;/a&gt; to host your server. Your dashboard should look like this:
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4_dPHuYQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/qRY3XFR.png" width="880" height="167"&gt;
&lt;/li&gt;
&lt;li&gt;You can select &lt;code&gt;New &amp;gt; Web Service&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--208sAG6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/GsbRkdi.png" width="880" height="312"&gt;
&lt;/li&gt;
&lt;li&gt;Your repository should appear. Select &lt;code&gt;Connect&lt;/code&gt; and it should automatically connect to your repository
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vvEBl8PB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/SBgYQJi.png" width="880" height="630"&gt;
&lt;/li&gt;
&lt;li&gt;Fill out all the necessary details. Make sure your &lt;code&gt;root directory&lt;/code&gt; follows the name of the folder that your backend app is in. For mine, it's in &lt;code&gt;backend&lt;/code&gt; folder.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--frU3d_1N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/XFzojnn.png" width="880" height="652"&gt;
&lt;/li&gt;
&lt;li&gt;Scroll all the way down and click on &lt;code&gt;Create Web Service&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;That's it. You've successfully deployed your backend server on Render&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  MongoDB
&lt;/h2&gt;

&lt;p&gt;NoSQL database seems to be very popular and MongoDB is the go-to for this. If you are looking to run your MongoDB instance for free, you should check out &lt;a href="https://www.mongodb.com/"&gt;MongoDB Atlas&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create your account and verify it&lt;/li&gt;
&lt;li&gt;Once you've done it, you should be re-directed to the dashboard here
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XgMFYxIJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/pDTnRd1.png" width="880" height="347"&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;code&gt;Create Database&lt;/code&gt; and select the free tier
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0uUZcPOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/qApwAAr.png" width="880" height="758"&gt;
&lt;/li&gt;
&lt;li&gt;Select your configuration and click &lt;code&gt;Create cluster&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3haKp-j0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/F026qYh.png" width="880" height="854"&gt;
&lt;/li&gt;
&lt;li&gt;Create your user and your IP address then click &lt;code&gt;Finish and Close&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WqAqtnjk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/YBibELT.png" width="704" height="904"&gt;
&lt;/li&gt;
&lt;li&gt;That's it. You've successfully created your MongoDB instance.&lt;/li&gt;
&lt;li&gt;Now all you need to do is click on &lt;code&gt;Connect&lt;/code&gt; and it should guide you on how to connect to your database instance.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vo2B6oCF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/u39kePc.png" width="880" height="505"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Since you're hosting your server on render.com, you need to configure your network access so that your server can connect to your database when you host it online.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NQX5xnkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/DLMHuX9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NQX5xnkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/DLMHuX9.png" width="880" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that you like this short write up and continue building your MVP on these free platforms 🥳&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>How to setup Blazor App with Nginx and Docker</title>
      <dc:creator>Sean</dc:creator>
      <pubDate>Sun, 06 Sep 2020 07:08:44 +0000</pubDate>
      <link>https://dev.to/helloitsm3/how-to-setup-blazor-app-with-nginx-and-docker-11le</link>
      <guid>https://dev.to/helloitsm3/how-to-setup-blazor-app-with-nginx-and-docker-11le</guid>
      <description>&lt;p&gt;Welcome to my first post on how to set up a Blazor WASM project with Nginx and Docker. I hope that after reading this guide, you'll be able to set up your own blazor project. You can check out the git repository on &lt;a href="https://gitlab.com/helloitsm3/blazor-template" rel="noopener noreferrer"&gt;Gitlab&lt;/a&gt; and &lt;a href="https://github.com/helloitsm3/blazor-wasm-template" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction to Blazor&lt;/li&gt;
&lt;li&gt;Creating a Blazor App&lt;/li&gt;
&lt;li&gt;Creating Dockerfile&lt;/li&gt;
&lt;li&gt;Creating Nginx Conf&lt;/li&gt;
&lt;li&gt;Running Blazor App&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction to Blazor &lt;a&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Blazor is a framework that enables developers to develop modern web applications using .NET and C# without the need for Javascript. No plugin is needed as it can run on any modern web browsers on any devices. Let's move on and start building our application.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Creating a Blazor WASM Project &lt;a&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Open up Visual Studio and create a Blazor App&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5oijjlulh18k229m6iwc.PNG" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5oijjlulh18k229m6iwc.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow the image below and click on create&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fathcavofozu6m0m67u2c.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fathcavofozu6m0m67u2c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Creating Dockerfile &lt;a&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a &lt;code&gt;Dockerfile&lt;/code&gt; in root folder&lt;/li&gt;
&lt;li&gt;The code below is the dockerfile configuration
```dockerfile
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Here, we include the dotnet core SDK as the base to build our app
&lt;/h1&gt;

&lt;p&gt;FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env&lt;/p&gt;

&lt;h1&gt;
  
  
  Setting the work directory for our app
&lt;/h1&gt;

&lt;p&gt;WORKDIR /BlazorApp1&lt;/p&gt;

&lt;h1&gt;
  
  
  We copy the .csproj of our app to root and
&lt;/h1&gt;

&lt;h1&gt;
  
  
  restore the dependencies of the project.
&lt;/h1&gt;

&lt;p&gt;COPY /BlazorApp1/BlazorApp1.csproj .&lt;br&gt;
RUN dotnet restore "BlazorApp1.csproj"&lt;/p&gt;

&lt;h1&gt;
  
  
  We proceed by copying all the contents in
&lt;/h1&gt;

&lt;h1&gt;
  
  
  the main project folder to root and build it
&lt;/h1&gt;

&lt;p&gt;COPY /BlazorApp1 .&lt;br&gt;
RUN dotnet build "BlazorApp1.csproj" -c Release -o /build&lt;/p&gt;

&lt;h1&gt;
  
  
  Once we're done building, we'll publish the project
&lt;/h1&gt;

&lt;h1&gt;
  
  
  to the publish folder
&lt;/h1&gt;

&lt;p&gt;FROM build-env AS publish&lt;br&gt;
RUN dotnet publish "BlazorApp1.csproj" -c Release -o /publish&lt;/p&gt;

&lt;h1&gt;
  
  
  We then get the base image for Nginx and set the
&lt;/h1&gt;

&lt;h1&gt;
  
  
  work directory
&lt;/h1&gt;

&lt;p&gt;FROM nginx:alpine AS final&lt;br&gt;
WORKDIR /usr/share/nginx/html&lt;/p&gt;

&lt;h1&gt;
  
  
  We'll copy all the contents from wwwroot in the publish
&lt;/h1&gt;

&lt;h1&gt;
  
  
  folder into nginx/html for nginx to serve. The destination
&lt;/h1&gt;

&lt;h1&gt;
  
  
  should be the same as what you set in the nginx.conf.
&lt;/h1&gt;

&lt;p&gt;COPY --from=publish /publish/wwwroot /usr/local/webapp/nginx/html&lt;br&gt;
COPY nginx.conf /etc/nginx/nginx.conf&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Creating a Nginx Conf &amp;lt;a name="chapter-3"&amp;gt;&amp;lt;/a&amp;gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a &lt;code&gt;nginx.conf&lt;/code&gt; in the root folder
```nginx.conf&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;events { }&lt;br&gt;
http {&lt;br&gt;
    include mime.types;&lt;br&gt;
    types {&lt;br&gt;
        application/wasm wasm;&lt;br&gt;
    }&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;

    # Here, we set the location for Nginx to serve the files
    # by looking for index.html
    location / {
        root /usr/local/webapp/nginx/html;
        try_files $uri $uri/ /index.html =404;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;}&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;Running Blazor App &lt;a&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Once you're done with all the configurations, you should be able to run your web app on the browser.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You'll first need to build the project by running &lt;code&gt;docker build -t blazor-wasm .&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;docker build&lt;/code&gt; tells docker that you're planning to build the project. &lt;code&gt;-t&lt;/code&gt; indicates that you're going to set a tag/name for your build and &lt;code&gt;blazor-wasm&lt;/code&gt; is the name of your build and &lt;code&gt;.&lt;/code&gt; is the path for your build.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once the build is successfully done, run &lt;code&gt;docker run -p 8080:80 --name webapp blazor-wasm&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;docker run&lt;/code&gt; tells docker that you're going to run your web application. &lt;code&gt;-p 8080:80&lt;/code&gt; sets the port for hosting your web app. &lt;code&gt;--name webapp&lt;/code&gt; sets the name for your docker container. &lt;code&gt;blazor-wasm&lt;/code&gt; is the name of your image that you just created when running &lt;code&gt;docker build&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;http://localhost:8080&lt;/code&gt; and you should be able to see your web application on the browser.
&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%2Fi%2Feykk9ul8231ggsvc7i2v.PNG" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope that after reading this guide, you are able to run your own Blazor app in docker. A special thanks to &lt;a href="https://chrissainty.com" rel="noopener noreferrer"&gt;Chris Sainty&lt;/a&gt; for helping me understand how to containerise my Blazor app with Docker and Nginx. You can check out his article &lt;a href="https://chrissainty.com/containerising-blazor-applications-with-docker-containerising-a-blazor-webassembly-app/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>webassembly</category>
      <category>blazor</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Which service provider should I use to host my backend for production?</title>
      <dc:creator>Sean</dc:creator>
      <pubDate>Fri, 02 Aug 2019 03:53:18 +0000</pubDate>
      <link>https://dev.to/helloitsm3/which-service-provider-should-i-use-to-host-my-backend-for-production-gc0</link>
      <guid>https://dev.to/helloitsm3/which-service-provider-should-i-use-to-host-my-backend-for-production-gc0</guid>
      <description></description>
      <category>javascript</category>
      <category>node</category>
      <category>heroku</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
