{"id":21475,"date":"2017-02-27T15:38:57","date_gmt":"2017-02-27T15:38:57","guid":{"rendered":"http:\/\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary"},"modified":"2024-10-03T16:57:20","modified_gmt":"2024-10-03T23:57:20","slug":"why_we_moved_from_an_in_house_image_management_system_to_cloudinary","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary","title":{"rendered":"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary"},"content":{"rendered":"<div><\/div>\n<div>At <a href=\"https:\/\/www.build.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Build.com<\/strong><\/a>, where I\u2019m a software architect, we manage hundreds of millions of images. Our site offers more than 1 million home improvement products, such as tubs, toilets, cabinets, fireplaces \u2013 really any thing homeowners need for their improvement projects. And for each item, there are multiple images \u2013 product and gallery images, action shots, close-ups and thumbnails \u2013 that our visitors view from a variety of devices, including mobile phones, tablets, their desktop computers and our native app. In addition, these images are used in many view templates \u2013 on the landing page, via search, by category and in the cart.<\/div>\n<div><\/div>\n<div>Since our inception, we were using a homegrown system to manage and manipulate our images. We relied on Apache rules and <a href=\"https:\/\/cloudinary.com\/glossary\/video-proxies\">proxies<\/a> to a Java resizer app. But we ran into several problems with the system as our site grew, including:<\/div>\n<div>\n<ul>\n<li><strong>Speed<\/strong> \u2013 It was slow and we were unable to do image transformations on-the-fly.<\/li>\n<li><strong>Limited features<\/strong> \u2013 We could only resize the height and width, proportionately, and crop for thumbnails.<\/li>\n<li><strong>Data consistency<\/strong> \u2013 We would upload new images to the site, but they wouldn\u2019t be visible to customers.<\/li>\n<li><strong>Storage<\/strong> \u2013 With capacity problems and back-up issues, our IT operations staff was always having to help us deal with the images in our system.<\/li>\n<li><strong>Scaling<\/strong> \u2013 Uploading thousands of images caused a cascading set of issues, resulting in the system crashing and maxing out CPOs.<\/li>\n<li><strong>Image management<\/strong> \u2013 All images were managed through FTP, without any user interface (UI).<\/li>\n<\/ul>\n<\/div>\n<div>As our company evolved and expanded, we knew we had to find a better way to manage and deliver the best possible images to our buyers. We were spending too much time and too many resources maintaining the legacy system. That led us to a crossroads: Do we build a new system in-house, or should we look for a solution from a third-party vendor?<\/div>\n<div><\/div>\n<div>To aid in the decision-making process, we created a matrix that enabled us to evaluate the pros vs. cons of in-house vs. third-party, and identify the requirements any new system must meet:<\/div>\n<div>\n<ul>\n<li><strong>Performance<\/strong> \u2013 Time to transform and the ability to create multiple variants, on-the-fly, from the original.<\/li>\n<li><strong>Optimization<\/strong> \u2013 Ability to reduce image weight by stripping metadata, set JPEG levels and use progressive JPEGs, leverage WebP for Chrome and other actions that speed page-load time.<\/li>\n<li><strong>Rich Feature Set<\/strong> \u2013 Multiple transformation options, including cropping capabilities, face detection, applying watermarks and delivering higher resolution images for retina display.<\/li>\n<li><strong>Accuracy<\/strong> \u2013 Proper cache purges to resolve data consistency issues and deliver new images to customers immediately.<\/li>\n<li><strong>Ease of Use<\/strong> \u2013 Should be easy to implement, integrate and migrate the large existing media library from the legacy system in order to minimize impact on operations.<\/li>\n<\/ul>\n<\/div>\n<div>As we narrowed down our decision to build or buy, we also debated key points, including cost, both in terms of dollars and man hours. These costs included:<\/div>\n<div>\n<ul>\n<li>Common costs that would be incurred with either option (managing files, integration\/migration to a new system, storage, back-up costs and training for the new system).<\/li>\n<li>Opportunity costs (particularly in terms of the roadmap and functionality that may be required in the future).<\/li>\n<li>Man hours required (for either building and maintaining the system or integrating and managing a third-party solution).<\/li>\n<\/ul>\n<\/div>\n<div>Other considerations included:<\/div>\n<div>\n<ul>\n<li>Number of files we would need to manage<\/li>\n<li>Total storage<\/li>\n<li>Bandwidth usage<\/li>\n<li>Growth expectations<\/li>\n<li>Potential scalability and reliability of each model to support a global audience or unexpected traffic spikes.<\/li>\n<\/ul>\n<\/div>\n<div>Ultimately, we realized that buying was our best option. We have a talented group of developers, but felt their time would be better spent working on new features for Build.com, rather than the tasks that an outsourced image management service should easily be able to handle.<\/div>\n<div><\/div>\n<div>We looked for a vendor that had experience serving companies that were larger than Build.com, which showed that it was capable of scaling, was considered reliable and offered high availability. If these companies were using a vendor and satisfied with its performance, we knew it would be a good fit for us. In addition, we wanted to ensure that the vendor\u2019s performance was faster than our legacy system. Before making our decision, we ran side-by-side <a href=\"https:\/\/www.webpagetest.org\/\" target=\"_blank\" rel=\"noopener\">WebPageTest<\/a> comparisons, which enabled us to test whether the vendor\u2019s system offered significant speed increases and performance improvements.<\/div>\n<div><\/div>\n<div>After considering a number of third-party vendors, we selected Cloudinary because it met \u2013 or exceeded \u2013 all our requirements. Since our move to Cloudinary in May 2016, we\u2019ve seen a number of benefits:<\/div>\n<div>\n<ul>\n<li><strong>Easy implementation<\/strong> \u2013 Available code libraries, upload widgets and ability to fetch images from remote locations made our start-up and transition a snap.<\/li>\n<li><strong>Greater productivity<\/strong> \u2013 Because we didn\u2019t have to maintain and troubleshoot problems, like in our legacy system, our development team became more productive, saving use an average of 10 to 20 hours a month to re-focus on other important aspects.<\/li>\n<li><strong>Instant access to new features<\/strong> \u2013 As Cloudinary introduced new features, such as art-directed cropping and optimal format selection based on the browser, we could immediately take advantage of them.<\/li>\n<li><strong>Better utilization<\/strong> \u2013 There was less CPU usage on our servers, better CDN purging when files changed and improvements in back ups.<\/li>\n<li><strong>Improved performance<\/strong> \u2013 All web pages loaded on Chrome now use WebP for optimal performance, and we generally lowered the page size and reduced loading time.<\/li>\n<\/ul>\n<\/div>\n<div>The decision to build vs. buy a new image management system was not one we took lightly, since the success of our site \u2013 and our business \u2013 relies so heavily on images. Every company needs to take careful stock of its current challenges, what it wishes to accomplish, expectations for the future, and the risks and rewards of each option, before taking that next step.<\/div>\n<div><\/div>\n<div>Here I\u2019ve shared our decision-making process, and the overall benefits from moving to Cloudinary. In my next blog, I\u2019ll go into more detail about how we\u2019re using Cloudinary and the results we have achieved.<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>At Build.com, where I\u2019m a software architect, we manage hundreds of millions of images. Our site offers more than 1 million home improvement products, such as tubs, toilets, cabinets, fireplaces \u2013 really any thing homeowners need for their improvement projects. And for each item, there are multiple images \u2013 product and gallery images, action shots, [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":21476,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[281],"class_list":["post-21475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-success-story"],"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 Build.com moved from an in-house system to Cloudinary<\/title>\n<meta name=\"description\" content=\"We were using an in-house system to manage &amp; manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.\" \/>\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\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary\" \/>\n<meta property=\"og:description\" content=\"We were using an in-house system to manage &amp; manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-27T15:38:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-03T23:57:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"770\" \/>\n\t<meta property=\"og:image:height\" content=\"424\" \/>\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\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary\",\"datePublished\":\"2017-02-27T15:38:57+00:00\",\"dateModified\":\"2024-10-03T23:57:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\"},\"wordCount\":990,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA\",\"keywords\":[\"Success Story\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2017\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\",\"url\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\",\"name\":\"Why Build.com moved from an in-house system to Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA\",\"datePublished\":\"2017-02-27T15:38:57+00:00\",\"dateModified\":\"2024-10-03T23:57:20+00:00\",\"description\":\"We were using an in-house system to manage & manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA\",\"width\":770,\"height\":424},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary\"}]},{\"@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 Build.com moved from an in-house system to Cloudinary","description":"We were using an in-house system to manage & manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.","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\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary","og_locale":"en_US","og_type":"article","og_title":"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary","og_description":"We were using an in-house system to manage & manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.","og_url":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary","og_site_name":"Cloudinary Blog","article_published_time":"2017-02-27T15:38:57+00:00","article_modified_time":"2024-10-03T23:57:20+00:00","og_image":[{"width":770,"height":424,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary"},"author":{"name":"","@id":""},"headline":"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary","datePublished":"2017-02-27T15:38:57+00:00","dateModified":"2024-10-03T23:57:20+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary"},"wordCount":990,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA","keywords":["Success Story"],"inLanguage":"en-US","copyrightYear":"2017","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary","url":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary","name":"Why Build.com moved from an in-house system to Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA","datePublished":"2017-02-27T15:38:57+00:00","dateModified":"2024-10-03T23:57:20+00:00","description":"We were using an in-house system to manage & manipulate images but ran into several issues as the site grew. Ultimately, we realized that buying was the best option.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA","width":770,"height":424},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/why_we_moved_from_an_in_house_image_management_system_to_cloudinary#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Guest Post: Why We Moved from An In-House Image Management System to Cloudinary"}]},{"@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\/v1649724462\/Web_Assets\/blog\/build_bathtub\/build_bathtub.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21475","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=21475"}],"version-history":[{"count":6,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21475\/revisions"}],"predecessor-version":[{"id":35873,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21475\/revisions\/35873"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21476"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}