<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Ionic Blog</provider_name><provider_url>https://ionic.io/blog</provider_url><author_name>Max Lynch</author_name><author_url>https://ionic.io/blog/author/max</author_url><title>The Web is too Low-Level</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="uz8GgUUu1U"&gt;&lt;a href="https://ionic.io/blog/the-web-is-too-low-level"&gt;The Web is too Low-Level&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://ionic.io/blog/the-web-is-too-low-level/embed#?secret=uz8GgUUu1U" width="600" height="338" title="&#x201C;The Web is too Low-Level&#x201D; &#x2014; Ionic Blog" data-secret="uz8GgUUu1U" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://ionic.io/blog/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><description>One of the reasons we built Ionic was to provide the missing &#x201C;Web SDK&#x201D; for mobile apps built in the browser. Before Ionic, it was just too hard to build mobile apps that looked and felt native in the browser. There was too much black magic needed to make an app perform well, and too [&hellip;]</description></oembed>
