{"id":2997,"date":"2025-01-07T20:12:20","date_gmt":"2025-01-08T02:12:20","guid":{"rendered":"https:\/\/readme.com\/resources\/?p=2997"},"modified":"2025-01-07T20:12:21","modified_gmt":"2025-01-08T02:12:21","slug":"jamstack-static-sites-dynamic-apis-killer-dx","status":"publish","type":"post","link":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx","title":{"rendered":"Jamstack Attack! Static Sites, Dynamic APIs, and a Killer DX"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">\u201cJAMstack\u201d Google search interest, starting in 2017.(<a href=\"https:\/\/trends.google.com\/trends\/explore?date=2017-01-01+2020-04-30&amp;q=JAMstack&amp;ref=blog.readme.com\">Google<\/a><a href=\"https:\/\/trends.google.com\/trends\/explore?date=2017-01-01+2020-04-30&amp;q=JAMstack&amp;ref=blog.readme.com\"> Trends<\/a>)<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-the-jamstack\">What is the Jamstack?<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u201cMaybe like a Jam Session. \u2026 I&#8217;m picturing a group of people jamming out (musically) in a garage or warehouse space.\u201d<\/em>&nbsp;\u2014Owlbert, guess #5<\/p>\n<\/blockquote>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Swag-Smiling.psd_small.png\" alt=\"owlbert\"\/><figcaption class=\"wp-element-caption\">Owlbert, ReadMe mascot<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The&nbsp;<strong>Jamstack<\/strong>&nbsp;(originally stylized&nbsp;<strong>JAMstack<\/strong>) is a way of building web applications that extends the benefits of \u201cstatic sites\u201d, emphasizing their true dynamic potential with APIs. Originally introduced as a concept by Matthew Biilmann in 2016, then popularized by&nbsp;<a href=\"https:\/\/www.netlify.com\/?ref=blog.readme.com\">Netlify<\/a>&nbsp;and other companies in 2017 onward, the Jamstack approach continues to grow in popularity thanks to its design for rapid scalability, performance, security, and relatively easy developer experience.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.freecodecamp.org\/news\/content\/images\/2020\/02\/jamstack-breakdown-3.jpg\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Image credit: Colby Fayock, What is the JAMstack and How Do I Get Started? (<a href=\"https:\/\/www.freecodecamp.org\/news\/what-is-the-jamstack-and-how-do-i-host-my-website-on-it\/?ref=blog.readme.com\">freecodecamp.org<\/a>)<\/figcaption><\/figure>\n\n\n\n<p>The&nbsp;<strong>JAM&nbsp;<\/strong>in Jamstack<strong>&nbsp;<\/strong>is an acronym that stands for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaScript<\/li>\n\n\n\n<li>APIs<\/li>\n\n\n\n<li>Markup<\/li>\n<\/ul>\n\n\n\n<p><strong>JavaScript&nbsp;<\/strong>in the client browser handles dynamic interaction using a set of reusable&nbsp;<strong>APIs<\/strong>&nbsp;to abstract away server-side (backend) operations. An app often combines the use of many API services, each tailored toward a specific operation set (more on this later!).&nbsp;<strong>Markup<\/strong>&nbsp;is the technology used to serve prebuilt websites as static files to end users without delay.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-facts-and-features-of-the-jamstack\">Key facts and features of the Jamstack:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaScript web applications<\/li>\n\n\n\n<li>APIs for dynamic services (no reliance on specific servers)<\/li>\n\n\n\n<li>Pre-rendered pages (Markup, including HTML\/CSS)<\/li>\n\n\n\n<li>Deployed via CDN<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-advantages-of-the-jamstack\">Key advantages of the Jamstack:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Highly Scalable<\/li>\n\n\n\n<li>Highly Performant<\/li>\n\n\n\n<li>Highly Secure<\/li>\n\n\n\n<li>Easy to implement<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Hanging.psd_small-1.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Owlbert, creative guesser<\/figcaption><\/figure>\n<\/div>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u201cA stack of assorted jams and other condiments and add-ins, often between two slices of bread. &#8230; A pretentious way to say \u2018sandwich.\u2019\u201d<\/em>&nbsp;\u2014Owlbert, guess #17<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"don%E2%80%99t-call-them-static-sites\">Don\u2019t Call Them Static Sites<\/h2>\n\n\n\n<p>\u201cYou may have already seen or worked on a Jamstack site! They do not have to include&nbsp;<em>all<\/em>&nbsp;attributes of JavaScript, APIs, and Markup. They might be built using sites built by hand, or with Jekyll, Hugo, Nuxt, Next, Gatsby, or another&nbsp;<a href=\"https:\/\/www.staticgen.com\/?ref=blog.readme.com\">static site generator<\/a>.&nbsp;<em>The thing that they all have in common is that they don\u2019t depend on a web server.<\/em>\u201d \u2014<a href=\"https:\/\/jamstack.org\/?ref=blog.readme.com\">jamstack.org<\/a><\/p>\n\n\n\n<p>Jamstack apps don\u2019t rely on web servers. So how are they able to behave as if they do?<\/p>\n\n\n\n<p>APIs are the sweet dynamics that sweeten a Jamstack application to be more than a \u201cstatic site.\u201d<strong>&nbsp;<\/strong>Web developers can use relatively simple HTTP calls to endpoints maintained and scaled by other providers, thereby abstracting away all of their server-side concerns.<\/p>\n\n\n\n<p>When developers don\u2019t need to worry about all the meticulous work that goes into building a reliable and performant backend, they can instead focus on their front-end user experience. They can make a static site remarkably dynamic with extended functionality. Developers are able to take full advantage of best-in-class API solutions offered by the industry.<\/p>\n\n\n\n<p>API services used in Jamstack applications might include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>E-Commerce APIs (e.g.\u00a0<a href=\"https:\/\/snipcart.com\/blog\/jamstack?ref=blog.readme.com\">Snipcart<\/a>)<\/li>\n\n\n\n<li>Content Serving APIs (e.g.\u00a0<a href=\"https:\/\/www.contentful.com\/r\/knowledgebase\/jamstack-cms\/?ref=blog.readme.com\">Contentful<\/a>)<\/li>\n\n\n\n<li>Search functionality via third-party services (e.g.\u00a0<a href=\"https:\/\/www.algolia.com\/?ref=blog.readme.com\">Algolia<\/a>)<\/li>\n\n\n\n<li>Custom serverless functions<\/li>\n\n\n\n<li>Custom data stores and data queries<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"developer-experience-will-your-api-jam\">Developer Experience: Will Your API Jam?<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/will-it-blend-api-dx-1.jpg\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Your API Developer Experience: <em>Will it JAM?<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p><br>Developers building their site with Jamstack naturally take on a microservices approach to building out their server-side functionality and are eager to make use of existing APIs that fulfill their requirements. In the early prototyping and exploration phases, the search for suitable APIs includes sampling third-party API services.<\/p>\n\n\n\n<p>To get developers to adopt and enjoy&nbsp;<em>your<\/em>&nbsp;API, you can\u2019t just tell them about features, you need to show them you care about their experience with your documentation. In the case of a bad or missing documentation, the crowd will inevitably seek alternatives that offer a better experience. ReadMe exists to enables everyone a chance to offer best-in-class user experience with their API documentation.<\/p>\n\n\n\n<p>If you\u2019re looking for guidance, ReadMe\u2019s own Andy Trattner sat down with us in April to write up his&nbsp;<a href=\"https:\/\/blog.readme.com\/4-key-questions\/\">4 Steps to Implementing Stellar Documentation<\/a>, while API Engineer Jon Ursenbach told us all about&nbsp;<a href=\"https:\/\/blog.readme.com\/how-to-make-your-api-more-enjoyable-to-use\/\">How to Make Your API More Enjoyable to Use<\/a>. Documentation owners will find these articles help them to feel more confident they\u2019ve properly considered their developer experience.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"more-about-the-jamstack\">More About the Jamstack<\/h2>\n\n\n\n<p><br>Hungry for more Jamstack knowledge? Here are some sweet resources to help you get started:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/automata\/awesome-jamstack?ref=blog.readme.com\">awesome-jamstack<\/a>\u00a0\u2013 An extensive list of awesome Jamstack resources and APIs, curated on GitHub<\/li>\n\n\n\n<li><a href=\"https:\/\/jamstack.org\/?ref=blog.readme.com\">jamstack.org<\/a>\u00a0\u2013 Netlify\u2019s Jamstack resource site<\/li>\n\n\n\n<li><a href=\"https:\/\/jamstack.training\/?ref=blog.readme.com\">jamstack.training<\/a>\u00a0\u2013 Tamas Piros\u2019 free course catalog (itself a Jamstack app!)<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Celebration-Confetti.psd_small.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Owlbert, the victorious<\/figcaption><\/figure>\n<\/div>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u201cJavaScript, APIs, Markup: JAMStack! A new phrase for some combination of single-page-application deployed in a serverless environment plus CDN.\u201d<\/em>&nbsp;\u2014Owlbert, guess #99 (correct)<\/p>\n<\/blockquote>\n\n\n\n<p><strong>Fun Fact<\/strong>: in this episode of the ReadMe blog, all of Owlbert\u2019s answers are actually responses from ReadMe employees to our internal Slack poll: \u201cWhat is the Jamstack?\u201d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"keep-on-jammin\">Keep On Jammin&#8217;<\/h2>\n\n\n\n<p><br>The Jamstack development phenomenon shows little sign of slowing down and now you know why: fast, scalable static architecture made dynamic thanks to APIs. With an easy developer experience free of server-side concerns, we\u2019ll continue to see its popularity rise as the age of cloud computing continues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is the Jamstack? \u201cMaybe like a Jam Session. \u2026 I&#8217;m picturing a group of people jamming out (musically) in a garage or warehouse space.\u201d&nbsp;\u2014Owlbert, guess #5 The&nbsp;Jamstack&nbsp;(originally stylized&nbsp;JAMstack) is a way of building web applications that extends the benefits of \u201cstatic sites\u201d, emphasizing their true dynamic potential with APIs. Originally introduced as a concept [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[22],"tags":[],"ppma_author":[2],"class_list":["post-2997","post","type-post","status-publish","format-standard","hentry","category-api-tips"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jamstack for Static Sites, Dynamioc APIs, and Better DX<\/title>\n<meta name=\"description\" content=\"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jamstack for Static Sites, Dynamioc APIs, and Better DX\" \/>\n<meta property=\"og:description\" content=\"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx\" \/>\n<meta property=\"og:site_name\" content=\"ReadMe: Resource Library\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-08T02:12:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-08T02:12:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png\" \/>\n<meta name=\"author\" content=\"readmedev\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"readmedev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx\",\"url\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx\",\"name\":\"Jamstack for Static Sites, Dynamioc APIs, and Better DX\",\"isPartOf\":{\"@id\":\"https:\/\/readme.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage\"},\"image\":{\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png\",\"datePublished\":\"2025-01-08T02:12:20+00:00\",\"dateModified\":\"2025-01-08T02:12:21+00:00\",\"author\":{\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/cf2f75bdb1d0398bebccfae9675a6418\"},\"description\":\"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.\",\"breadcrumb\":{\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage\",\"url\":\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png\",\"contentUrl\":\"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/readme.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jamstack Attack! Static Sites, Dynamic APIs, and a Killer DX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/readme.com\/resources\/#website\",\"url\":\"https:\/\/readme.com\/resources\/\",\"name\":\"ReadMe: Resource Library\",\"description\":\"Making API documentation better for everyone\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/readme.com\/resources\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/cf2f75bdb1d0398bebccfae9675a6418\",\"name\":\"readmedev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/8b12c5a3a20906722873c146dee0bd9b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d5d17a7fdf698ca54de2619cb66e3b1608c9056ad901d2f23e55a4ec6d57a239?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d5d17a7fdf698ca54de2619cb66e3b1608c9056ad901d2f23e55a4ec6d57a239?s=96&d=mm&r=g\",\"caption\":\"readmedev\"},\"sameAs\":[\"https:\/\/readme.com\/resources\"],\"url\":\"https:\/\/readme.com\/resources\/author\/readmedev\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jamstack for Static Sites, Dynamioc APIs, and Better DX","description":"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.","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:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx","og_locale":"en_US","og_type":"article","og_title":"Jamstack for Static Sites, Dynamioc APIs, and Better DX","og_description":"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.","og_url":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx","og_site_name":"ReadMe: Resource Library","article_published_time":"2025-01-08T02:12:20+00:00","article_modified_time":"2025-01-08T02:12:21+00:00","og_image":[{"url":"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png"}],"author":"readmedev","twitter_card":"summary_large_image","twitter_misc":{"Written by":"readmedev","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx","url":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx","name":"Jamstack for Static Sites, Dynamioc APIs, and Better DX","isPartOf":{"@id":"https:\/\/readme.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage"},"image":{"@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage"},"thumbnailUrl":"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png","datePublished":"2025-01-08T02:12:20+00:00","dateModified":"2025-01-08T02:12:21+00:00","author":{"@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/cf2f75bdb1d0398bebccfae9675a6418"},"description":"The Jamstack developer experience: scalable, performant, secure, and easy to implement web appications.","breadcrumb":{"@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#primaryimage","url":"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png","contentUrl":"https:\/\/blog.readme.com\/content\/images\/2020\/05\/Google-Trend-of-JAMstack.png"},{"@type":"BreadcrumbList","@id":"https:\/\/readme.com\/resources\/jamstack-static-sites-dynamic-apis-killer-dx#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/readme.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Jamstack Attack! Static Sites, Dynamic APIs, and a Killer DX"}]},{"@type":"WebSite","@id":"https:\/\/readme.com\/resources\/#website","url":"https:\/\/readme.com\/resources\/","name":"ReadMe: Resource Library","description":"Making API documentation better for everyone","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/readme.com\/resources\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/cf2f75bdb1d0398bebccfae9675a6418","name":"readmedev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/8b12c5a3a20906722873c146dee0bd9b","url":"https:\/\/secure.gravatar.com\/avatar\/d5d17a7fdf698ca54de2619cb66e3b1608c9056ad901d2f23e55a4ec6d57a239?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d5d17a7fdf698ca54de2619cb66e3b1608c9056ad901d2f23e55a4ec6d57a239?s=96&d=mm&r=g","caption":"readmedev"},"sameAs":["https:\/\/readme.com\/resources"],"url":"https:\/\/readme.com\/resources\/author\/readmedev"}]}},"authors":[{"term_id":2,"user_id":1,"is_guest":0,"slug":"readmedev","display_name":"readmedev","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f827600cb59eb7b39ae598802b917c6e5fba7a7e93daa9bd5ef3a7ef04af8d9f?s=96&d=mm&r=g","first_name":"Ryan","last_name":"parker","position":"","slogan":"","description":""}],"_links":{"self":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/comments?post=2997"}],"version-history":[{"count":0,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2997\/revisions"}],"wp:attachment":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/media?parent=2997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/categories?post=2997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/tags?post=2997"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/ppma_author?post=2997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}