<?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: saintmalik</title>
    <description>The latest articles on Forem by saintmalik (@saintmalik_).</description>
    <link>https://forem.com/saintmalik_</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%2F428015%2F1b548d8e-838b-475a-bf5d-3975ead11c84.png</url>
      <title>Forem: saintmalik</title>
      <link>https://forem.com/saintmalik_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/saintmalik_"/>
    <language>en</language>
    <item>
      <title>Open Source Internships and Programs in 2022</title>
      <dc:creator>saintmalik</dc:creator>
      <pubDate>Mon, 10 Jan 2022 18:25:48 +0000</pubDate>
      <link>https://forem.com/saintmalik_/open-source-internships-and-programs-5g99</link>
      <guid>https://forem.com/saintmalik_/open-source-internships-and-programs-5g99</guid>
      <description>&lt;p&gt;Before we start, i will like to say, All this programs listed are not mandatory for you to contribute to open source.&lt;/p&gt;

&lt;p&gt;But you can contribute to open source even if you don't get selected for this programs, you can always contribute to open source programs anytime you want.&lt;/p&gt;

&lt;p&gt;And also contributing to open source doesn't mean free, many companies have their open source projects and yeah they make money from it. &lt;/p&gt;

&lt;p&gt;See how the &lt;a href="https://www.indiehackers.com/podcast/007-john-onolan-of-ghost"&gt;Founder of Ghost made $63,000/mo building an Open Source Publishing Platform&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So there is more to Open Source than just sending PR's and submitting issues, you can also start your own open source projects.&lt;/p&gt;

&lt;p&gt;Let’s jump in.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Reinforcement Learning Open Source Fest
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BTG1elEu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835668624/YBYmjFeEW.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BTG1elEu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835668624/YBYmjFeEW.jpeg" alt="Reinforcement-Learning-Open-Source.jpg" width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Open Source Reinforcement Learning programs has the largest pay out in the list open source internships.&lt;/p&gt;

&lt;p&gt;You will recieve payment of $10,000 stipend if you get in, well this program is yet to be known by many, due to the fact that they just started the program in 2020.&lt;/p&gt;

&lt;p&gt;The program is focused on introducing students to open source reinforcement learning programs and software development and yet working alongside with researchers, data scientists, and engineers on the Real World Reinforcement Learning team at Microsoft Research NYC. &lt;/p&gt;

&lt;p&gt;The program is a four-month research programming project during academic breaks in universities from May-August, its fully remote and online.&lt;/p&gt;

&lt;h4&gt;
  
  
  Who is Eligible?
&lt;/h4&gt;

&lt;p&gt;Students who are in any accredited university, colleges doing their Masters, phD or Undergraduate programs.&lt;/p&gt;

&lt;h4&gt;
  
  
  Things you will be doing when you get in
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Submitting quality works, i.e writing codes that compile, doing unit tests and documentations, passing code reviews&lt;/li&gt;
&lt;li&gt;Regular standup with mentor /collaboartor&lt;/li&gt;
&lt;li&gt;Communicating and working with collegues&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; $10,000&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Deadline to apply:&lt;/em&gt; NILL for 2022&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; May - August Redacted (2022 application not opened yet)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://www.microsoft.com/en-us/research/academic-program/rl-open-source-fest/"&gt;Microsoft Reinforcement Learning Open Source Fest&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. MLH Open Source Fellowship
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KxbsXY8---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835594220/mmUDbOpNsU.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KxbsXY8---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835594220/mmUDbOpNsU.jpeg" alt="MLH Open Source Fellowship.jpg" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Major League Hacking is a well known platform amidst devs and hackers, so apart from their regular fellowships.&lt;/p&gt;

&lt;p&gt;They also have Open Source Focused Fellowship also, the fellowship is a 12 weeks Internship for aspiring software engineers.&lt;/p&gt;

&lt;p&gt;What you will be doing on the MLH Open Source Internships is contributing to any Open Source projects that most companies depends on,.&lt;/p&gt;

&lt;p&gt;That way you will be able to get first hand software engineering experience from seniors and experts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; The amount of the stipend is determined by your track and the country you are residing in during the program.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Upcoming Batches&lt;/em&gt; 

