<?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: Chris Anatalio</title>
    <description>The latest articles on DEV Community by Chris Anatalio (@anataliocs).</description>
    <link>https://dev.to/anataliocs</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%2F128960%2Fcabff79e-48ec-4bd5-b2bb-773b745fd827.jpeg</url>
      <title>DEV Community: Chris Anatalio</title>
      <link>https://dev.to/anataliocs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anataliocs"/>
    <language>en</language>
    <item>
      <title>Built a Super Slick Site + Blog with just Jekyll, Vanilla JS and CSS/Sass hosted on Github Pages</title>
      <dc:creator>Chris Anatalio</dc:creator>
      <pubDate>Wed, 06 Aug 2025 00:33:11 +0000</pubDate>
      <link>https://dev.to/anataliocs/built-a-super-slick-site-blog-with-just-jekyll-vanilla-js-and-csssass-hosted-on-github-pages-4nlo</link>
      <guid>https://dev.to/anataliocs/built-a-super-slick-site-blog-with-just-jekyll-vanilla-js-and-csssass-hosted-on-github-pages-4nlo</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4uxcbd6o10iwczml9jy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4uxcbd6o10iwczml9jy.png" alt=" " width="800" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://www.hella.website/" rel="noopener noreferrer"&gt;https://www.hella.website/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yes it has a dark mode toggle ;)&lt;/p&gt;

&lt;p&gt;Plain old Jekyll, CSS/Sass and a tiny bit of vanilla Javascript can really, really punch above it's weight nowadays.  The pure CSS animations, Jekyll handling all the dynamic pagination and templating and then just deploying via a Github Action to GH Pages can actually produce a pretty serious site + blog.&lt;/p&gt;

&lt;p&gt;It's honestly really cool and hats off to Mozilla and the OSS community for making this stuff happen and hammering away at this stuff until they just really nail it from a developer experience standpoint.&lt;/p&gt;

&lt;p&gt;Such a joy to work with and spin up a cute, animated, responsive site in just a couple days :D&lt;/p&gt;

</description>
      <category>vanillajs</category>
      <category>jekyll</category>
      <category>csstricks</category>
    </item>
    <item>
      <title>Intro to Reactive Functional Programming</title>
      <dc:creator>Chris Anatalio</dc:creator>
      <pubDate>Fri, 27 Dec 2019 01:30:58 +0000</pubDate>
      <link>https://dev.to/anataliocs/intro-to-reactive-functional-programming-o81</link>
      <guid>https://dev.to/anataliocs/intro-to-reactive-functional-programming-o81</guid>
      <description>&lt;p&gt;&lt;em&gt;Excerpts from my courses: &lt;a href="https://linkedin-learning.pxf.io/reactive-java-8" rel="noopener noreferrer"&gt;https://linkedin-learning.pxf.io/reactive-java-8&lt;/a&gt; and &lt;a href="https://linkedin-learning.pxf.io/full-stack-reactive-app-java-spring-angular" rel="noopener noreferrer"&gt;https://linkedin-learning.pxf.io/full-stack-reactive-app-java-spring-angular&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;In modern web and mobile environments, there are more users with heavier usage patterns and much higher expectations for user experience then ever before. Many applications are deployed on highly distributed cloud servers.&lt;/p&gt;

&lt;p&gt;To address these challenges, many engineering teams are turning to the Reactive Functional paradigm of programming.&lt;/p&gt;

&lt;p&gt;This article will give you a brief introduction to &lt;strong&gt;Reactive Functional Programming&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is Reactive Programming?
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Interactive programs work at their own pace and mostly deal with communication, while reactive programs only work in response to external demands and mostly deal with accurate interrupt handling.&lt;br&gt;
&lt;em&gt;Gérard Berry (Director of Research at INRIA)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Reactive programming&lt;/em&gt; is a declarative programming paradigm that entails building asynchronous, non-blocking and event-driven applications that leverage asynchronous data streams and can easily scale across distributed systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Stream can emit three things:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A value&lt;/li&gt;
&lt;li&gt;An error&lt;/li&gt;
&lt;li&gt;A completed signal&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are Asynchronous Data Streams?
&lt;/h2&gt;

&lt;p&gt;A stream is a sequence of ongoing events ordered in time. Examples of events include variables, user input, properties or click events.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8dt9ai8aexfo2qt3n3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fij8dt9ai8aexfo2qt3n3.gif" alt="Reactive Streams in Action Marble Diagram" width="480" height="221"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Reactive Streams in Action Marble Diagram&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The diagram featured above is called a &lt;a href="https://rxmarbles.com/" rel="noopener noreferrer"&gt;marble diagram&lt;/a&gt; and they are commonly used to explain various aspects about &lt;a href="https://www.reactive-streams.org/" rel="noopener noreferrer"&gt;reactive streams&lt;/a&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Reactive Manifesto
&lt;/h1&gt;

