<?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: Jordan M. Adler</title>
    <description>The latest articles on Forem by Jordan M. Adler (@jmadler).</description>
    <link>https://forem.com/jmadler</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%2F616930%2Fabec5eb5-fe3a-487b-9da1-8544c94a8fb2.jpeg</url>
      <title>Forem: Jordan M. Adler</title>
      <link>https://forem.com/jmadler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jmadler"/>
    <language>en</language>
    <item>
      <title>About Google's Page Experience Update &amp; OneSignal's Web Push SDK</title>
      <dc:creator>Jordan M. Adler</dc:creator>
      <pubDate>Tue, 15 Jun 2021 15:58:39 +0000</pubDate>
      <link>https://forem.com/onesignal/about-google-s-page-experience-update-onesignal-s-web-push-sdk-2dmj</link>
      <guid>https://forem.com/onesignal/about-google-s-page-experience-update-onesignal-s-web-push-sdk-2dmj</guid>
      <description>&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%2Fonesignal.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FGoogle-page-experience-update-blog-post.png" 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%2Fonesignal.com%2Fblog%2Fcontent%2Fimages%2F2021%2F06%2FGoogle-page-experience-update-blog-post.png" alt="About Google's Page Experience Update &amp;amp; OneSignal's Web Push SDK"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In November of 2020, Google announced &lt;a href="https://developers.google.com/search/blog/2020/11/timing-for-page-experience" rel="noopener noreferrer"&gt;via their blog&lt;/a&gt; that a new metric is being added as a factor to the Google Search ranking — what they are calling the “page experience update.” This update will measure the quality of an experience a site provides to the end user and rank sites using this new factor. Core Web Vitals are at the very center of these new measurements.&lt;/p&gt;

&lt;p&gt;Core Web Vitals are a set of &lt;a href="https://web.dev/vitals/" rel="noopener noreferrer"&gt;key metrics&lt;/a&gt; that measure web app performance with a focus on the user experience. Currently, they consist of three primary metrics: Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), and First Input Delay (FID).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Largest Contentful Paint&lt;/strong&gt; , or &lt;a href="https://web.dev/lcp/" rel="noopener noreferrer"&gt;LCP&lt;/a&gt;, is the load time for the web app up to a specific threshold of completeness. This threshold has been revised over the past few years, but the LCP focus speaks specifically to the user experience. Fast load times are critical to UX and LCP is a core metric to understanding user wait time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cumulative Layout Shift&lt;/strong&gt; , or &lt;a href="https://web.dev/cls/" rel="noopener noreferrer"&gt;CLS&lt;/a&gt;, is defined as the extent to which the layout is required to shift during app interaction. Relayout is an expensive operation, and performant rendering minimizes layout changes.  It is weighted as five percent of the overall &lt;a href="https://web.dev/performance-scoring/#lighthouse-6" rel="noopener noreferrer"&gt;performance score&lt;/a&gt; in Lighthouse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Input Delay&lt;/strong&gt; , or &lt;a href="https://web.dev/fid/" rel="noopener noreferrer"&gt;FID&lt;/a&gt;, focuses on UI responsiveness to the user’s first interaction with the page.  This metric is impacted both by the page load, as well as the order of elements loaded, and the actions taken upon user interaction.&lt;/p&gt;

&lt;p&gt;Each of these Core Web Vitals track and focus on the user experience.  When Google's search changes begin going into effect in June 2021, more performant sites will more easily climb in search rankings while less performant sites will be penalized.&lt;/p&gt;

&lt;p&gt;We want to make sure that our web app developers are prepared to succeed and have taken steps to make sure OneSignal is streamlined and free of hiccups such as Cumulative Layout Shift issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  We’ve Eliminated Impacts to Cumulative Layout Shift
&lt;/h2&gt;

&lt;p&gt;Previously, integrating the &lt;a href="https://documentation.onesignal.com/docs/custom-link-prompt" rel="noopener noreferrer"&gt;Custom Link notification prompt&lt;/a&gt; button with OneSignal was causing any elements below it to shift slightly on page load (by several pixels). We have fixed this issue and made sure that using this feature will not result in any layout shift whatsoever.&lt;/p&gt;

&lt;p&gt;To monitor CLS, we’ve introduced a PerformanceObserver into our SDK’s sandbox environment which is used in  SDK testing. The &lt;a href="https://developers.google.com/web/updates/2016/06/performance-observer" rel="noopener noreferrer"&gt;PerformanceObserver API&lt;/a&gt; enables our team to log events that negatively affect user experience via CLS. This new API call helps us measure layout-shift of container elements for all of our prompts. This increases our confidence that our impact on CLS is negligible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining a Performant Web SDK
&lt;/h2&gt;

&lt;p&gt;To minimize the impact of using the OneSignal SDK on page performance, the WebSDK was built from the very beginning with this in mind. The SDK is lightweight and loads asynchronously on websites — not impacting any of the other Core Web Vitals such as LCP and FID.&lt;/p&gt;

&lt;p&gt;During the SDK development process, our CI guardrails help ensure that the SDK remains as small as possible. Whenever our CI detects the SDK bundle size to have exceeded our preset limits, the SDK rollout is halted until fixed. This may include a small limit bump to accommodate new features or a necessary reduction from refactoring existing SDK components to be lighter weight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unused Javascript Opportunity
&lt;/h2&gt;