&lt;ul&gt;
&lt;li&gt;Spring 2022 Batch (Jan 31 – Apr 22, 2022)&lt;/li&gt;
&lt;li&gt;Summer 2022 Batch (May 30 – Aug 19, 2022)&lt;/li&gt;
&lt;li&gt;Fall 2022 Batch (Sept 19 – Dec 9, 2022)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://fellowship.mlh.io/programs/open-source"&gt;MLH Open Source Track&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Google Season of Docs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bbqxc84B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835718905/Yf-B__HEq.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bbqxc84B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835718905/Yf-B__HEq.jpeg" alt="google summer of code open source.jpg" width="639" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This program is for the documentation and technical writers geeks, No open source projects can do away with documentation,.&lt;/p&gt;

&lt;p&gt;So in this program you collaborate with other technical writer and open source organizations to write their documentations for them.&lt;/p&gt;

&lt;p&gt;Well they just wrapped up the 2021 Program and the 2022 Application form is yet to be out, keep on the look out during the period of July.&lt;/p&gt;

&lt;p&gt;Also note you must be aged  18 above to participate in Google Season of Docs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; Payment varies based on the Open Source organisation you are working with, but yeah it starts from $3000 above.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Deadline to apply:&lt;/em&gt; NILL for 2022 yet&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; July (2022 application not opened yet)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://developers.google.com/season-of-docs"&gt;Google Season of Docs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Season of KDE
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n2Of4atG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835753481/ctSIOEhZ2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n2Of4atG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835753481/ctSIOEhZ2.jpeg" alt="season of kde open source.jpg" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay Season of KDE is open to everyone to apply, student or not, everybody can apply, it is similar to Google Season of Code.&lt;/p&gt;

&lt;p&gt;You can participate in both code and non-code projects that benefits the KDE ecosystem.&lt;/p&gt;

&lt;p&gt;The 2022 application is out already and yeah it will last for 2 - 3 months, deadline for application for both students and mentor is January 15, 2022.&lt;/p&gt;

&lt;p&gt;Application form has been open since December.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; MERCHANDISE AND SWAG SENT OUT BY COURIER.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Deadline to apply:&lt;/em&gt; January 15, 2022&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; December 15, 2021 - May 20, 2022.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://season.kde.org/"&gt;Season of KDE&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Google Summer of Code(GSoC)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KZhqhDHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835770604/4bx0gIJAO.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KZhqhDHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835770604/4bx0gIJAO.jpeg" alt="google summer of code open source.jpg" width="639" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, GSoC is known to be for students, but recently google annouced that other people apart from students can also participate in GSoC.&lt;/p&gt;

&lt;p&gt;Bear in mind that you are not an employee of Google neither as an intern at Google. You’re working with Open Source organizations that you applied to or got selected in. &lt;/p&gt;

&lt;p&gt;Stipend is paid to you by those organizations, it might vary based on your performance and the work youve done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; $1000 above&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Timeline:&lt;/em&gt; Application opens in April, 2022 for contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://summerofcode.withgoogle.com/"&gt;Google Summer of Code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Hacktobefest
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JkUbfdYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835782970/O9gl7M-KP.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JkUbfdYc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1641835782970/O9gl7M-KP.png" alt="hacktoberfest open source internships.png" width="632" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You all wont want to miss Hacktoberfest, its full of fun activities, collaboration, working with different Open Source Organisations in the month of October.&lt;/p&gt;

&lt;p&gt;The program is seasonal, also i will like to clear out something, Hacktoberfest isn't just hosted by Digital Ocean alone.&lt;/p&gt;

&lt;p&gt;Alot of organizations do host their own Hacktoberfest event and reward contributors either through giftcards, coupons, keyboard, T-shirts, bottles, bags and stickers.&lt;/p&gt;