&lt;p&gt;Before you start your journey into building reactive systems you should check out the Reactive Manifesto. The &lt;a href="https://www.reactivemanifesto.org/" rel="noopener noreferrer"&gt;Reactive Manifesto&lt;/a&gt; explains various characteristics that Reactive Systems should possess.&lt;/p&gt;

&lt;p&gt;Check out and sign the manifesto here: &lt;a href="https://www.reactivemanifesto.org/" rel="noopener noreferrer"&gt;https://www.reactivemanifesto.org/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Reactive Systems&lt;/em&gt; tend to be loosely-coupled, flexible and very scalable. Built the right way and given time for engineering teams to adapt to the new paradigm, these systems will be more adaptable to change as you scale and evolve the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reactive Systems need to be:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsive&lt;/li&gt;
&lt;li&gt;Resilient&lt;/li&gt;
&lt;li&gt;Elastic&lt;/li&gt;
&lt;li&gt;Message Driven&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s take a look at the interplay of these characteristics:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdao2jdsoo5upo22ssloe.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdao2jdsoo5upo22ssloe.gif" alt="Reactive Manifesto in Action" width="480" height="210"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Reactive Manifesto in Action&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We can see that message-driven systems help facilitate elastic and resilient characteristics which in turn help to make the entire system more responsive. &lt;/p&gt;

&lt;p&gt;Building responsive systems with a great user experience is the end-goal of the Reactive Manifesto!&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Reactive Programming?
&lt;/h2&gt;

&lt;p&gt;The transition to Reactive Systems can be a very challenging and time-consuming endeavor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;However, consider the following:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modern systems need to be robust, resilient and flexible&lt;/li&gt;
&lt;li&gt;They are deployed on cloud-based clusters running thousands of multi-core processors&lt;/li&gt;
&lt;li&gt;Users expect millisecond response times and ~100% uptime&lt;/li&gt;
&lt;li&gt;Data is measured in Petabytes&lt;/li&gt;
&lt;li&gt;Modern systems need to be tolerant of failure and to fail gracefully as well as being highly responsive while giving users effective, interactive feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building reactive systems is a great solution for these challenges. &lt;/p&gt;

&lt;p&gt;So do yourself a favor and start learning more about the Reactive Functional Paradigm and how it can help systems at your organization become more future-proof and scalable!&lt;/p&gt;




&lt;h2&gt;
  
  
  Other platforms
&lt;/h2&gt;

&lt;p&gt;Reactive programming is not limited to any one platform.The ReactiveX project provides implementations in many different languages: &lt;a href="http://reactivex.io/" rel="noopener noreferrer"&gt;http://reactivex.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Including Javascript: &lt;a href="https://www.learnrxjs.io/" rel="noopener noreferrer"&gt;https://www.learnrxjs.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other Reactive Functional Javascript frameworks include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cycle.js.org/" rel="noopener noreferrer"&gt;https://cycle.js.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://baconjs.github.io/" rel="noopener noreferrer"&gt;https://baconjs.github.io/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frameworks that implement the &lt;a href="https://www.reactive-streams.org/" rel="noopener noreferrer"&gt;Reactive Streams&lt;/a&gt; specification are interoperable.&lt;/p&gt;




&lt;p&gt;Check out my courses on LinkedIn Learning for a deeper dive into these topics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://linkedin-learning.pxf.io/full-stack-reactive-app-java-spring-angular" rel="noopener noreferrer"&gt;Building a Full-Stack Reactive App with Angular and SpringBoot 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://linkedin-learning.pxf.io/reactive-java-8" rel="noopener noreferrer"&gt;Reactive Java 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://linkedin-learning.pxf.io/19QKz" rel="noopener noreferrer"&gt;Reactive Spring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>functional</category>
      <category>angular</category>
      <category>javascript</category>
    </item>
    <item>
      <title>New personal website using GatsbyJS</title>
      <dc:creator>Chris Anatalio</dc:creator>
      <pubDate>Sun, 22 Dec 2019 06:11:45 +0000</pubDate>
      <link>https://dev.to/anataliocs/new-personal-website-using-gatsbyjs-4179</link>
      <guid>https://dev.to/anataliocs/new-personal-website-using-gatsbyjs-4179</guid>
      <description>&lt;p&gt;Just built my new personal website using GatsbyJS.&lt;/p&gt;

&lt;p&gt;Very cool framework that allows a backend services engineer like myself to easily use all the slick, new, front-end tech(react, graphql, webpack, etc) out of the box.&lt;/p&gt;

&lt;p&gt;Definitely recommend checking it out if you need to crank out a static website(&lt;a href="https://www.gatsbyjs.org/" rel="noopener noreferrer"&gt;https://www.gatsbyjs.org/&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chris-anatalio.dev" rel="noopener noreferrer"&gt;https://chris-anatalio.dev&lt;/a&gt; 😁&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>gatsby</category>
      <category>webpack</category>
      <category>react</category>
    </item>
  </channel>
</rss>
