<?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: Harcourt Hamsa</title>
    <description>The latest articles on DEV Community by Harcourt Hamsa (@harcourthamsa).</description>
    <link>https://dev.to/harcourthamsa</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%2F565524%2F6aeb4047-6773-4575-8667-af313103988c.png</url>
      <title>DEV Community: Harcourt Hamsa</title>
      <link>https://dev.to/harcourthamsa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harcourthamsa"/>
    <language>en</language>
    <item>
      <title>Simplicity</title>
      <dc:creator>Harcourt Hamsa</dc:creator>
      <pubDate>Sun, 30 Apr 2023 18:28:06 +0000</pubDate>
      <link>https://dev.to/harcourthamsa/simplicity-28no</link>
      <guid>https://dev.to/harcourthamsa/simplicity-28no</guid>
      <description>&lt;p&gt;Sometimes the best answer is the simple answer. I know we all know this but according to André Gide, a French author and Nobel Prize winner in literature, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Everything that needs to be said has already been said. But since no one was listening, everything must be said again."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, my friends, I'm here to say it again. Last week, I was working on a app and I ran into a case where I wanted users to login first before taking a course. In the event that they are not already logged in, they should be redirected to the login page. If they login successfully, I want to redirect them back to the page they were.&lt;/p&gt;

&lt;p&gt;I'm sure this is easy peasy for some of you. Please bear with me. So, I thought about different ways to go about this. I even checked stack overflow. Some people recommended creating a custom hook and writing some mad ass code. Others recommended a library.&lt;/p&gt;

&lt;p&gt;At first, I went with the custom hook route. But things got complicated real quick. Incase you haven't figured it out, yes, I am a lazy developer. I figured maybe I'll pickup another task. &lt;/p&gt;

&lt;p&gt;While working on the other task, it dawned on me that I can simply pass a parameter in my URL that stores the previous route. So let's say I am in the &lt;code&gt;\courses\:id\&lt;/code&gt; route, when I get redirected to the login page, the URL becomes &lt;code&gt;\login\?next=\courses\:id\&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;How did I think of this? Anyways, you get the point. &lt;/p&gt;

&lt;p&gt;Bye for now,&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why use a Headless CMS with JAMstack</title>
      <dc:creator>Harcourt Hamsa</dc:creator>
      <pubDate>Fri, 05 Feb 2021 15:02:09 +0000</pubDate>
      <link>https://dev.to/harcourthamsa/why-use-a-headless-cms-with-jamstack-1lia</link>
      <guid>https://dev.to/harcourthamsa/why-use-a-headless-cms-with-jamstack-1lia</guid>
      <description>&lt;p&gt;This rise in content consumption using new channels, such as smart watches, POS, kiosks, gaming, consoles, voice-activated devices etc. are creating problems for the traditional CMS. This is because the traditional CMS was explicitly created for delivering Web content to websites. Consequently, the demand for a better solution was sought after which was the Headless CMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Headless CMS?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;headless content management system&lt;/strong&gt;, or &lt;strong&gt;headless CMS&lt;/strong&gt;, is any  &lt;a href="https://en.wikipedia.org/wiki/Content_management_system"&gt;content management system&lt;/a&gt;  that separates the content layer (backend) from the presentation layer (frontend). Unlike traditional content management systems, a  &lt;a href="https://bit.ly/3cAKAz5"&gt;headless CMS&lt;/a&gt;  is flexible and highly scalable. This is because developers retrieve data from the headless CMS and present it the way they want, which opens up many more possibilities.&lt;/p&gt;

&lt;p&gt;The term “headless” comes from the concept of chopping the “head” (the  &lt;a href="https://en.wikipedia.org/wiki/Front-end_web_development"&gt;front end&lt;/a&gt; , i.e. the website) off the “body” (the  &lt;a href="https://en.wikipedia.org/wiki/Front_and_back_ends#Back-end_focused"&gt;back end&lt;/a&gt; , i.e. the content repository).&lt;/p&gt;

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

&lt;p&gt;According to the JAMstack official documentation:&lt;br&gt;
JAMstack is an architecture designed to make the web faster, more secure, and easier to scale. It builds on many of the tools and workflows which developers love, and which bring maximum productivity.&lt;/p&gt;