&lt;p&gt;You can check this &lt;a href="https://hacktoberfest-ekiti.web.app/documentation/hacktoberfest-company-list"&gt; list for companies that also hosted hacktoberfest in 2021&lt;/a&gt;, it will be updated with 2022 when hacktoberfest starts in October, 2022 also, do well and bookmark the page down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; Swags, Stickers.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Timeline:&lt;/em&gt; Application opons in October, 2022&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; October 01, 2021 - October 31, 2022.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://hacktoberfest.digitalocean.com"&gt;Hacktoberfest&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Outreachy
&lt;/h2&gt;

&lt;p&gt;When it comes to diversification in Open Source, Outreachy ranks number 1,  it's totally a remote internship that lasts for 3 months.&lt;/p&gt;

&lt;p&gt;Only few students are always selected and majority are women, physically impared individuals around the world.&lt;/p&gt;

&lt;p&gt;Outreachy Internship focuses on both documentation, programming and project marketing and more tech paths, its a paid internship, so you will get some funds for balling when you are done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; $7000&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Timeline:&lt;/em&gt; Application opens February 1, 2022&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; May, 2022 - August, 2022&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://www.outreachy.org"&gt;Outreachy&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Summer of Bitcoin
&lt;/h2&gt;

&lt;p&gt;Summer of Bitcoin is a summer internship program aimed at introducing university students to bitcoin and open-source development all over the world.&lt;/p&gt;

&lt;p&gt;You will learn how bitcoin works, contribute to bitcoin projects, Get a summer job offer, a full-time open-source development grant, or a position with one of the most reputable bitcoin companies and earn bitcoin as stipend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Program details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Region:&lt;/em&gt; Worldwide&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stipend:&lt;/em&gt; $3000&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Timeline:&lt;/em&gt; Application starts from January 1, 2022 - March 15, 2022&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Program dates:&lt;/em&gt; May 9, 2022 - August 29, 2022&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apply on their official page: &lt;a href="https://www.summerofbitcoin.org/apply"&gt;Summer of Bitcoin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for now.&lt;/p&gt;

&lt;p&gt;Peace out ✌️.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DOHackathon: Building super fast Portfolio with Hugo</title>
      <dc:creator>saintmalik</dc:creator>
      <pubDate>Wed, 06 Jan 2021 16:56:15 +0000</pubDate>
      <link>https://forem.com/saintmalik_/dohackathon-building-super-fast-portfolio-with-hugo-3bj5</link>
      <guid>https://forem.com/saintmalik_/dohackathon-building-super-fast-portfolio-with-hugo-3bj5</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;Guys, i have built my personal portfolio site using a static site generator called Hugo, made use of Hugo template alongside, I did redesign and twist things to my own taste.&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;Personal site/Portfolio&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;DO generated URL: &lt;a href="https://saintmalik-qu9u2.ondigitalocean.app/" rel="noopener noreferrer"&gt;https://saintmalik-qu9u2.ondigitalocean.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My Custom Domain: &lt;a href="https://saintmalik.me/" rel="noopener noreferrer"&gt;https://saintmalik.me/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&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%2Fywepqvhkx07ceptdi0lw.jpg" 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%2Fywepqvhkx07ceptdi0lw.jpg" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fbe3wy9pbiydyq34dwypw.jpg" 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%2Fbe3wy9pbiydyq34dwypw.jpg" alt="Alt Text"&gt;&lt;/a&gt;&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%2F7pfo6mbcnekwyrn90hmv.jpg" 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%2F7pfo6mbcnekwyrn90hmv.jpg" alt="Alt Text"&gt;&lt;/a&gt;&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%2F3jtyu7czfbbgc8z879ht.jpg" 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%2F3jtyu7czfbbgc8z879ht.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;My personal porfolio website, making it blazing fast and stress free with DO.&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/saintmalik/saintmalik.me" rel="noopener noreferrer"&gt;https://github.com/saintmalik/saintmalik.me&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;(What made you decide to build this particular app?)&lt;/p&gt;

&lt;p&gt;Well starting out my career, i see alot of collegues pulling up their folio page, says it speaks everything they need to whoever is looking for them, making them a present individual on the internet space.&lt;/p&gt;

&lt;p&gt;So i decide to pull up mine, a blogging section is available to share things i learn, also a work/project page to share with people what I've done or what am working on.&lt;/p&gt;

