<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tech and Travel Blog]]></title><description><![CDATA[Tech and Travel Blog]]></description><link>https://blog.sandeepbhat.co.in</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 09:36:56 GMT</lastBuildDate><atom:link href="https://blog.sandeepbhat.co.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How did I set my website up?]]></title><description><![CDATA[This article describes the way things are set up by me for the sites that I operate. I will try my best to make it as simple and as clear as possible for all of you to read.
What sites are being operated by me?

sandeepbhat.co.in

blog.sandeepbhat.co...]]></description><link>https://blog.sandeepbhat.co.in/how-did-i-set-my-website-up</link><guid isPermaLink="true">https://blog.sandeepbhat.co.in/how-did-i-set-my-website-up</guid><category><![CDATA[Blogging]]></category><category><![CDATA[dns]]></category><category><![CDATA[dns-records]]></category><category><![CDATA[portfolio]]></category><category><![CDATA[portfoliowebsite]]></category><dc:creator><![CDATA[Sandeep Bhat]]></dc:creator><pubDate>Mon, 03 Jul 2023 11:45:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/iar-afB0QQw/upload/fe25dd7922b8ed0e12057fc4fd0b9ca5.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This article describes the way things are set up by me for the sites that I operate. I will try my best to make it as simple and as clear as possible for all of you to read.</p>
<p><strong>What sites are being operated by me?</strong></p>
<ul>
<li><p>sandeepbhat.co.in</p>
</li>
<li><p>blog.sandeepbhat.co.in (sub-domain of my portfolio site)</p>
</li>
</ul>
<p><strong>Technologies and tools used</strong></p>
<ul>
<li><p>Hugo</p>
</li>
<li><p>GitHub (Git)</p>
</li>
<li><p>Netlify</p>
</li>
<li><p>Hashnode</p>
</li>
<li><p>GoDaddy</p>
</li>
</ul>
<p><strong>Steps taken to create a personal portfolio site from scratch</strong></p>
<ul>
<li><p>You start by buying a domain in GoDaddy. You can buy a domain easily in any of the Domain name registrars like GoDaddy, Namecheap, porkbun, gandi, etc.</p>
</li>
<li><p>Go to gohugo.io and choose an existing theme that fits your needs.</p>
</li>
<li><p>Follow the documentation to easily set up the site by adding your configurations in config.yaml. In short, you need to clone the theme and add it as a submodule in your repository under the "themes" folder in a hugo project structure. Sample hugo project structure can be seen in this <a target="_blank" href="https://github.com/sandyydk/Portfolio">repo</a>.</p>
</li>
<li><p>For more advanced customizing such as modifying the CSS or HTML layouts in a given theme, they can be overridden by creating the equivalent HTML or CSS files in your project inside "layouts". This can be left untouched if you do not need to make any changes to HTML or CSS files in the theme chosen by you.</p>
</li>
<li><p>Run <code>hugo server</code> to start a development server and check that your site loads fine in your local system.</p>
</li>
<li><p>Next, we need to decide how to host the website for public consumption. Assuming that the portfolio site is mostly a static site which is nothing but mostly a collection of HTML and CSS files in simple terms. This provides us with multiple options to deploy them</p>
<ul>
<li><p>S3 bucket in AWS or its equivalent in Azure or GCP bundled with GitHub Actions with the following configuration (for Azure). I started with this.</p>
</li>
<li><pre><code class="lang-yaml">  <span class="hljs-attr">name:</span> <span class="hljs-string">ci</span>

  <span class="hljs-attr">on:</span>
    <span class="hljs-attr">push:</span>
      <span class="hljs-attr">branches:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-string">master</span>

  <span class="hljs-attr">jobs:</span>
    <span class="hljs-attr">deploy:</span>
      <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-18.04</span>
      <span class="hljs-attr">steps:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Git</span> <span class="hljs-string">Checkout</span>
          <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/checkout@v2</span>
          <span class="hljs-attr">with:</span>
            <span class="hljs-attr">submodules:</span> <span class="hljs-literal">true</span>
            <span class="hljs-attr">fetch-depth:</span> <span class="hljs-number">0</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Fetching</span> <span class="hljs-string">Google</span> <span class="hljs-string">Analytics</span> <span class="hljs-string">ID</span>
          <span class="hljs-attr">uses:</span> <span class="hljs-string">microsoft/variable-substitution@v1</span>
          <span class="hljs-attr">with:</span>
            <span class="hljs-attr">files:</span> <span class="hljs-string">'config.yaml'</span>
          <span class="hljs-attr">env:</span>
              <span class="hljs-attr">googleAnalytics:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.GOOGLE_ID</span> <span class="hljs-string">}}</span>

        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Setup</span> <span class="hljs-string">Hugo</span>
          <span class="hljs-attr">uses:</span> <span class="hljs-string">peaceiris/actions-hugo@v2</span>
          <span class="hljs-attr">with:</span>
            <span class="hljs-attr">hugo-version:</span> <span class="hljs-string">"0.74.2"</span>

        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Build</span>
          <span class="hljs-attr">run:</span> <span class="hljs-string">hugo</span> <span class="hljs-string">--minify</span>

        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Azure</span> <span class="hljs-string">Login</span> <span class="hljs-string">Initialization</span>
          <span class="hljs-attr">uses:</span> <span class="hljs-string">azure/login@v1</span>
          <span class="hljs-attr">with:</span>
              <span class="hljs-attr">creds:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.AZURE_CREDENTIALS</span> <span class="hljs-string">}}</span>

        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Upload</span> <span class="hljs-string">to</span> <span class="hljs-string">Azure</span> <span class="hljs-string">blob</span> <span class="hljs-string">storage</span>
          <span class="hljs-attr">uses:</span> <span class="hljs-string">azure/CLI@v1</span>
          <span class="hljs-attr">with:</span> 
            <span class="hljs-attr">azcliversion:</span> <span class="hljs-number">2.18</span><span class="hljs-number">.0</span>
            <span class="hljs-attr">inlineScript:</span> <span class="hljs-string">|
                az storage blob upload-batch --account-name sandyportfolio -d '$web' -s ./public
