{"id":39640,"date":"2025-12-18T07:00:00","date_gmt":"2025-12-18T15:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=39640"},"modified":"2025-12-18T11:54:06","modified_gmt":"2025-12-18T19:54:06","slug":"hacktoberfest-first-time-maintainer","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer","title":{"rendered":"Hacktoberfest as a First-Time Maintainer"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Earlier this year, I took over maintenance duties on <a href=\"https:\/\/github.com\/cloudinary-community\">Cloudinary\u2019s Community Libraries<\/a>. Fast forward a few months, and my team was gearing up to participate in Digital Ocean\u2019s annual <a href=\"https:\/\/hacktoberfest.com\">Hacktoberfest<\/a>.<\/p>\n<p>Reader, I was worried.<\/p>\n<p>I was still very much familiarizing myself with how the libraries worked, and trying to wrap my head around their issue backlogs. And while I\u2019d never participated in a Hacktoberfest in any capacity before, I had read some <a href=\"https:\/\/joel.net\/how-one-guy-ruined-hacktoberfest2020-drama\">scary<\/a> <a href=\"https:\/\/domenic.me\/hacktoberfest\/\">things<\/a> from other maintainers, who complained of an annual avalanche of spam.<\/p>\n<p>What\u2019s worse than an avalanche? A <em>turbo<\/em>-avalanche powered by the recent explosion of AI-powered coding tools. As September drew to a close, I imagined hundreds of AI-written PRs coming in, each hundreds of lines long, all based on prompts that poorly understood the underlying issues, containing code that the submitters themselves didn\u2019t understand, but which we would be expected to review.<\/p>\n<p>The good news: It wasn\u2019t that bad. While the underlying incentive structures of Hacktoberfest <em>did<\/em> generate some spam, and while almost all of that spam smelled like AI, our team was able to get ahead of many problems with strong policies, and would have been able to prevent many more with a bit of additional preparation and planning.<\/p>\n<p>The worst PRs were about as bad as I expected, but there weren\u2019t as many of them as I\u2019d feared, and the best PRs were actually, <em>dare I say<\/em>, really good? Hackathon participants tackled some of the issues I\u2019d been putting off addressing for months, helping me push the libraries forward.<\/p>\n<p>All in all, while participation as a maintainer did take a <em>lot<\/em> of time (and we\u2019re in active discussions about whether or not we want to participate next year), it also provided some tangible value, without overwhelming us. And hopefully it helped some folks get more comfortable with the mechanics of open source along the way.<\/p>\n<p>If you\u2019re thinking about participating as a maintainer in years to come, read on to learn about what worked for us \u2014 and what didn\u2019t.<\/p>\n<h2>Narrowing Scope<\/h2>\n<p>The <em>best<\/em> decision we made was to limit participation to fixes for a specific set of existing issues, which we identified with a <code>Hacktoberfest<\/code> tag. This addressed a few issues:<\/p>\n<ol>\n<li>We had a clear mandate to quickly close any drive-by, low-value PRs (e.g. \u201cimprove docs\u201d).<\/li>\n<li>We could spend our time during Hacktoberfest reviewing PRs rather than trying to reproduce new issues or define new features.<\/li>\n<li>We could further limit contributions to issues whose fixes would be reasonably straightforward, allowing for quick reviews.<\/li>\n<\/ol>\n<p>It was a good theory! In practice, we applied the <code>Hacktoberfest<\/code> tag fairly liberally, and <em>did<\/em> spend some time reproducing issues, specifying new features, and reviewing complex PRs. This led to a lot of work and some very long review delays.<\/p>\n<p>We weren\u2019t stingy enough with the tag because we set a goal for how many contributions we wanted to accept by the end of the month, <em>up front<\/em>, and tagged that many issues, rather than seeing how many issues were going to be a good fit for Hacktoberfest first, and using <em>that<\/em> number to set the goal.<\/p>\n<p>We had good reasons to set a number ahead of time. For one, it\u2019s always good to define a success metric up front so that you can quantify (and communicate) success or failure; we set the quota based on the number of successful submissions that we received in <a href=\"https:\/\/cloudinary.com\/blog\/hacktoberfest-open-source-celebration-cloudinary\">2024<\/a>. For two, we were offering our own swag (a plushie Cloudinary unicorn) to contributors of accepted PRs, and it\u2019s best to know how many of those you\u2019re going to need well ahead of time.<\/p>\n<p>The end result, though, was a <code>Hacktoberfest<\/code> tag on a number of issues that I only poorly or vaguely understood, which came back to bite us later.<\/p>\n<p>Knowing that we had a quota to hit did motivate me to do one good thing; I did a full docs review and identified and filed a handful of minor issues, which would be easy to fix and review. It would have been much (much!) faster to fix these myself, as soon as I identified them, but:<\/p>\n<ol>\n<li>I wouldn\u2019t have done the docs review without Hacktoberfest.<\/li>\n<li>One of the best things Hacktoberfest does is invite people who are new to open source to learn the mechanics of it. In some ways, it doesn\u2019t matter what the contributions are, as long as new contributors are \u201cgetting their feet wet\u201d forking, committing, PRing, and responding to feedback.<\/li>\n<\/ol>\n<p>So, the stage was set. As October came around, the PRs started to come in.<\/p>\n<h2>Hacktoberfest Begins<\/h2>\n<p>Most of the PRs we received for the month came in during the first week. People were also very good at identifying which issues would be easiest to fix. All of my \u201ceasy\u201d issues were taken off of the board immediately. We received a number of the predicted nonsensical drive-bys that were easy to close, but after that, it was time to chew through dozens of substantive PRs.<\/p>\n<p>It wasn\u2019t long before I started to regret that we\u2019d applied the tag to some poorly defined and understood issues. The most embarrassing of these was: Someone submitted a \u201cfix\u201d for an issue, but their changes seemed unrelated to the problem at hand. Turns out, the issue had <em>already<\/em> been fixed a year ago, as part of a much broader update, but the issue was never closed. My guess at what happened is that the submitter fed the issue into Cursor, which, being asked to solve a solved problem, did its best.<\/p>\n<p>It was clear that many submissions were created with the help of AI. It was also clear \u2014 both in the initial PRs that came in and in the reviews and discussions that followed \u2014 that the humans behind these submissions had varying levels of understanding of what they were trying to accomplish, and how their PRs were accomplishing it. The more understanding they had, the better things went. A number of follow-up conversations \u2014 where we tried to clarify the issue or suggest possible alternate paths forward \u2014 went nowhere, leading to closed PRs and wasted time on both sides.<\/p>\n<p>However, the quality of the highest-quality submissions was well beyond my expectations. A handful of contributors clearly understood the underlying frameworks better than I do, and took the time to suggest thoughtful solutions to nuanced problems that we hadn\u2019t yet been able to tackle. I\u2019m extremely grateful for their time and effort, which was worth far more than a unicorn plushie and a Digital Ocean T-shirt.<\/p>\n<h2>Overwhelmed, but Just a Little<\/h2>\n<p>Because a number of the issues turned out to be rather thorny (and because I and the other technical reviewers had more to do in October than review Hacktoberfest PRs), review times stretched to weeks, which I know was frustrating for contributors. In a couple of cases, we were not able to either accept or reject PRs before the November 15 deadline. We sent those contributors a unicorn anyway, but if the real purpose of Hacktoberfest is to familiarize folks with the mechanics of open source, learning that things are surprisingly complicated and your code might never land isn\u2019t a great lesson. Again, I wish we\u2019d been a little more careful about which issues we invited people to solve.<\/p>\n<h2>Worth It?<\/h2>\n<p>From Cloudinary\u2019s side, it\u2019s hard to measure the value of a thing like Hacktoberfest. Our community library docs are in better shape now, and dozens of small fixes that would have been easy to put off have now been done. In addition, we made real progress on a handful of meaty issues that I\u2019d been putting off tackling for months. And, hopefully, the participants are more familiar with Cloudinary and our SDKs, and are more likely to use us as they continue to build and grow their careers.<\/p>\n<p>At the same time, the slow (and in a couple of cases, unresolved) reviews may have had the opposite effect, driving participants away. And the cost in time to Cloudinary was real, as we prioritized Hacktoberfest work over other projects in October and November.<\/p>\n<p>Personally, I\u2019m definitely glad I did it, once. Whether we as a company decide to do it again next year remains to be seen.<\/p>\n<p>Happy hacking!<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":87,"featured_media":39654,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[57,367],"class_list":["post-39640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-cloudinary","tag-dev-rel"],"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>What I Learned as a First-Time Maintainer During Hacktoberfest<\/title>\n<meta name=\"description\" content=\"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.\" \/>\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\/hacktoberfest-first-time-maintainer\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hacktoberfest as a First-Time Maintainer\" \/>\n<meta property=\"og:description\" content=\"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-18T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T19:54:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\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\/hacktoberfest-first-time-maintainer#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Hacktoberfest as a First-Time Maintainer\",\"datePublished\":\"2025-12-18T15:00:00+00:00\",\"dateModified\":\"2025-12-18T19:54:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\"},\"wordCount\":5,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA\",\"keywords\":[\"Cloudinary\",\"Dev Rel\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\",\"url\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\",\"name\":\"What I Learned as a First-Time Maintainer During Hacktoberfest\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA\",\"datePublished\":\"2025-12-18T15:00:00+00:00\",\"dateModified\":\"2025-12-18T19:54:06+00:00\",\"description\":\"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hacktoberfest as a First-Time Maintainer\"}]},{\"@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\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What I Learned as a First-Time Maintainer During Hacktoberfest","description":"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.","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\/hacktoberfest-first-time-maintainer","og_locale":"en_US","og_type":"article","og_title":"Hacktoberfest as a First-Time Maintainer","og_description":"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.","og_url":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer","og_site_name":"Cloudinary Blog","article_published_time":"2025-12-18T15:00:00+00:00","article_modified_time":"2025-12-18T19:54:06+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Hacktoberfest as a First-Time Maintainer","datePublished":"2025-12-18T15:00:00+00:00","dateModified":"2025-12-18T19:54:06+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer"},"wordCount":5,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","keywords":["Cloudinary","Dev Rel"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer","url":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer","name":"What I Learned as a First-Time Maintainer During Hacktoberfest","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","datePublished":"2025-12-18T15:00:00+00:00","dateModified":"2025-12-18T19:54:06+00:00","description":"Eric Portis reflects on Hacktoberfest: managing PRs, avoiding overwhelm, and finding real value in community contributions.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/hacktoberfest-first-time-maintainer#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hacktoberfest as a First-Time Maintainer"}]},{"@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":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1766012566\/Blog_Hacktoberfest_post_mortem\/Blog_Hacktoberfest_post_mortem.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39640","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\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=39640"}],"version-history":[{"count":2,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39640\/revisions"}],"predecessor-version":[{"id":39656,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39640\/revisions\/39656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/39654"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=39640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=39640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=39640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}