{"id":21513,"date":"2017-04-26T16:53:45","date_gmt":"2017-04-26T16:53:45","guid":{"rendered":"http:\/\/media_heavy_apps_progressive_web_to_the_rescue"},"modified":"2024-08-21T18:51:44","modified_gmt":"2024-08-22T01:51:44","slug":"media_heavy_apps_progressive_web_to_the_rescue","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue","title":{"rendered":"Media-Heavy Apps? Progressive Web to the Rescue"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>I\u2019m not going to lie, Progressive Web App (or PWA) have become a bit of a buzzword, with many developers singing its virtues and proclaiming that it solves all of their problems. Progressive Web Apps aren\u2019t going to cure cancer or make you a billionaire on their own. But they can make your Web Apps a lot more approachable and performant.<\/p>\n<p>Before we start talking about why you should care about Progressive Web Apps, maybe we should first explain what they are. A lot of people assume that Progressive Web Apps are a Google product, since the term was coined by Google employees Frances Berriman and Alex Russell. However, the phrase describes how one can build a web app using technologies from modern browsers to provide a more \u201cnative\u201d app feel, and in the case of Progressive Web Apps on Android, actually behave entirely as native apps.<\/p>\n<h2>What is a Progressive Web App?<\/h2>\n<p>According to <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/getting-started\/codelabs\/your-first-pwapp\/\">Google Developers<\/a>, a Progressive Web App is:<\/p>\n<ul>\n<li>Progressive &#8211; Works for every user, regardless of browser choice, because it\u2019s built with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Progressive_enhancement\">progressive enhancement<\/a> as a core tenet.<\/li>\n<li>Responsive &#8211; Fits any form factor: Desktop, mobile, tablet or whatever devices may be next.<\/li>\n<li>Connectivity independent &#8211; Enhanced with service workers, enabling it to work offline or on low-quality networks.<\/li>\n<li>App-like &#8211; Feels like an app, because the app shell model separates application functionality from application content.<\/li>\n<li>Fresh &#8211; Always up-to-date as a result of  the <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/getting-started\/primers\/service-workers\">service worker<\/a> update process.<\/li>\n<li>Secure &#8211; Served via HTTPS to prevent snooping and to ensure content hasn\u2019t been tampered with.<\/li>\n<li>Discoverable &#8211; Is identifiable as an \u201capplication\u201d thanks to <a href=\"https:\/\/developers.google.com\/web\/updates\/2014\/11\/Support-for-installable-web-apps-with-webapp-manifest-in-chrome-38-for-Android\">W3C manifest<\/a> and <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/instant-and-offline\/service-worker\/registration\">service worker registration<\/a> scope, enabling search engines to find it.<\/li>\n<li>Re-engageable &#8211; Makes re-engagement easy through features like push notifications.<\/li>\n<li>Installable &#8211; Allows users to add apps they find most useful to their home screen without the hassle of an app store.<\/li>\n<li>Linkable &#8211; Easily shared via URL, does not require complex installation.<\/li>\n<\/ul>\n<p>All of these characteristics are provided by a few technologies available to all modern browsers in the form of an HTTPS connection, Web manifest and service workers. For most developers, this means that you now have a lot more toys to deliver a better user experience. It also means that you can create a more interactive app regardless of the end-user network connection.<\/p>\n<h2>Media Needs Progressive<\/h2>\n<p>But why should you care about Progressive Web Apps? Well, most obvious is the ability to improve the user experience. Just by super-charging your existing app with Progressive Web App, end users will get a web app that looks and behaves like a native app, an experience they\u2019re accustomed to.<\/p>\n<p>The most complex, fascinating and useful part of the technology needed for Progressive Web Apps is the service worker, which carries out essential content functions via offline caching and remote access. In tandem with a service worker, an image backend like <a href=\"https:\/\/cloudinary.com\/\">Cloudinary<\/a> facilitates <a href=\"https:\/\/cloudinary.com\/blog\/introducing_smart_cropping_intelligent_quality_selection_and_automated_responsive_images\">media handling tasks<\/a>, such as <a href=\"https:\/\/cloudinary.com\/blog\/the_holy_grail_of_image_optimization_or_balancing_visual_quality_and_file_size\">optimization and data processing<\/a> (sometimes referred to as an Image CDN).<\/p>\n<p>Currently, the most complete service worker APIs are the fetch API, push notifications, caching and background sync (with periodic sync expected shortly). Push notifications give a great user experience and performance boost as you have to do fewer GET\/POST loops in your UI javascript. However, the best <a href=\"https:\/\/cloudinary.com\/blog\/adaptive_browser_based_image_format_delivery\">performance boost<\/a> is from the caching and background sync.<\/p>\n<p>With the <code>install<\/code> event in the service worker, you can force the browser to get and cache all large assets, including CSS &amp; JS files. It can also be useful for other assets used throughout the app and any assets bulky enough that justify an early get and cache. The <code>sync<\/code> event enables you to make requests when the device is back online and to cache them when the connection dies or become flaky, in order to queue what to load next.<\/p>\n<p>The crown jewel of service worker events is the <code>fetch<\/code>. This event enables you to intercept and modify HTTP requests. A powerful use case example is to check, for every request, if the cache has a version with a relevant TTL and getting it, if it doesn\u2019t. Imagine the power to get images and videos off a lightning fast CDN and being able to cache them (or pre-fetch them) based on other HTTP requests or data changes in the browser.<\/p>\n<h2>The Power Within<\/h2>\n<p>The majority of web apps produced are either data intensive or contain content that is  download intensive, like images and videos. Such media is seeing increased use as good data connections instigate shoving more content down the pipe. As a result, user experience degrades considerably in areas of poor connectivity, even if you\u2019ve optimized everything at the server-side.<\/p>\n<p>Taking advantage of the <code>fetch<\/code> and <code>sync<\/code> events to cache the chunkier pieces, or even pre-fetch and cache them, means that your users get a better perceived experience and we, as developers, can worry less about the flakey bits between the servers and the browser.<\/p>\n<p>If you are feeling ready to take the plunge and try making your web apps more progressive, tools do exist to point you in the right direction. The biggest and easiest to use of these is the <a href=\"https:\/\/github.com\/GoogleChrome\/lighthouse\">Lighthouse project<\/a>, which is a Google project but open for anyone to use. This test suite validates that your app follows the tenets required of a Progressive Web App. It\u2019s also a great tool for checking performance and usability. It comes in many flavors &#8211; from a NodeJS-based CLI through to a Google Chrome extension.<\/p>\n<p>Now you know what Progressive Web Apps are, why you should care about them and even where to make sure they fit the standard. So go ahead, play with modern browser features and make your apps better and more progressive!<\/p>\n<h3>jQuery Progressive Web App Example<\/h3>\n<ul>\n<li>\n<a href=\"https:\/\/github.com\/ukmadlz\/cloudinary-pwa-jquery\">GitHub<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/codepen.io\/team\/Cloudinary\/project\/editor\/APBgNZ\/\">CodePen Project<\/a>\n<\/li>\n<\/ul>\n<table>\n<tr>\n<td style = \"padding: 5px;\">\n<img decoding=\"async\" src=\"https:\/\/cloudinary-res.cloudinary.com\/image\/upload\/c_thumb,w_1000\/mike_hackconeu.jpg\" alt=\"Mike Elsmore\" title=\"Mike Elsmore\"><\/img><\/td>\n<td style = \"padding: 10px;\"><i><a href=\"https:\/\/twitter.com\/ukmadlz\" target=\"_new\">Mike Elsmore<\/a> loves building, tinkering and making odd things happen with code, using his time to share knowledge on rapid development and database technologies. Most of the time, he can be found in the middle of building a prototype that combines JavaScript, server tech and odd APIs. Mike also happens to be an active participant in the hacker subculture, taking part in hackathons and development conferences, as well as running his own. <\/i><\/td>\n<\/tr>\n<\/table>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21514,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[227,242],"class_list":["post-21513","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-performance-optimization","tag-progressive-web-app"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why you should care about Progressive Web Apps<\/title>\n<meta name=\"description\" content=\"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Media-Heavy Apps? Progressive Web to the Rescue\" \/>\n<meta property=\"og:description\" content=\"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-26T16:53:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-22T01:51:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Media-Heavy Apps? Progressive Web to the Rescue\",\"datePublished\":\"2017-04-26T16:53:45+00:00\",\"dateModified\":\"2024-08-22T01:51:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\"},\"wordCount\":7,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA\",\"keywords\":[\"Performance Optimization\",\"Progressive Web App\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2017\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\",\"url\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\",\"name\":\"Why you should care about Progressive Web Apps\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA\",\"datePublished\":\"2017-04-26T16:53:45+00:00\",\"dateModified\":\"2024-08-22T01:51:44+00:00\",\"description\":\"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Media-Heavy Apps? Progressive Web to the Rescue\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why you should care about Progressive Web Apps","description":"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue","og_locale":"en_US","og_type":"article","og_title":"Media-Heavy Apps? Progressive Web to the Rescue","og_description":"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.","og_url":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue","og_site_name":"Cloudinary Blog","article_published_time":"2017-04-26T16:53:45+00:00","article_modified_time":"2024-08-22T01:51:44+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue"},"author":{"name":"","@id":""},"headline":"Media-Heavy Apps? Progressive Web to the Rescue","datePublished":"2017-04-26T16:53:45+00:00","dateModified":"2024-08-22T01:51:44+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue"},"wordCount":7,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA","keywords":["Performance Optimization","Progressive Web App"],"inLanguage":"en-US","copyrightYear":"2017","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue","url":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue","name":"Why you should care about Progressive Web Apps","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA","datePublished":"2017-04-26T16:53:45+00:00","dateModified":"2024-08-22T01:51:44+00:00","description":"Why do we need Progressive Web Apps? The most obvious, to improve the user experience. But lets understand how they actually work why we care about them.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/media_heavy_apps_progressive_web_to_the_rescue#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Media-Heavy Apps? Progressive Web to the Rescue"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645224190\/website-2021\/blog\/Media-Heavy_Apps_2000x1100\/Media-Heavy_Apps_2000x1100.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21513"}],"version-history":[{"count":7,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21513\/revisions"}],"predecessor-version":[{"id":35428,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21513\/revisions\/35428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21514"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}