&lt;p&gt;(What inspired you?)&lt;/p&gt;

&lt;p&gt;I wanted my own personal portfolio to be out there, to speak about me, to share ideas also via blog section.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;(How did you utilize DigitalOcean’s App Platform? Did you learn something new along the way? Pick up a new skill?)&lt;/p&gt;

&lt;p&gt;Started by reading alot of tutorials and hugo documentations, then i proceed to install &lt;a href="https://gohugo.io/getting-started/installing/" rel="noopener noreferrer"&gt;Hugo CLI&lt;/a&gt; on my system.&lt;/p&gt;

&lt;p&gt;Then i picked one of the hugo themes that caught my attention, found some other designs attractive too, but the one i picked at first is what i wanted to work with,but there is a particular feature on the other themes that made me love them.&lt;/p&gt;

&lt;p&gt;So i went on building with the first theme i picked, keeping in mind that i will make the feature in other themes for mine also, yeah it was these Avatar feature, see a &lt;a href="https://themes.gohugo.io/theme/hugo-coder-portfolio/" rel="noopener noreferrer"&gt;demo here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So i keep coding and googling stuffs, there was a point i had issues with Hugo Server Auto reload, did so many research before getting ahead of the issue.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hugo server --disableFastRender
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thats the command that bailed me out✌️.&lt;/p&gt;

&lt;p&gt;I was new to Go lang and Hugo entirely, i had to keep googling stuffs, i spent up to three days before i could seperate the Title tag of the Home page from the one of the blogpost page.&lt;/p&gt;

&lt;p&gt;Spent tons of hours trying to figure out how to seperate the descriptions/meta description each posts will render to what the blog home section will render.&lt;/p&gt;

&lt;p&gt;Now coming to the issues of compressing my code because it was bulky, that brought me to learning about how compression works, googled alot of stuffs, found Babel and Webpack.&lt;/p&gt;

&lt;p&gt;The integration wasn't friendly for a beginner in Hugo, so i had to use the in app Assets minification techniques that hugo has, read more about it here &lt;a href="https://gohugo.io/hugo-pipes/minification/" rel="noopener noreferrer"&gt;Hugo Assets Minification&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also i learned about Asset bundling, i.e Concatenate many js files into one, to reduce the HTTP request made when your website loads up &lt;a href="https://gohugo.io/hugo-pipes/bundling/" rel="noopener noreferrer"&gt;Hugo Assets Bundling&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And yeah i also learned how &lt;a href="https://gohugo.io/hugo-pipes/fingerprint/" rel="noopener noreferrer"&gt;Fingerprinting/Hashing&lt;/a&gt; of files work, it makes it easy for caching web app assets, which definately helps the website to speed up on the next visit of a user.&lt;/p&gt;

&lt;p&gt;So whenever a cache is cleared on the web app, a new hash code is generated for the JS/CSS files, so the old url for those assets will result in 404.&lt;/p&gt;

&lt;p&gt;Then the new url will be fetched, isn't that awesome? Yeah it is.&lt;/p&gt;

&lt;p&gt;In addition, The color blending, yeah am not so good at picking colors, so i spent so many days changing the colors of my folio site, before settling with the one thats on the folio site right now.&lt;/p&gt;

&lt;p&gt;Lastly, i was able to get the heavy assets and code to load at 0.6seconds😎😉, thanks to DO Global CDN😊 which is powered with cloudflare. &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%2Fmqlbsi4jk6egb5cykn79.jpg" 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%2Fmqlbsi4jk6egb5cykn79.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also i dont have to worry about DDoS attack, DO has DDoS mitigation in place 🙈😎.&lt;/p&gt;

&lt;p&gt;I must say also, DO Auto Deployment to Github made everything more easy for me, so i worry less about the server, i make my changes on github and yeah it will reflect.&lt;/p&gt;