&lt;p&gt;While the SDK is already performant, there is always room for improvement. One way we can further boost performance is by only loading what the integrating website needs. For example, if the site has not implemented the Category Slidedown prompt, any SDK code that makes this feature work can naturally be excluded.&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%2Flh5.googleusercontent.com%2F7kYtPS4BBEuQwk74L-KvOn-YF_fO3luWrkZMWhrl-S3Pe3X4_3b1GNZTXqrk4KTe4oQD814eaZOfphUWBEAdJfiRYu2fH7-l8A6GEzs8oOa84XA7udGcHY_XVjXzELOt5DGKdLWw" 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%2Flh5.googleusercontent.com%2F7kYtPS4BBEuQwk74L-KvOn-YF_fO3luWrkZMWhrl-S3Pe3X4_3b1GNZTXqrk4KTe4oQD814eaZOfphUWBEAdJfiRYu2fH7-l8A6GEzs8oOa84XA7udGcHY_XVjXzELOt5DGKdLWw" alt="About Google's Page Experience Update &amp;amp; OneSignal's Web Push SDK"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The SDK’s modular design makes it possible to break up the SDK into smaller pieces that can be loaded if and only if they are needed. The same can be said about styles. While this functionality does not yet exist in the SDK, it presents an opportunity to further trim down load times and resource sizes which in turn helps OneSignal applications be more performant and edge out the competition in the Google Search Ranking arena.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources &amp;amp; Support
&lt;/h3&gt;

&lt;p&gt;As you build your web apps with OneSignal and other SDKs and tools, keep the impact to Core Web Vitals in mind.  The &lt;a href="https://github.com/GoogleChrome/lighthouse-ci" rel="noopener noreferrer"&gt;lighthouse-ci&lt;/a&gt; tool is an excellent way to prevent regressions and monitor performance in your Web Application.&lt;/p&gt;

&lt;p&gt;Other &lt;a href="https://web.dev/vitals-tools/" rel="noopener noreferrer"&gt;tools for measuring Core Web Vitals&lt;/a&gt; are available, and leveraging these tools is critical to building performant web apps.&lt;/p&gt;

&lt;p&gt;At OneSignal, we’re taking similar steps to keep your apps snappy and your users happy. If you still have questions about our web SDK, reach out to us at &lt;strong&gt;&lt;a href="mailto:support@onesignal.com"&gt;support@onesignal.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Developer Relations @ OneSignal</title>
      <dc:creator>Jordan M. Adler</dc:creator>
      <pubDate>Thu, 10 Jun 2021 15:30:00 +0000</pubDate>
      <link>https://forem.com/onesignal/developer-relations-onesignal-1olb</link>
      <guid>https://forem.com/onesignal/developer-relations-onesignal-1olb</guid>
      <description>&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%2Fuploads%2Farticles%2Fhwseg3r9zb5cjjlapu30.jpeg" 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%2Fuploads%2Farticles%2Fhwseg3r9zb5cjjlapu30.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://onesignal.com/podcasts" rel="noopener noreferrer"&gt;OneSignal podcast&lt;/a&gt; aims to help companies build meaningful and lasting relationships with their customers.  Episode 24 welcomes &lt;a href="https://www.linkedin.com/in/jordanmadler/" rel="noopener noreferrer"&gt;Jordan Adler&lt;/a&gt;, SDK &amp;amp; Developer Relations Leader at OneSignal, to discuss his career path, which has included building developer communities at Google, and how he sees the OneSignal DevRel team evolving.   &lt;/p&gt;

&lt;p&gt;Please listen to the podcast to hear more of Jordan's insights, and you can follow OneSignal Developer Relations on Twitter &lt;a href="https://twitter.com/OneSignalDevs" rel="noopener noreferrer"&gt;@OneSignalDevs&lt;/a&gt;.   &lt;/p&gt;

&lt;p&gt;You can subscribe to the OneSignal Podcast at your preferred podcast directory: &lt;a href="https://open.spotify.com/show/2NN2fgyduMCGHkCip2cyZD" rel="noopener noreferrer"&gt;Spotify&lt;/a&gt;, &lt;a href="https://podcasts.apple.com/us/podcast/onesignal-podcast/id1488398392" rel="noopener noreferrer"&gt;Apple&lt;/a&gt;, &lt;a href="https://podcasts.google.com/?feed=aHR0cHM6Ly9mZWVkcy50cmFuc2lzdG9yLmZtL29uZXNpZ25hbA%3D%3D&amp;amp;hl=en" rel="noopener noreferrer"&gt;Google&lt;/a&gt;, &lt;a href="https://tunein.com/podcasts/Business--Economics-Podcasts/OneSignal-Podcast-p1274139/" rel="noopener noreferrer"&gt;TuneIn&lt;/a&gt;, among many others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://onesignal.com/" rel="noopener noreferrer"&gt;OneSignal&lt;/a&gt; is the most widely used customer messaging and engagement solution, helping over a million businesses deliver over 8 billion messages to their customers each day &lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://app.onesignal.com/signup" rel="noopener noreferrer"&gt;&lt;strong&gt;Sign up for free&lt;/strong&gt;&lt;/a&gt; today to use OneSignal to grow and retain your customer base.&lt;/p&gt;

</description>
      <category>podcast</category>
      <category>webdev</category>
      <category>devrel</category>
    </item>
  </channel>
</rss>