&lt;p&gt;The  &lt;a href="https://bit.ly/2YJOn4U"&gt;JAMstack is able to achieve&lt;/a&gt;  this because it does not require an origin server. It is not a "technology stack" because it does not dictate what technology to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why JAMstack and Headless CMS?
&lt;/h2&gt;

&lt;p&gt;The following are reasons to use a Headless CMS with JAMstack:&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend Flexibility
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bit.ly/2Lk3b7w"&gt;Unlike traditional content management systems&lt;/a&gt; , Headless CMS separates the presentation layer from the content of the site. Thus, developers are not bound to a specific framework. Similarly, JAMstack does not restrict developers to specific technologies. This, in the long run, helps business and organizations stand-out because they have personalized user experience&lt;/p&gt;

&lt;h4&gt;
  
  
  Future-proof
&lt;/h4&gt;

&lt;p&gt;With Headless CMS, developers can stay up-to-date with current technologies. This is because the presentation layer is separate from the content. As a result, JAMstack architecture is a perfect match.&lt;/p&gt;

&lt;h3&gt;
  
  
  Extra security
&lt;/h3&gt;

&lt;p&gt;Since JAMstack sites require no origin servers, it makes them hard to attack. Also, security is provided internally by the various CMS providers. Thus, using a Headless CMS together with JAMstack makes a site extra secure&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;p&gt;It's no news that the JAMstack architecture makes sites very high performant. This is due to the fact that sites are served directly from a CDN. JAMstack, when used with a Headless CMS creates a great user experience. This in turn leads to a high conversion rate, hence growth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;There are a lot of options out there, and picking the right Headless CMS can be challenging. Here are some of the best options available according to  &lt;a href="https://www.g2.com/products/agility-cms/reviews"&gt;G2 Crowd &lt;/a&gt; customers reviews:&lt;/p&gt;

&lt;h4&gt;
  
  
  Agility CMS
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://bit.ly/2Lk33VA"&gt;Agility CMS&lt;/a&gt;   is a Jamstack-ready, Content-First API-based Headless CMS. In the world of pure headless CMS and traditional monolithic CMSs, it is designed to offer the best of both worlds: fast and flexible environment for developers as well as easy and powerful tools for marketers. Agility CMS gives both developers and marketers the tools to build, manage, and maintain their content with ease offering built-in Page and Sitemap/URL Management. &lt;/p&gt;

&lt;h4&gt;
  
  
  Contentful
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.contentful.com/"&gt;Contentful &lt;/a&gt; is an API-driven headless CMS designed to create, manage and distribute content to any platforms. It gives developers the tools to organize and structure the content their way. Contentful focuses on providing users with the tools to build custom content models for maximum customization. &lt;/p&gt;

&lt;h4&gt;
  
  
  Kentico Kontent
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://kontent.ai/"&gt;Kentico Kontent&lt;/a&gt;  is a headless CMS that simplifies content production for marketers so that they can focus on creating high-quality content without requiring developer involvement. This frees developers to focus on what they do best—building engaging online experiences that look great in every channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://jamstack.org"&gt;Jamstack.org&lt;/a&gt; provides  &lt;a href="https://jamstack.org/headless-cms/"&gt;a comprehensive list of Content Management Systems for JAMstack Sites &lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Using JAMstack with a Headless CMS is a great solution for organizations that want to scale. There are a lot of tools available to help get started. You can try to build a JAMstack Site with Gatsby or Next.js  &lt;a href="https://bit.ly/2YHCxsg"&gt;here&lt;/a&gt; .&lt;/p&gt;

&lt;h3&gt;
  
  
  Further Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://agilitycms.com/resources/guide/what-is-a-headless-cms"&gt;What is a Headless CMS: Coupled vs Decoupled CMS Explained - Agility CMS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://jamstack.org/why-jamstack/"&gt;Why Jamstack?&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://agilitycms.com/resources/guide/top-10-reasons-why-you-should-choose-a-headless-cms-over-a-traditional-cms"&gt;Benefits of Headless CMS vs a Traditional CMS - Agility CMS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://agilitycms.com/resources/guide/how-to-choose-the-best-headless-cms-for-your-brand-2020-edition"&gt;How To Choose The Best Headless CMS For Your Brand (2020 Edition)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://help.agilitycms.com/hc/en-us/articles/360002996392-Platform-Overview"&gt;Agility CMS: Platform Overview&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>headlesscms</category>
    </item>
  </channel>
</rss>