&lt;p&gt;The auto detection of static sites also save me the stress of doing some build run or writing some special config so it recognize the static app and trying to deploy😍.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://gohugo.io/documentation/" rel="noopener noreferrer"&gt;Hugo Documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://themes.gohugo.io/" rel="noopener noreferrer"&gt;Hugo Themes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>Heres how i got my Hugo site to load in less than 0.7 sec!</title>
      <dc:creator>saintmalik</dc:creator>
      <pubDate>Fri, 10 Jul 2020 11:35:04 +0000</pubDate>
      <link>https://forem.com/saintmalik_/heres-how-i-got-my-hugo-site-to-load-in-less-than-0-7-sec-52pd</link>
      <guid>https://forem.com/saintmalik_/heres-how-i-got-my-hugo-site-to-load-in-less-than-0-7-sec-52pd</guid>
      <description>&lt;p&gt;Am a guy that’s obsessed with web page speed optimisation, so here is what I did to optimise my Hugo site speed to load inless than 0.7 sec.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tjXXW828--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379139/team_stockholm/rprp6jllgnnetmbhen8j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tjXXW828--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379139/team_stockholm/rprp6jllgnnetmbhen8j.jpg" alt="alt text" title="Speeding Hugo Site" width="800" height="510"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--toqGJUHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/gyzyu9jk4grb8r3uf9vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--toqGJUHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/gyzyu9jk4grb8r3uf9vl.png" alt="Alt Text" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1# Removing Unused CSS, Minifying the CSS and adding Fingerprint:
&lt;/h2&gt;

&lt;p&gt;Yeah, I started by looking closely into CSS I felt ain't useful on the website and removing them.&lt;/p&gt;

&lt;p&gt;Then I minified the CSS using the below code and added fingerprint, wondering what the fingerprint does?&lt;/p&gt;

&lt;p&gt;the fingerprint helps in ensuring that fresh content are served, MD5 is the most common implementation of this idea.&lt;/p&gt;

&lt;p&gt;MD5 hash will be calculated and added to the CSS file, something like this &lt;strong&gt;“styles.min.c1783285df9c580224cb4b14efea9ff1.css”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The browser will keep cache this file and render it to users always.&lt;/p&gt;

&lt;p&gt;So let's say you make few changes to these CSS files and redeploy it, a new md5 hash will be added to it.&lt;/p&gt;

&lt;p&gt;So if you force clear cache the CSS for all browsers, the &lt;strong&gt;“styles.min.c1783285df9c580224cb4b14efea9ff1.css”&lt;/strong&gt; will appear as 404 files if you inspect via Chrome Dev Tool.&lt;/p&gt;

&lt;p&gt;So the fingerprinting of js and CSS assets helps you deliver fresh contents to users.&lt;/p&gt;

&lt;p&gt;Below is code to minify and add md5 fingerprint to your Hugo site, add the below codes to your header files, the &lt;em&gt;resources.Get “/styles.css”&lt;/em&gt; change the path of the CSS to your own CSS path.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{ $style := resources.Get "/styles.css" | minify | fingerprint "md5" }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2# Compress, Minify JS files, Optimize and Add fingerprints:
&lt;/h2&gt;

&lt;p&gt;JavaScript happens to be most of the rendering blocking assets in Pagespeed Insights, so since I have more than one JavaScript files.&lt;/p&gt;

&lt;p&gt;I will need to compress all the JavaScript files into one, so as to reduce the number of HTTP request made the server.&lt;/p&gt;

&lt;p&gt;Now that the JS files are combined and concatenated into the bundle.js file, let's minify them to remove the unnecessary spaces and comments using resources.Minify&lt;/p&gt;