</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Azure</span> <span class="hljs-string">CLI</span> <span class="hljs-string">Logout</span>
          <span class="hljs-attr">run:</span> <span class="hljs-string">|</span>
              <span class="hljs-string">az</span> <span class="hljs-string">logout</span>
</code></pre>
</li>
<li><p>Build and host on Netlify. This enables CI/CD in the sense that the moment you commit to the master branch in the GitHub repo, it triggers build and deployment automatically. You can also set up integrations like Lighthouse for speed testing, push sitemap to Google servers for better search result matching and many more such integrations.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688383829265/7f6d3186-7861-4946-93b2-d67ad2bb965d.png" alt="Netlify Build Config" class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<p><strong>DNS configuration</strong></p>
<p>Having hosted my sites in two different places -</p>
<ul>
<li><p>Blog in hashnode that gets the benefit of the ready audience with managed hosting</p>
</li>
<li><p>Portfolio site self hosted in Netlify</p>
</li>
</ul>
<p>This means that I need to manage DNS to ensure the single domain owned by me (sandeepbhat.co.in) can be used for both purposes by way of sub-domains.</p>
<ul>
<li><p>DNS points to Nameservers of Netlify in GoDaddy which is the DNS registrar for me.</p>
</li>
<li><p>DNS records in Netlify to point to the portfolio site and hashnode for the blog.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688384519034/491bc2f6-71d0-4d37-90e4-b5bc0f098df3.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>This concludes a brief blog on how my sites are set up and configured for easy access. As you can see it's pretty easy to get started and there are multiple options available to anyone who wants to start hosting blogs or portfolio sites.</p>
]]></content:encoded></item><item><title><![CDATA[How can you start your own blog?]]></title><description><![CDATA[As an engineer, I always wanted to set up a blog site to put my thoughts into words. This is pretty easy to achieve these days. You can get yourself a working blog in no time. Let's list out the different options available to you before we proceed fu...]]></description><link>https://blog.sandeepbhat.co.in/how-can-you-start-your-own-blog</link><guid isPermaLink="true">https://blog.sandeepbhat.co.in/how-can-you-start-your-own-blog</guid><category><![CDATA[#howtos]]></category><category><![CDATA[Blogging]]></category><category><![CDATA[blog]]></category><dc:creator><![CDATA[Sandeep Bhat]]></dc:creator><pubDate>Sat, 01 Jul 2023 08:31:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/3GZNPBLImWc/upload/d7df04cdf91a1e802d8a9973c375d39d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As an engineer, I always wanted to set up a blog site to put my thoughts into words. This is pretty easy to achieve these days. You can get yourself a working blog in no time. Let's list out the different options available to you before we proceed further.</p>
<h3 id="heading-option-1-readymade-blogging-websites">Option 1: Readymade blogging Websites</h3>
<p>This is the easiest option available. You can get started by using blogging websites like blogspot.com or hashnode.com and set up your blog in no time. There could be more similar options.</p>
<p>They provide you with a subdomain that uses their site's domain for example a site in hashnode can be like <em>"sandeepbhat.hashnode.dev"</em> by default. Some of them let you attach the site to a custom domain that you might own.</p>
<p>In my case, I own the domain "<em>sandeepbhat.co.in</em>". I created a sub-domain called "<em>blog.sandeepbhat.co.in</em>" under my existing domain by adding a new DNS entry of the type A record. What this means is that you could attach your blog created in say hashnode to point to your domain or sub-domain. I will show how my current setup is done with easy steps to replicate.</p>
<p><strong>Pros:</strong></p>
<ul>
<li><p>Best in class tooling for editing blogs or writing blogs which includes Grammarly etc.</p>
</li>
<li><p>Easy to use.</p>
</li>
<li><p>Needs no user management for hosting needs. Hence no separate payment or maintenance for hosting the blog.</p>
</li>
</ul>
<p><strong>Cons</strong>:</p>
<ul>
<li><p>Watermark of the website provider.</p>
</li>
<li><p>Need to upgrade for more features or to remove watermarks.</p>
</li>
<li><p>Cannot customize beyond what is made available.</p>
</li>
</ul>
<h3 id="heading-option-2-custom-blog">Option 2: Custom blog</h3>
<p>This option is for those who are more hands-on and want to build something from scratch. This can be time-consuming if you are doing it for the first time.</p>
<p>I for one ended up doing something like this with a difference. My portfolio site is self-hosted and managed from the ground up but my blog is hosted on hashnode. I did this using a single domain which I bought on GoDaddy (sandeepbhat.co.in).</p>
<p>So my portfolio site is up at sandeepbhat.co.in and my blog is at blog.sandeepbhat.co.in</p>
<p><strong>Pros:</strong></p>
<ul>
<li><p>A portfolio site made ground up lets me customize it to my taste instead of it being hosted on a readymade site where it can get drowned in a sea of other portfolio sites.</p>
</li>
<li><p>Blog hosted on hashnode helps me save time with the tooling it provides and I was not too interested in customizing it much. Blog involves lots more changes frequently as you publish more blogs whereas a portfolio site need not be updated frequently.</p>
</li>
<li><p>Working in a CI/CD Platform company (Harness.io) I wanted to ensure my portfolio site has CI/CD integrated as well. I achieved this using Netlify where-in I push updated code to my repository in GitHub and this triggers a build and deployment to Netlify. All without even a separate "build and deploy" button to click.</p>
</li>
<li><p>A single domain name saves me from additional costing as well. GoDaddy lets you configure a sub-domain which you need to set up in Hashnode as well. This sets up the necessary A record.</p>
</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li><p>Time consuming.</p>
</li>
<li><p>Need to integrate multiple tools manually like mailchimp for mailing or DISCUS for comments, etc.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Hello Peeps]]></title><description><![CDATA[As they say now or never. It's been a long time since I have been procrastinating about writing a blog. Well, what's the topic you may ask? It can be about tech or mostly about travel as the title of my blog currently says (This can change anytime). ...]]></description><link>https://blog.sandeepbhat.co.in/hello-peeps</link><guid isPermaLink="true">https://blog.sandeepbhat.co.in/hello-peeps</guid><category><![CDATA[First Blog]]></category><category><![CDATA[hello]]></category><dc:creator><![CDATA[Sandeep Bhat]]></dc:creator><pubDate>Fri, 30 Jun 2023 17:35:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/z8y36JocqkU/upload/2411523545472d50ff3f8ec666504d27.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As they say now or never. It's been a long time since I have been procrastinating about writing a blog. Well, what's the topic you may ask? It can be about tech or mostly about travel as the title of my blog currently says (This can change anytime). I believe writing would help me over time better articulate my thoughts and also act as a journal (of course sensitive stuff would be redacted!!).</p>
<p>That's it for my first entry in the newly launched blog. In the coming days, I intend to start documenting my experiences during my recent trip to Europe. Till then, stay tuned...</p>
]]></content:encoded></item></channel></rss>