<?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: DeviousLab</title>
    <description>The latest articles on Forem by DeviousLab (@deviouslab).</description>
    <link>https://forem.com/deviouslab</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%2F651460%2Fd1dcccea-40b5-492b-9a75-563235914c20.png</url>
      <title>Forem: DeviousLab</title>
      <link>https://forem.com/deviouslab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/deviouslab"/>
    <language>en</language>
    <item>
      <title>SEO for Web Developers</title>
      <dc:creator>DeviousLab</dc:creator>
      <pubDate>Sat, 02 Jul 2022 16:53:14 +0000</pubDate>
      <link>https://forem.com/deviouslab/seo-for-web-developers-m54</link>
      <guid>https://forem.com/deviouslab/seo-for-web-developers-m54</guid>
      <description>&lt;p&gt;Search Engine Optimisation is usually a skill that is reserved for those in Digital Marketing, but I think that as a web developer, having competency in SEO is a valuable assest to have to differentiate yourself and display a bit more versatility.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SEO?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;SEO (Search Engine Optimization) is the practice of optimizing a website or webpage to increase the quantity and quality of its traffic from a search engine’s organic results.[&lt;a href="https://ahrefs.com/blog/what-is-seo/"&gt;1&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is a technical aspect behind SEO that web developers should have a basic understanding of, where measures are implemented to optimise the website/server so that search engines can easily crawl, index and then rank the website. &lt;/p&gt;

&lt;p&gt;If you create an amazing site with great content but search engines struggle to index it, all that effort will be in vain.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key habits that should be followed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make sure that all images have alt tags, as alt tags will provide search engines with a better context/description of what the image is, allowing them to index it properly.&lt;/li&gt;
&lt;li&gt;When linking to another URL, words should be separated by hypens &lt;code&gt;'-'&lt;/code&gt; rather than underscores &lt;code&gt;'_'&lt;/code&gt; as search engines read hypens as a space.&lt;/li&gt;
&lt;li&gt;Try to keep domain names as short as possible while maintaining coherency, a domain with more than 15 characters should be avoided to ensure better readability for humans.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sJL9vbPT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jx6gc841qf3cbhxpbowm.png" alt="https://moz.com/blog/15-seo-best-practices-for-structuring-urls" width="650" height="535"&gt;[&lt;a href="https://moz.com/blog/15-seo-best-practices-for-structuring-urls"&gt;2&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Images should have unique file names that try to describe the content of the image, and you should trying to avoid having duplicates of the same image as this will split the score for this image between each copy.&lt;/li&gt;
&lt;li&gt;'Lazy-loading' images is a technique used to defer the loading of an image until it enters the viewpoint, instead of loading them upfront.&lt;/li&gt;
&lt;li&gt;Try to prioritise the usage of SVGs and WebPs over PNGs and JPEGs to increase the performance of the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller than comparable JPEG images at equivalent SSIM quality index.[&lt;a href="https://developers.google.com/speed/webp"&gt;3&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What is Lighthouse?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Lighthouse is an open-source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, SEO and more.[&lt;a href="https://developer.chrome.com/docs/lighthouse/overview/"&gt;4&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vUip6nPF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2dpq74hyg6tnpes4jwfq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vUip6nPF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2dpq74hyg6tnpes4jwfq.png" alt="https://nooshu.com/blog/2019/08/18/lighthouse-score-100-not-always-for-the-better/" width="880" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google gives higher search page rankings to websites that achieve a higher lighthouse score. With the sheer number of web pages available, Google's crawlers can only spend a certain amount of time scraping your page before moving to the next one. Therefore it is imperative that your page gets a high score to stand out among the rest.&lt;/p&gt;

&lt;p&gt;You can use &lt;a href="https://web.dev/measure/"&gt;Measure&lt;/a&gt; to test your page in a lab environment and &lt;a href="https://pagespeed.web.dev/"&gt;PageSpeed Insights&lt;/a&gt; for field performance&lt;/p&gt;




&lt;h2&gt;
  
  
  Head component
&lt;/h2&gt;

&lt;p&gt;The head component of a page will control how your page will appear on search engine results and social media posts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; element for your homepage can list the name of your website or business, and could include other bits of important information like the physical location of the business or maybe a few of its main focuses or offerings. Try to make the title element brief and unique from other pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A page's meta description tag gives Google and other search engines a summary of what the page is about. Meta description tags are important because Google might use them as snippets for your pages in search engine results.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Adding meta description tags to each of your pages is always a good practice in case Google cannot find a good selection of text to use in the snippet.[&lt;a href="https://developers.google.com/search/docs/beginner/seo-starter-guide"&gt;5&lt;/a&gt;]&lt;br&gt;
Meta descriptions should accurately summarise the content of the page wile also being unique.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meta properties that cause a title, description and image to appear when a link to this page is shared on social media (example for Facebook&lt;br&gt;
&lt;code&gt;&amp;lt;meta name="og:url" content="your-website.com/the-current-page" &amp;gt;&lt;br&gt;
&amp;lt;meta name="og:description" content="Web page description"&amp;gt;&lt;br&gt;
&amp;lt;meta name="og:type" content="website"&amp;gt;&lt;br&gt;
&amp;lt;meta name="og:description" content="your-website.com/your-image.png"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Hosting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Your choice of web hosting provider can have a huge impact on your site, as the load time of your website is an important ranking factor. PageSpeed Insights Speed Score uses two important speed metrics: First Contentful Paint (FCP) and DOMContentLoaded (DCL).&lt;/li&gt;
&lt;li&gt;Location is another factor as choosing a web hosting service with server locations that are geographically close to your operational area so that you can ensure that there will be a naturally-fast server response time for your site. &lt;/li&gt;
&lt;li&gt;Having a reliable host is important to experience as little downtime as possible Downtime has an immediate effect, as your potential visitors will no longer be able to access the website. In the long term, downtime can increase your bounce rate, and that can take a long time to repair.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;As web pages become more complex, referencing resources from numerous domains, DNS lookups can become a significant bottleneck in the browsing experience. Whenever a client needs to query a DNS resolver over the network, the latency introduced can be significant, depending on the proximity and number of name servers the resolver has to query.[&lt;a href="https://developers.google.com/speed/public-dns/docs/performance"&gt;6&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example I used Namecheap to purchase a domain and hosting, and their hosting performs poorly and I optimised my site's code as much as I could but never get past 60 on Lighthouse's performance score. However I switched out my DNS name-servers to Cloudflare and saw my site hit 92 afterwards.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a CDN?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A content delivery network (CDN) is a group of geographically distributed servers that speed up the delivery of web content by bringing it closer to where users are. Data centres across the globe use caching, a process that temporarily stores copies of files, so that you can access internet content from a web-enabled device or browser more quickly through a server near you. CDNs cache content like web pages, images, and video in proxy servers near to your physical location.[&lt;a href="https://www.akamai.com/our-thinking/cdn/what-is-a-cdn"&gt;7&lt;/a&gt;]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9ypLGWCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cf-assets.www.cloudflare.com/slt3lc6tev37/540CpDkqSDg6QAPi5nO1AP/b44a3edb5abc4e115ddab9b4d9bf7a32/Learning-How-does-a-CDN-work.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ypLGWCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cf-assets.www.cloudflare.com/slt3lc6tev37/540CpDkqSDg6QAPi5nO1AP/b44a3edb5abc4e115ddab9b4d9bf7a32/Learning-How-does-a-CDN-work.svg" alt="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/" width="700" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essentially, copies of your site are stored at multiple, geographically diverse data centres so that users have faster and more reliable access to your site.&lt;/p&gt;

&lt;p&gt;A CDN can be used to improve site speed and content availability, reduce bandwidth costs and improve site security by mitigating DDoS attacks.&lt;/p&gt;




&lt;h2&gt;
  
  
  Minimising JS and CSS
&lt;/h2&gt;

&lt;p&gt;Minifying Javascript and CSS files can contribute to help your website load faster. Minification is the process of removing unnecessary characters from code without changing the way that code works. These unnecessary characters are usually things like: white-space characters, new line breaks, comments, block delimiters.&lt;/p&gt;

&lt;p&gt;Minifying code can reduce the file size by 30-40%. Sometimes even as much as 50%. Concatenating files also helps reduce the load on your server and network. Combining multiple files into one lets a server send more data in a fewer number of connections.&lt;/p&gt;

&lt;p&gt;To minimise your CSS and JS, you could use a tool like &lt;a href="https://www.minifier.org/"&gt;Minifier&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For a more advanced minimisation, &lt;a href="https://purgecss.com/"&gt;PurgeCSS&lt;/a&gt; which is a tool to remove unused CSS. If you use a CSS framework like Tailwind or Bootstrap, chances are that you are only using a small subset of the framework, and a lot of unnecessary CSS will be included.&lt;/p&gt;

&lt;p&gt;If you are a React developer and care about performance, Preact is a lightweight alternative to React that focuses on performance. Preact keeps the same modern API as React. And if that's not enough, there's an extensive compatibility layer with React to make sure your existing React code can be used in Preact. It's called preact/compat. Preact's bundle size is 3kB compared to the minified bundle of react + react-dom size's 128kB.&lt;/p&gt;

&lt;p&gt;You can also use &lt;a href="https://www.gnu.org/software/gzip/"&gt;Gzip&lt;/a&gt;, a software application for file compression, to reduce the size of your CSS, HTML, and JavaScript files that are larger than 150 bytes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Performance Analysis
&lt;/h2&gt;

&lt;p&gt;To analyse a page's performance on search engines, tools such as Google's &lt;a href="https://search.google.com/search-console"&gt;Search Console&lt;/a&gt; and &lt;a href="https://www.bing.com/toolbox/webmaster"&gt;Bing Webmaster Tools&lt;/a&gt; can be utilised. &lt;/p&gt;

&lt;p&gt;With these tools website owners can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See which parts of a site had problems crawling&lt;/li&gt;
&lt;li&gt;Test and submit sitemaps&lt;/li&gt;
&lt;li&gt;Analyze or generate robots.txt files&lt;/li&gt;
&lt;li&gt;Remove URLs already crawled&lt;/li&gt;
&lt;li&gt;Specify your preferred domain&lt;/li&gt;
&lt;li&gt;Identify issues with title and description meta tags&lt;/li&gt;
&lt;li&gt;Understand the top searches used to reach a site&lt;/li&gt;
&lt;li&gt;Get a glimpse at how search engines sees pages&lt;/li&gt;
&lt;li&gt;Receive notifications of quality guidelines violations and request a site reconsideration&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  More SEO Resources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developers.google.com/search/docs/beginner/seo-starter-guide"&gt;Google SEO Starter Guide&lt;/a&gt;&lt;br&gt;
&lt;a href="https://prerender.io/seo-for-web-developers/"&gt;The Indispensable Guide to SEO for Web Developers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://moz.com/learn/seo/seo-cheat-sheet"&gt;The Web Developer's SEO Cheat Sheet&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sV1uhWTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lw5ye89bwud6coowj6mc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sV1uhWTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lw5ye89bwud6coowj6mc.png" alt="https://moz.com/learn/seo/seo-cheat-sheet" width="880" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>performance</category>
    </item>
    <item>
      <title>Climate Change Jobs for Software Engineers</title>
      <dc:creator>DeviousLab</dc:creator>
      <pubDate>Mon, 23 Aug 2021 12:07:27 +0000</pubDate>
      <link>https://forem.com/deviouslab/climate-change-for-software-engineers-4i9o</link>
      <guid>https://forem.com/deviouslab/climate-change-for-software-engineers-4i9o</guid>
      <description>&lt;p&gt;So I was scrolling through my feed, when this popped up:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ctEFwgAd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apv70s135js8t4gw6d5f.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ctEFwgAd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apv70s135js8t4gw6d5f.PNG" alt="terra.do climate change job fair"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A job fair for software engineers to help with climate change!&lt;/p&gt;

&lt;p&gt;As someone looking for a job, and climate change being a massive concern to me, it seemed like a no brainer to sign up. I thought I'd share the resource with others as well in case they might be interested! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;August 25th&lt;/em&gt; &lt;a href="https://www.terra.do/climate-jobs-fair/professionals/"&gt;Job Fair&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>software</category>
      <category>jobs</category>
      <category>developer</category>
    </item>
    <item>
      <title>Top resources to start with open source!</title>
      <dc:creator>DeviousLab</dc:creator>
      <pubDate>Mon, 16 Aug 2021 11:13:55 +0000</pubDate>
      <link>https://forem.com/deviouslab/getting-started-with-open-source-kdm</link>
      <guid>https://forem.com/deviouslab/getting-started-with-open-source-kdm</guid>
      <description>&lt;p&gt;So you've progressed quite a ways into your foray of the programming world and you're starting to feel confident in your coding skills.&lt;/p&gt;

&lt;p&gt;You might want to start looking to contributing to some &lt;strong&gt;open source&lt;/strong&gt; projects to develop your skills even further. But you aren't sure where to start? This article aims to provide some sources of projects where you can get your feet wet!&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://goodfirstissue.dev/"&gt;Good First Issue&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m7fQj1Pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rclxa1vg5bg5ufy9q86x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m7fQj1Pj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rclxa1vg5bg5ufy9q86x.png" alt="Homepage for good-first issue"&gt;&lt;/a&gt;&lt;br&gt;
Good First Issue is a site that curates issues from popular open-source projects, and helps you make your first contribution to open-source with filters according to the desired programming language.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://goodfirstissues.com/"&gt;Good First Issues&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ayqEguup--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a31vf347azyeggmnt3b7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ayqEguup--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a31vf347azyeggmnt3b7.png" alt="Homepage for Good First Issues"&gt;&lt;/a&gt;&lt;br&gt;
Like #1, Good First Issues also provides developers with filters, this website empowers them to browse and select issues and repositories based on programming languages that they are comfortable with. In addition, they can select the type of issues they want to address.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="https://up-for-grabs.net/"&gt;Up For Grabs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZV95r59k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/35e9pb8csacrwz1runet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZV95r59k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/35e9pb8csacrwz1runet.png" alt="Homepage for Up For Grabs"&gt;&lt;/a&gt;&lt;br&gt;
Up For Grabs is a list of projects which have curated tasks specifically for new contributors. These are a great way to get started with a project, or to help share the load of working on open source projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;a href="https://www.codetriage.com/"&gt;CodeTriage&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eMcnxI4z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvsu8xduregtperp8rcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eMcnxI4z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvsu8xduregtperp8rcb.png" alt="Homepage for CodeTriage"&gt;&lt;/a&gt;&lt;br&gt;
CodeTriage helps by picking a handful of open issues and delivering them directly to your inbox. After you sign up for CodeTriage, you pick the repos you want to help with, and they periodically send you issues. There is also a section with docs and tips for making your contribution journey successful.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;a href="https://awesomeopensource.com/"&gt;Awesome Open Source&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hkf6-1v9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3txvplstizy0k1oamox3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hkf6-1v9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3txvplstizy0k1oamox3.png" alt="Homepage for Awesome Open Source"&gt;&lt;/a&gt;&lt;br&gt;
Awesome Open Source is a massive directory of over 370,000 GitHub projects filtered into 59 categories of development that is further filtered into 7000 more topics according to programming technologies or technologies used. This source isn't as beginner friendly as the rest.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;a href="https://github.com/showcases/great-for-new-contributors"&gt;GitHub&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xs93N00a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jnrsnvtkobs0gs2ncnxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xs93N00a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jnrsnvtkobs0gs2ncnxc.png" alt="New contributors showcase page for GitHub"&gt;&lt;/a&gt;&lt;br&gt;
And finally GitHub themselves, GitHub has also setup a showcase of projects have a history and reputation for being welcoming to new open source contributors. But personally I prefer another method.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4seimTy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iu76rih3nju9a5hgo5jz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4seimTy0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iu76rih3nju9a5hgo5jz.png" alt="Advanced filter for issue search on Github"&gt;&lt;/a&gt;&lt;br&gt;
I like to use the Search function of GitHub and type: &lt;br&gt;
&lt;code&gt;label:"good first issue" state:open&lt;/code&gt; &lt;br&gt;
into the search bar. Which will list a huge list of issues tagged with the 'good first issue' label. Here is a &lt;a href="https://github.com/search?q=label%3A%22good+first+issue%22+state%3Aopen&amp;amp;type=Issues"&gt;preformatted link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope you any aspiring programmers will find this resource useful. Feel free to list any more useful resources that you've found, in the comments!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Huge thanks to the folks over at &lt;a href="https://discord.com/invite/EhhDQSkjrv"&gt;fast tracked programmer&lt;/a&gt; for introducing me to open source!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>opensource</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Add Formspree Formbutton to a Gatsby site</title>
      <dc:creator>DeviousLab</dc:creator>
      <pubDate>Fri, 23 Jul 2021 23:07:53 +0000</pubDate>
      <link>https://forem.com/deviouslab/add-formspree-formbutton-to-a-gatsby-site-5118</link>
      <guid>https://forem.com/deviouslab/add-formspree-formbutton-to-a-gatsby-site-5118</guid>
      <description>&lt;p&gt;I was looking to add the &lt;a href="https://formspree.io/formbutton/docs"&gt;Formexpress&lt;/a&gt; button to a Gatsby site I was developing as a method of contacting the business. In normal HTML you could have probably pasted the script tag easily but in Gatsby it's not so simple.&lt;/p&gt;

&lt;p&gt;My method was to create the &lt;a href="https://www.gatsbyjs.com/docs/reference/config-files/gatsby-ssr/"&gt;gatsby-ssr.js&lt;/a&gt;                                                                  file in the root of my working directory and post the code there so that the script tag appears on the body.&lt;/p&gt;

&lt;p&gt;This is what I wrote in the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
export const onRenderBody = ({ setPostBodyComponents }, pluginOptions) =&amp;gt; {
    setPostBodyComponents([
        &amp;lt;script key="formspreeBase" src="https://formspree.io/js/formbutton-v1.min.js" type="text/javascript" aysnc /&amp;gt;,
        &amp;lt;script
            key="formspreeWindow"
            dangerouslySetInnerHTML={{
                __html: `
                window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)};
                formbutton("create", {
                    action: "https://formspree.io/{your-form-id}",
                    title: "How can we help?",
                    fields: [
                    { 
                        type: "email", 
                        label: "Email:", 
                        name: "email",
                        required: true,
                        placeholder: "your@email.com"
                    },
                    {
                        type: "textarea",
                        label: "Message:",
                        name: "message",
                        placeholder: "What would you like to discuss?",
                    },
                    { type: "submit" }      
                ],
                styles: {
                    title: {
                        backgroundColor: "#ff7b24"
                    },
                    button: {
                        backgroundColor: "#ff7b24"
                    }
                }
                });`
            }}
        /&amp;gt;
    ]);
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding this to the page resulted in a small button on the site that the user can click to send a form to the user!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HL3GYR2n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k45qbtq1lmigv2glvhro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HL3GYR2n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k45qbtq1lmigv2glvhro.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gatsby</category>
      <category>formexpress</category>
      <category>forms</category>
      <category>react</category>
    </item>
  </channel>
</rss>
