{"id":8989,"date":"2026-05-12T17:02:31","date_gmt":"2026-05-12T21:02:31","guid":{"rendered":"https:\/\/chadossman.com\/blog\/?p=8989"},"modified":"2026-05-12T17:07:11","modified_gmt":"2026-05-12T21:07:11","slug":"a-non-developers-guide-to-flexible-flash-swf-embeds","status":"publish","type":"post","link":"https:\/\/chadossman.com\/blog\/a-non-developers-guide-to-flexible-flash-swf-embeds\/","title":{"rendered":"A non-developer&#8217;s guide to flexible Flash SWF embeds"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Here&#8217;s a simple solution to an issue that&#8217;s been bedeviling me for some time: how to embed ancient Flash .SWF files into a contemporary responsive website. If you want to skip the preamble, you can jump directly to the <a href=\"#steps\">walkthrough<\/a>, or to the <a href=\"#demo\" data-type=\"internal\" data-id=\"#demo\">demo page &amp; CodePen<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I almost never blog about web design matters, despite it being my career. But I thought this was worth sharing, even though the potential audience is extremely small &#8212; possibly me and only me! In the earliest phase of my career, I specialized in Flash animation and design. So I have several old .SWF files and\/or entire Flash sites I would like to present on my <a href=\"https:\/\/chadossman.com\/portfolio\/\">portfolio site<\/a>, or at the very least, temporarily resurrect so I can take screenshots or screen recordings. But the problems, oh the problems! Where to begin?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Problem With Flash<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Problem 1 of 3: ding-dong, Flash is long, long gone<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">My archived Flash files are decades old, and the web has long since moved on. Flash changed hands from Macromedia to Adobe in 2005, who retired the browser plug-in in late 2020, followed to the grave by the authoring app Animate (n\u00e9e Flash) in late 2025.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luckily, the open source <a href=\"https:\/\/ruffle.rs\">Flash Player emulator Ruffle.js<\/a> can display SWF files in almost any modern browser. The solution below includes the simplest Ruffle.js implementation that a non-developer such as myself can understand.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Problem 2 of 3: What about phones?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Famously, Apple consciously opted not to support Flash from the advent of the iPhone. Many cite Steve Jobs&#8217; open letter <a href=\"https:\/\/www.webdesignmuseum.org\/web-design-history\/steve-jobs-and-his-thoughts-on-flash-2010\">Thoughts on Flash<\/a> with steering popular opinion on the technology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So to point out the obvious, Flash predates the responsive web era, and had been typically intended to be displayed at fixed sizes on desktop monitors. So even with Ruffle.js, how to present .SWF files in a contemporary responsive website, that ought to support any screen size? Below, I&#8217;ll share the simplest, leanest code that worked for me.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Problem 3 of 3: Modern browsers don&#8217;t like autoplaying media with audio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For users, this is a feature, not a bug. But modern browsers do present an interesting roadblock for legacy media that was originally designed to autoplay with video. Even with Ruffle.js, SWF playback may simply halt when it reaches a keyframe with audio. I&#8217;ll attempt to cover this below.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"steps\">The Solution<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"steps\">Step 1 of 3: Ruffle.js<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">At the bottom of your html page, above the closing <code>&lt;\/body&gt;<\/code> tag, paste the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script src=\"https:\/\/unpkg.com\/@ruffle-rs\/ruffle\"&gt;&lt;\/script&gt;\n&lt;script&gt;\n\twindow.RufflePlayer = window.RufflePlayer || {};\n\twindow.RufflePlayer.config = {\n\t\t\"warnOnUnsupportedContent\": false,\n\t\t\"autoplay\": \"on\",\n\t\t\"unmuteOverlay\": \"hidden\"\n\t};\n&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s a <em>lot<\/em> more to implementing Ruffle.js than this, but as a reminder, I&#8217;m going for simplicity here. This code uses the recommended content delivery network, so you don&#8217;t even need to worry about hosting any .JS files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important note: the above will automatically play all .SWF file(s) on the page, which usually works for me bu may or may not be what you want. Modern web browsers will mute any audio (and possibly even halt SWF playback) unless the user taps or clicks directly on the SWF embed. This is not a problem if your SWF file has a built-in &#8220;play&#8221; button. But if not, you may wish to omit the following line:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"autoplay\": \"on\",<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230;in which case Ruffle.js should automatically overlay a large, ugly triangular &#8220;play&#8221; button of its own. As a last resort, if you still have Adobe Animate and your original .FLA files, consider adding a &#8220;play&#8221; button of your own design at the beginning of your movie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 of 3: The HTML<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Perhaps you&#8217;re familiar with the old traditional method of embedding SWF files: a tangled mess of <code>&lt;object&gt;<\/code> and <code>&lt;embed&gt;<\/code> tags, with multiple <code>&lt;param&gt;<\/code> lines, support for Internet Explorer, and on top of all that, you may have also had to use <a href=\"https:\/\/github.com\/swfobject\/swfobject\">SWFObject<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m here to tell you to let all that go. Just forget it all. Feels good, right? This is the least amount of code I was able to get away with, for a hypothetical file originally authored at 640&#215;480:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;object width=\"100%\" height=\"100%\"&gt;\n\t&lt;!-- original dimensions: 640x480 --&gt;\n\t&lt;param name=\"movie\" value=\"file.swf\"&gt;\n&lt;\/object&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Note that I&#8217;ve included the dimensions in a comment, for posterity. Width and height are now both set to &#8220;100%&#8221; in the <code>&lt;object&gt;<\/code> tag. (I tried using CSS for this, but it didn&#8217;t seem to work.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wrap the whole thing in a container <code>&lt;div&gt;<\/code>, with a class name. In this case, 640&#215;480 has the aspect ratio of 4\/3, so it made sense to create a class I can reuse for any other Flash files that may share the same aspect ratio.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;div class=\"embed-swf-4-3\"&gt;\n\t&lt;object width=\"100%\" height=\"100%\"&gt;\n\t\t&lt;!-- original dimensions: 640x480 --&gt;\n\t\t&lt;param name=\"movie\" value=\"file.swf\"&gt;\n\t&lt;\/object&gt;\n&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 of 3: The CSS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Did I mention I&#8217;m going for stupid simplicity? This is the full extent of the CSS you will need:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;style&gt;\n\t.embed-swf-4-3 {\n\t\taspect-ratio: 4\/3;\n\t}\n&lt;\/style&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For SWF files with irregular dimensions that don&#8217;t conform to common aspect ratios, unfortunately you will need to create unique classes. Here&#8217;s an example, for a hypothetical 591&#215;387 SWF file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;style&gt;\n\t.embed-swf-591x387 {\n\t\taspect-ratio: calc(591\/387);\n\t}\n&lt;\/style&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">I suppose you could use inline styles for special cases like the above, but I prefer to keep all my CSS separate and in one place, no matter how simple.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important note: the above code will display .SWF files to the maximum width of the viewport or container. If you want to cap the width, see below.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optional Niceties:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The above is the least you need to get going. But for purposes of my portfolio website, I wanted to add some niceties. Here&#8217;s an example of how you can apply a few possible enhancements, including <code>border-radius<\/code>, <code>figcaption<\/code>, <code>max-width<\/code>, and an inset <code>box-shadow<\/code>, for a hypothetical 640&#215;360 .SWF file, which works out to a 16:9 aspect ratio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The HTML:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;figure class=\"figure-swf-16-9\"&gt;\n\t&lt;div&gt;\n\t\t&lt;object width=\"100%\" height=\"100%\"&gt;\n\t\t\t&lt;param name=\"movie\" value=\"file.swf\"&gt;\n\t\t&lt;\/object&gt;\n\t&lt;\/div&gt;\n\t&lt;figcaption&gt;This example demonstrates some possible enhancements&lt;\/figcaption&gt;\n&lt;\/figure&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The CSS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;style&gt;\n\t.figure-swf-16-9 {\n\t\tposition: relative;\n\t\tmargin: 0;\n\t\tmax-width: 640px;\n\t\tdiv {\n\t\t\tborder-radius: 8px;\n\t\t\toverflow: hidden;\n\t\t\taspect-ratio: 16\/9;\n\t\t\tbox-shadow: 0 4px 8px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tdiv::after {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tborder-radius: 8px;\n\t\t\taspect-ratio: 16\/9;\n\t\t\twidth: 100%;\n\t\t\tcontent: \"\";\n\t\t\tbox-shadow: inset 0 0 0 4px rgba(0,0,0,.25);\n\t\t}\n\t}\n&lt;\/style&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"demo\">Here&#8217;s a demo page:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/chadossman.com\/public\/swf-responsive\/\">Demo Page<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">And here&#8217;s a <a href=\"https:\/\/codepen.io\/cossman\/pen\/emBZXaL\">CodePen<\/a> (but note that the sample .SWF files will not load for security reasons):<\/p>\n\n\n\n<p class=\"codepen\" data-height=\"300\" data-pen-title=\"Flexible SWF Embed\" data-default-tab=\"html,result\" data-slug-hash=\"emBZXaL\" data-user=\"cossman\" style=\"height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;\">\n  <span>See the Pen <a href=\"https:\/\/codepen.io\/cossman\/pen\/emBZXaL\">\n  Flexible SWF Embed<\/a> by Chad Ossman (<a href=\"https:\/\/codepen.io\/cossman\">@cossman<\/a>)\n  on <a href=\"https:\/\/codepen.io\">CodePen<\/a>.<\/span>\n<\/p>\n<script async src=\"https:\/\/public.codepenassets.com\/embed\/index.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">Hopefully all this will be of help to at least one other person out there. Please let me know if you happen to have any corrections or suggestions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s a simple solution to an issue that&#8217;s been bedeviling me for some time: how to embed ancient Flash .SWF files into a contemporary responsive website. If you want to skip the preamble, you can jump directly to the walkthrough, or to the demo page &amp; CodePen. I almost never blog about web design matters, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8990,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[2256,2253,2255,2257,2254,1609],"class_list":["post-8989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-design","tag-css","tag-flash","tag-html","tag-javascript","tag-responsive-design","tag-web-design"],"jetpack_featured_media_url":"https:\/\/chadossman.com\/blog\/wp-content\/uploads\/2026\/05\/swf-responsive.jpg","jetpack_shortlink":"https:\/\/wp.me\/pa9lhB-2kZ","jetpack-related-posts":[{"id":911,"url":"https:\/\/chadossman.com\/blog\/get-a-real-job-or-thoughts-on-pseudo\/","url_meta":{"origin":8989,"position":0},"title":"Get a Real Job! or, Thoughts on Pseudo.com","author":"Chad Ossman","date":"July 7, 2008","format":false,"excerpt":"Bringing new meaning to the phrase \"get a real job,\" I now learn that my last full-time gig was for a \"fake company.\" Years after the fact of its demise, Pseudo.com founder Josh Harris has pronounced to Boing Boing that Pseudo Programs Inc. was in fact a massive performance art\u2026","rel":"","context":"In &quot;Personal&quot;","block_context":{"text":"Personal","link":"https:\/\/chadossman.com\/blog\/category\/personal\/"},"img":{"alt_text":"Pseudo","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2008\/07\/pseudo-feature.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2008\/07\/pseudo-feature.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2008\/07\/pseudo-feature.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2008\/07\/pseudo-feature.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2008\/07\/pseudo-feature.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":591,"url":"https:\/\/chadossman.com\/blog\/the-dork-report-for-january-27-2007\/","url_meta":{"origin":8989,"position":1},"title":"The Dork Report for January 27, 2007","author":"Chad Ossman","date":"January 27, 2007","format":false,"excerpt":"Horning in on our spottily-updated territory, Mean Teacher gets her Dork on and pens a proper concert review (but not before paying the price). That said, no, you're never too old. Although it's probably best The Peppers don't rock out with their socks out anymore... do they? Peter Gabriel's gone\u2026","rel":"","context":"In &quot;The Dork Report&quot;","block_context":{"text":"The Dork Report","link":"https:\/\/chadossman.com\/blog\/category\/dork-report\/"},"img":{"alt_text":"The Dork Report","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":410,"url":"https:\/\/chadossman.com\/blog\/the-dork-report-for-september-9-2006\/","url_meta":{"origin":8989,"position":2},"title":"The Dork Report for September 9, 2006","author":"Chad Ossman","date":"September 9, 2006","format":false,"excerpt":"An Ultimately negative (but insightfully so) piece on Watchmen, gleaned from its Wikipedia entry: \"Fighting Evil, Quoting Nietzsche: Did the comic book really need to grow up?\" by Tom Shone. Quinn [no longer online: simonhaertel.de]: a really fun and really free Tetris falling blocks game for the Mac. Serve with\u2026","rel":"","context":"In &quot;The Dork Report&quot;","block_context":{"text":"The Dork Report","link":"https:\/\/chadossman.com\/blog\/category\/dork-report\/"},"img":{"alt_text":"The Dork Report","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":300,"url":"https:\/\/chadossman.com\/blog\/the-dork-report-for-july-6-2006\/","url_meta":{"origin":8989,"position":3},"title":"The Dork Report for July 6, 2006","author":"Chad Ossman","date":"July 6, 2006","format":false,"excerpt":"The 10 most beautiful Mac OS X apps (no longer online: phillryu.com\/2006\/07\/03\/the-top-ten-most-beautiful-os-x-apps), only one of which I use (Transmit). (spotted on Kottke.org) Google must be delighted; they\u2019ve officially become a verb. (guest submission from Proper Noun Andrea) Michael Brook\u2019s new album RockPaperScissors is due July 18: Watch the Making Of.\u2026","rel":"","context":"In &quot;The Dork Report&quot;","block_context":{"text":"The Dork Report","link":"https:\/\/chadossman.com\/blog\/category\/dork-report\/"},"img":{"alt_text":"The Dork Report","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":131,"url":"https:\/\/chadossman.com\/blog\/daily-dork-report-for-january-25-2006\/","url_meta":{"origin":8989,"position":4},"title":"Daily Dork Report for January 25, 2006","author":"Chad Ossman","date":"January 25, 2006","format":false,"excerpt":"In interactive design news, Microsoft announces a \"Flash Killer\"? Please. Adobe tried it, failed, and resorted to buying their only competetor Macromedia. Can somebody please explain to me how that's legal? So I suppose one way to look at things is that a resumption of competition is good news. Yo,\u2026","rel":"","context":"In &quot;The Dork Report&quot;","block_context":{"text":"The Dork Report","link":"https:\/\/chadossman.com\/blog\/category\/dork-report\/"},"img":{"alt_text":"The Dork Report","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":133,"url":"https:\/\/chadossman.com\/blog\/daily-dork-report-for-february-2-2006\/","url_meta":{"origin":8989,"position":5},"title":"Daily Dork Report for February 2, 2006","author":"Chad Ossman","date":"February 2, 2006","format":false,"excerpt":"In Interactive Design news, there's the possibility that Flash Player (and other plug-ins) won't work on new Macs. This is a big deal. The Rumor Mongers have dug up some more dirty dirt on iPotential iProducts (no longer online: hrmpf.com\/wordpress\/48\/new-apple-patents). Educating our representatives about digital music sounds like a good\u2026","rel":"","context":"In &quot;The Dork Report&quot;","block_context":{"text":"The Dork Report","link":"https:\/\/chadossman.com\/blog\/category\/dork-report\/"},"img":{"alt_text":"The Dork Report","src":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/chadossman.com\/blog\/wp-content\/uploads\/2012\/08\/dork-report.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/posts\/8989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/comments?post=8989"}],"version-history":[{"count":3,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/posts\/8989\/revisions"}],"predecessor-version":[{"id":8996,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/posts\/8989\/revisions\/8996"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/media\/8990"}],"wp:attachment":[{"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/media?parent=8989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/categories?post=8989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chadossman.com\/blog\/wp-json\/wp\/v2\/tags?post=8989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}