&lt;p&gt;We’ve compressed the js into one, we’ve minified it, let's add the fingerprint, below are the lines of code that performs all the above explanation,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{ $main := resources.Get "js/main.js" }}
{{ $menu := resources.Get "js/menu.js" }}
{{ $prism := resources.Get "js/prism.js" }}
{{ $theme := resources.Get "js/theme.js" }}
{{ $secureJS := slice $main $menu $prism $theme | resources.Concat "bundle.js" | resources.Minify | resources.Fingerprint "sha512" }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script defer type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you check the above code well, you will see I added defer to the&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Yeah, loading Javascript files Asyncronaously will help your page speed and improve website load time.&lt;/p&gt;

&lt;p&gt;You might be thinking why didn’t I use async instead of defer, well defer seems to be the best practices.&lt;/p&gt;

&lt;p&gt;You can as well look into this &lt;a href="https://flaviocopes.com/javascript-async-defer/"&gt;guide&lt;/a&gt; and make your own decision, choosing can vary based on what project you are working on.&lt;/p&gt;

&lt;p&gt;To implement it, you need to create a javascript.html file in your Layouts/partial/, paste the following codes and call the JavaScript.html into the place you want it to be using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{ partial "javascript.html" . }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We aren’t done yet when you create a web application, you will need to see metrics on who visits the website, which brings in Analytics tools and the common on is google analytics, this is a third-party tool.&lt;/p&gt;

&lt;p&gt;Third-party assets are known to slow down web pages because you have no control over them, you can’t set a caching rule on it, but will still do something to it anyway.&lt;/p&gt;

&lt;p&gt;In Hugo here is the code that adds Google analytics to your sites and also loads it asynchronously&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{- if .Site.GoogleAnalytics }}
{{ template "_internal/google_analytics_async.html" . }}
{{- end}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To set your analytics tracking code, just add this to your config.toml file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;googleAnalytics = “Your Tracking Code”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's all for JS files.&lt;/p&gt;

&lt;h2&gt;
  
  
  3# Optimize your images:
&lt;/h2&gt;

&lt;p&gt;Images occupy 50% of a webpage, stop the habit of not optimising images before uploading them to your sites, according to web.dev, they advise webmasters and web dev to adopt the use of WebP image formats.&lt;/p&gt;

&lt;p&gt;But seems not all browser supports that yet, alternative its better to use JPG images instead of the heavy png images.&lt;br&gt;
Also using inline Images can help your website page speed, using im\line images live SVG or base64.&lt;/p&gt;

&lt;p&gt;But Base64 encoded images can increase your site KB size but it will reduce your HTTP request.&lt;/p&gt;

&lt;p&gt;Best place to use inlined mages are logos, favicon if possible, and images above the fold.&lt;/p&gt;

&lt;p&gt;So next time you work on projects always optimise images you use, you can use sqooush.app to compress and even change image extensions and other edits, also you can use base64 to change your images to base64 inline images.&lt;/p&gt;
&lt;h2&gt;
  
  
  4# Host Fonts Locally:
&lt;/h2&gt;

&lt;p&gt;When building a website, we all want to use fancy fonts, the option everyone uses is the Google font, well google font can really hurt your LCP (Large Contentful Paint) because you can’t control this font since it's not hosted on your site.&lt;/p&gt;

&lt;p&gt;Well since we can host it locally why won't don't we do it then, download all the font sizes you will be using in your webpages.&lt;/p&gt;

&lt;p&gt;Here is a correct font declaration when hosting your fonts locally, download the font to a directory on your website.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@font-face {
font-family: geomanist;
font-weight: 300;
font-style: normal;
font-display:swap;
src: url(../fonts/geomanist-light-webfont.woff2) format("woff2"),
url(../fonts/geomanist-light-webfont.woff) format("woff")
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;font-display: swap; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ‘swap’ value tells the browser that text using this font should be displayed immediately using a system font. Once the custom font is ready, the system font is swapped out.&lt;/p&gt;

&lt;p&gt;Also preloading or perfecting Fonts are good e.g&lt;br&gt;
&lt;strong&gt;rel="preload" as="font"&lt;/strong&gt; attributes will ask the browser to start downloading the required resource as soon as possible.&lt;/p&gt;

&lt;p&gt;It will also tell the browser that this is a font, so it can appropriately prioritise it in its resource queue.&lt;/p&gt;
&lt;h2&gt;
  
  
  5# Preconnect External resources:
&lt;/h2&gt;

&lt;p&gt;Well we can’t do without using external resources on our web apps since they are external resources, we have little control over, scripts like Google Analytics, Google fonts and many more external scripts that are common on web apps need to be fetched earlier so they won't have much impact on our web page speed.&lt;/p&gt;

&lt;p&gt;This can be done using DNS-prefetch, reconnect and prefetch itself, below is the one I used.&lt;br&gt;
￼&lt;br&gt;
Robin has a simple and straight forward &lt;a href="https://css-tricks.com/prefetching-preloading-prebrowsing/"&gt;guides preload, prefetch and prebrowsing&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  6# Using a CDN:
&lt;/h2&gt;

&lt;p&gt;Cloudflare to the rescue again, though netlify promise a CDN, which is called Netlify edge, I must say its Netlify Edge is so awesome when I used it, it did break some functionality on my website, so I left it to use Cloudflare, but I must say my page speed increased with 20% using netlify edge.&lt;/p&gt;

&lt;p&gt;But Cloudflare the promising guy, who has data centre almost all over the world, think of it, it's an awesome package, but we the free Cloudflare users can also access it.&lt;/p&gt;

&lt;p&gt;CDN works like this, it caches your CSS, js and image files and saves them to their storage on all their available data centre, so when a user from Australia visit your webpage, the cached resources of your site in Cloudflare CDN at Australia get delivered to the Australia users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ahLTNWCq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379771/h9k9xd68uncicrlsmhc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ahLTNWCq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379771/h9k9xd68uncicrlsmhc1.png" alt="alt text" title="with cdn" width="768" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So the data gets loaded so fast because your files are available in the data centre near the visitor.&lt;/p&gt;

&lt;p&gt;But when you don’t use any CDN, and your hosting provider doesn’t have data centre around the world, then some regions will experience slow load page, because your website will be rendering files from US data centre to Russia users which makes it a bit slower.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dTsUwna---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379800/dm6kna9bnm1kagjytwxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dTsUwna---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/saintmalik/image/upload/v1594379800/dm6kna9bnm1kagjytwxt.png" alt="alt text" title="without cdn" width="768" height="427"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  7# Configure your cache settings well:
&lt;/h2&gt;

&lt;p&gt;This might be tricky at first, All website deployed on Netlify has a default cache control which is max-age=31536000, public, must-revalidate, which means all content should be cached but also re-validated.&lt;/p&gt;

&lt;p&gt;The rationale is that “This favors you if you use the netlify edge can also as a content creator — you can make changes any of your content and see results instantly.&lt;/p&gt;

&lt;p&gt;But am using Cloudflare CDN and I won't be changing contents or remodifying all time, so that cache control isn’t good enough for me, I want all my files to be stored in Cloudflare cache and I want the expiry period to be a year.&lt;/p&gt;

&lt;p&gt;So I decided to override the netlify default cache using netlify.toml file and I set the&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[headers]]
for “/*”
[headers.values]
Cache-Control = “public”
[[headers]]
for = "/posts/*" # This defines which paths this specific [[headers]] block will cover.
[headers.values]
Cache-Control = "public, s-max-age=604800"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you notice, I didn’t set max-age or s-max-age to the for &lt;strong&gt;“/*”&lt;/strong&gt; header, I only set &lt;strong&gt;“public”&lt;/strong&gt;, I did that because I already set the max-age value in Cloudflare.&lt;/p&gt;

&lt;p&gt;You can also choose to set the whole thing using Netlify.toml, all you will do over your Cloudflare dashboard is to set &lt;strong&gt;Browser Cache TTL&lt;/strong&gt; to Respect Existing Header.&lt;/p&gt;

&lt;p&gt;For the [[header]] “/posts/“, this is the path to my blogpost page, where frequent changes could occur, so set &lt;strong&gt;s-max-age&lt;/strong&gt; to 604800 (a week), so am using &lt;strong&gt;s-max-age&lt;/strong&gt; to modify the cache setup for that particular path.&lt;/p&gt;

&lt;p&gt;You can learn more about cache controls and Cloudflare cache with the below resources.&lt;br&gt;
&lt;a href="https://support.cloudflare.com/hc/en-us/articles/360021806811-Getting-Started-with-Cloudflare-Caching"&gt;Getting started with cloudflare&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webperf</category>
      <category>showdev</category>
      <category>static</category>
    </item>
  </channel>
</rss>
