{ "items": [ { "type": [ "h-entry" ], "properties": { "name": [ "Six Web Performance Technologies to Watch in 2020" ], "summary": [ "Don't bet on 5G and HTTP/3 to make things faster, there are six technologies that I believe will have a bigger impact on web performance in 2020." ], "content": [ { "html": "
Reading the technical press you would be forgiven for thinking that 2020 is going to be a great year for web performance. Repeatedly touted are the blazing fast speeds we will achieve with 5G, the fundamental improvements that HTTP/3 will bring and how new devices will be faster than premium laptops.
\nI fear this outlook could make us lackadaisical about performance. 5G isn\u2019t expected to reach even 20% of subscribers by 2025, HTTP/3 doesn\u2019t change the speed of light nor the size of our JavaScript bundles, and ultra-fast devices will only reach the hands of the affluent few. In this article I'll look at some of the technologies which I believe could have a significant impact on web performance in 2020.
\nYou can jump straight ahead to the sections on:
\n\n\n\nTl;dr: there will be no quick fixes. If we want a fast web in 2020 we have to take action now.
\n
5G will deploy slowly and will never replace 4G, that\u2019s not the point of it. I believe we will see better traction with 5G home broadband than mobile connections. Not least because handling multiple gigabits per second of data will extract more juice from your battery than the technology of 2020 allows.
\nHTTP/3 will hopefully fix the flawed implementations of stream prioritisation in HTTP/2. The implementation of the protocol is fundamentally different from H/2 (and H/1.x for that matter) but it still works within the same constraints. It will not rely on TCP\u2019s implementation of congestion control - but we do still control, so it will be handled at the application layer instead. H/2 was hailed as a breakthrough for performance over H/1, until it was widely launched. For many sites it made little difference, for some it made a positive improvement and for some it made things worse. H/3 will likely show a similar outcome, with the actual gains defined by the architecture of individual sites.
\nBoth of these technologies, 5G and H/3, sit at the network level - how the pipes are built and how to best get information across them. But in 2019 JavaScript has the single biggest impact on user experience. Shipping a 1MB JS application bundle to a mid-range Android phone 500ms faster will do little to help the time it takes to process the code. I say mid-range Android phone because that is the median device that web users have, Apple\u2019s market share in terms of 2019 Q1 sales in the US is 39%, with Samsung at 28%, while the rest is a range of Android devices which sell for between $500 and $50 dollars.
\n\nWe know that the average American changes their phone every 32 months and worldwide the combined market share of premium brands Apple and Samsung is just 33%. The majority of users world-wide are on low- to mid-range Android phones, these consumers are far more likely to use a native app vs. the mobile web with perceived performance and data usage limits being the primary factors. The web is an open and democratic place, when people are forced to use only native apps they have a limited window on the web experience and the knowledge available therein.
\n\nThere has been a fundamental shift over the past half-decade on the web: from thick servers and thin clients to thin servers and thick clients. The inexorable rise of frameworks such as Angular, React, Vue and their many cousins has been led by an assumption that managing state in the browser is quicker than a request to a server. This assumption, I can only assume, is made by developers who have flagship mobile devices or primarily work on desktop devices. We now find ourselves in a position where every website might bring with it a whole application framework, perhaps with hacks like server-side rendering and client-side rehydration to appease SEO crawlers. While this trend is unlikely to change course in 2020, we may see better web platform features to account for it.
\nThere are a few exciting technologies which I think will be a positive change for web performance in 2020:
\nThe JAM (JavaScript APIs Markup) stack is an architecture for delivering fast sites, using static site generators. SSGs such as Jekyll, Hugo and 11ty allow for a pleasant developer experience and rapid iteration, but compile to HTML - the native language of the web. These generators are currently widely used for personal blogs or small company sites due to their small footprint. Moves towards headless CMS solutions, client-side payment APIs and cloud deployment could make SSGs viable for anything from news websites to ecommerce sites, effectively removing server processing time as a critical factor in performance and simplifying the process of deployment.
\nNetlify has emerged as the market leader in workflow for the JAMstack. Netlify manages the whole workflow from development through to CDN deployment and augments the static site with a number of dynamic features. These features, such as identity management, forms and edge functions, broaden the scope of potential for JAMstack. There are also some great developer-friendly features such as deploying branches to unique URLs for testing, so there is no more need for a staging network. While Netlify is the clear leader in this space in 2019, I expect multiple solutions to appear in 2020 and build a competitive marketplace for enterprise JAMstack deployments. This has the potential to significantly erode the Wordpress marketplace, which currently accounts for 34% of the web!
\nWho to follow: @PhilHawksworth & @shortdiv.
\nWASM has come a long way in the past year and 2020 might see broader adoption. WASM compiles in-browser 20 times faster than JavaScript, and WASM scripts will shortly be importable as modules into JS projects. The exciting possibility here is that the most processor intensive modules of popular frameworks, such as React\u2019s Virtual DOM, can be re-written in a performant language such as Rust and compiled into WASM. In this example a single React release could raise the tide of web performance for all React-based websites. Until then, WASM provides a method to implement compute-intensive tasks in a language that performs much better than JavaScript (for applicable tasks).
\nWho to follow: @PatrickHamann & @_JayPhelps.
\nCode executing at the CDN level allows us to offload processing from both client and server into the CDN platform. An existing implementation of WASM (or at least similar) is available on Fastly\u2019s edge compute platform. All major CDNs have now launched some form of edge compute service (see AWS' Lambda, CloudFlare Workers, Akamai EdgeWorkers), interestingly all are built totally differently! Compute at the edge allows us to offload logic from both client and server, moving legacy server logic closer to the user, and intensive logic away to more controlled compute resources. Great applications of this are personalisation and image manipulation, both are tough to implement on the client but work well in server environments.
\nAs the saying goes: \"if you can't measure it, you can't manage it\". 2019 has seen some significant improvements in observability: we have been moving away from purely objective measures (such as page load time) for a while now but this year we are seeing more visibility into how browsers process and render content. Metrics such as Cumulative Layout Shift, Total Blocking Time and Largest Contentful Paint aim to get closer to user experience measures. These simplify the process of measuring speed and put less dependence on developers to instrument their applications. HTTP Archive and Chome Real User Experience report (CrUX) both provide a great comparative database of performance statistics, and Lighthouse CI provides an integration point to take all of this data and add good performance testing to build processes.
\nGoogle has proposed a \"slow\" badge in search results for websites. The stated goal is noble: \"moving towards a faster web\", but time and time again we have seen that the 'performance police' approach fails to affect meaningful change. Who knows what the workaround techniques will be: loading screens like 1999, screenshots rendered while the page loads in the background, UA sniffing to deliver a faster experience to googlebot.
\n\nAs a corollary to that statement: performance metrics for the slowest one-third of traffic saw improvements of up to 20% when Google included page speed as a ranking factor in mobile search results. So it seems that imposing these perceived penalties does work, perhaps because technical SEO gets more budget than web performance?
\n\n\nFor the slowest one-third of traffic, we saw user-centric performance metrics improve by 15% to 20% in 2018. As a comparison, no improvement was seen in 2017.
\n
This approach of stick vs. carrot is a bit of a poke in the eye, especially considering that a huge hole in performance observability comes from Google Analytics. GA is the most widely used third-party tag on the planet, collecting data from the majority of the sites you visit around the web. GA provides 'Site Speed' reports, which should be a good thing, yet out of the box GA only supports the most basic of legacy performance measures. These are randomly sampled from 1% of pageviews with no ability to correlate performance with business outcomes. Worse still, the only aggregate statistic available is the arithmetic mean, which is known to be nearly useless in web performance measures.
\n\nThere is still a long way to go to improve observability. As an industry we could instantly improve observability for at least thirty million websites by simply improving the default performance data presented in Google Analytics.
\nIt is critical to measure site speed using a Real User Measurement solution, otherwise you have zero visibility of how your users perceive the performance of your application (or worse, metrics that point you in the wrong direction). For the most simple setup, go for SpeedCurve Lux. For the most flexibility and an enterprise solution, go for Akamai mPulse. If you already have an Application Performance Measurement (APM) solution they may have a plugin to measure real user performance, such as Dynatrace UEM and New Relic Browser. Whatever solution you choose, make sure that you can measure what is important to your users and your product, and correlate speed with business success.
\nI can only hope that the web will get faster as metrics improve, RUM becomes more prevalent and performance statistics become part of executive reports. Slow sites cost money, and observability helps us to allocate funds to improve performance.
\nWho to follow: @anniesullie & @eanakashima.
\nA lot of improvements are coming from browsers like Chrome. It has offered Data Saver mode since 2013, which has very high opt-in rates for low-end devices. This mode in most cases presents a hint to web servers to deliver a lighter page (which could be handled at the edge to deliver a fast, light experience). Chrome also released the loading
attribute in 2019 - a hint as to the loading priority of resources. Combining these two, Chrome will by default lazy load offscreen images for users on poor connection or if data saver is enabled. This simple change to the web platform should have a significant impact on web performance, without the intervention of web developers. While this may feel intrusive, browsers have long enforced certain policies for reasons of privacy. Adding performance as a signal in these decisions should mean a more equitable web for all users.
Here's hoping that these changes driven by the Chrome team are standardised and make it to other browsers. This simple change could have a drastic effect on user experiences for those on the worst network connections and those with limited or metered data connections.
\nWho to follow: @KatieHempenius & @AddyOsmani.
\nMuch of the slowness of the web comes from our attempts to monetise visitors. From advertising and tracking to personalisation and live chat, these technologies all get in the way of the user experience in order to generate revenue. The business model on the web is not as clear cut as it is on the high street or in the newsagent, and we are still struggling to reconcile the user expectation of a free and open web with the business requirement to generate revenue.
\nImproving monetisation through the web using built-in APIs such as the Payment Request API, Web Monetization API and even Brave Rewards should make it easier to monetize content without the need for intrusive third-party content. This change could see a drastic improvement in experience for the web users of 2020, especially on news and magazine websites.
\nPeople spend longer on fast websites, so this could be one of the elusive win-wins of web development.
\nWho to follow: @Coil & @Interledger.
\nDeliberately missing from these predictions are Google's AMP, Facebook Instant Articles, Service Workers, Web Workers, Progressive Web Apps, Web Virtual Reality and AI. I don't think that these technologies are critical for shifting the needle on the median person's web experience, for a range of political and technical reasons. The closest on the list is Progressive Web Apps, as they may be the key to closing the gap between the web and native apps. Samsung recently announced support for including PWAs in their US App Store, although it does require you to email them your URL and sign some additional licenses. Google has an odd workaround where you can ship your website as an app in the Play Store, but the process is far from straightforward. Apple, unsurprisingly, is steadfastly protecting its App Store revenue (which is greater than its revenue from device sales) by barely entertaining the idea, although Safari does support some of the critical features. Unfortunately I don't think we will see a market shift in this respect in 2020.
\nThere are, however, changes afoot which might mean a significant improvement to web UX in the EU. It looks like EU regulators have accepted that existing GDPR regulations have led to a web experience laden with oft-ignored (or ignorantly accepted) GDPR notices. These have become a blight on the web and do little to protect users - the average consent form takes 42 seconds to opt-out of non-essential cookies. If this consent management moves to the browser, a single native UI could be the only requirement for users to manage their consent, improving default security posture as well as the web experience. This is one of the options being considered for ePrivacy - a proposal for better regulations in the EU. At the speed of government though, I'm not sure we will see change formalised in 2020, let alone adopted and regulated.
\n\n\nThe cookie provision, which has resulted in an overload of consent requests for internet users, will be streamlined. The new rule will be more user-friendly, as browser settings will provide for an easy way to accept or refuse tracking cookies and other identifiers. The proposal also clarifies that no consent is needed for non-privacy-intrusive cookies improving internet experience (like to remember shopping cart history) or cookies used by a website to count the number of visitors.
\n
Explicit opt-out, or preferences managed in the browser, could dramatically improve the performance on many sites. Hello magazine is an example where over 11MB of content is loaded on the mobile first view, a significant amount of which is third-party. The opt-in to this is explicit: \"By browsing this site you are agreeing to this\", and the link to manage your preferences is inaccessible once you interact with the site.
\n\nIf you are looking at the future of web performance, the most important thing you can do is to make your experiences fast now. The future is not bringing any silver bullets, which means it is more important than ever to measure and optimise your users' experience.
\nHaha! Just got your webmention. Still nothing from Twitter. Do I need to manually configure that?
", "value": "Haha! Just got your webmention. Still nothing from Twitter. Do I need to manually configure that?", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Jamie Tanna | www.jvt.me" ], "summary": [ "Looks like something weird is happening: telegraph.p3k.io/webmention/131\u2026 says my bookmark from the other day is accepted Do you maybe only have replies being displayed? I've got likes of your posts not showing up, either" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/88e859b6d52ef4323506abedd8692d0fce07cccfee5d56a11639a1b82dd6edbc.jpg", "alt": "Jamie Tanna | www.jvt.me" } ], "content": [ { "html": "Looks like something weird is happening: telegraph.p3k.io/webmention/131\u2026 says my bookmark from the other day is accepted Do you maybe only have replies being displayed? I've got likes of your posts not showing up, either
", "value": "Looks like something weird is happening: telegraph.p3k.io/webmention/131\u2026 says my bookmark from the other day is accepted Do you maybe only have replies being displayed? I've got likes of your posts not showing up, either", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Terence Eden" ], "summary": [ "Hmm. I don't see any. Do I need to do something with Bridgy?" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/b8d32c25ef76ccd9104eafcac6796d9fe02296156dacf0a5e6171b61fad24ec5.jpg", "alt": "Terence Eden" } ], "content": [ { "html": "Hmm. I don't see any. Do I need to do something with Bridgy?
", "value": "Hmm. I don't see any. Do I need to do something with Bridgy?", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Beko Pharm" ], "summary": [ "Well, dunno about your bridge setup but sending to your endpoint worked for me so this part is fine \ud83d\udc4d > webmention.io/simonhearne.co\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/684cc44d1cb00ac6e8e4997b30a89240ebf40904d1afa29712998614f3b731f3.jpg", "alt": "Beko Pharm" } ], "content": [ { "html": "Well, dunno about your bridge setup but sending to your endpoint worked for me so this part is fine \ud83d\udc4d > webmention.io/simonhearne.co\u2026
", "value": "Well, dunno about your bridge setup but sending to your endpoint worked for me so this part is fine \ud83d\udc4d > webmention.io/simonhearne.co\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Simon Hearne" ], "summary": [ "Thanks for the pointers! I'm in a better place now but a little more work to do." ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/03b3826cec503910363c82042f891e633090b4dfb14beecd2728980b1bc14eaf.jpg", "alt": "Simon Hearne" } ], "content": [ { "html": "Thanks for the pointers! I'm in a better place now but a little more work to do.
", "value": "Thanks for the pointers! I'm in a better place now but a little more work to do.", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Simon Hearne" ], "summary": [ "I've written some thoughts about what the key #webperf technologies of 2020 could be. Spoiler alert: not 5G or HTTP/3. simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/03b3826cec503910363c82042f891e633090b4dfb14beecd2728980b1bc14eaf.jpg", "alt": "Simon Hearne" } ], "content": [ { "html": "I've written some thoughts about what the key #webperf technologies of 2020 could be. Spoiler alert: not 5G or HTTP/3. simonhearne.com/2019/2020-pred\u2026
", "value": "I've written some thoughts about what the key #webperf technologies of 2020 could be. Spoiler alert: not 5G or HTTP/3. simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Gabriel Lew" ], "summary": [ "simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/e100b7640fcc922cb7584bd739a7bc9adf001cd92d692532f2859145fafdb9b7.jpg", "alt": "Gabriel Lew" } ], "content": [ { "html": "simonhearne.com/2019/2020-pred\u2026
", "value": "simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Mario Vasquez" ], "summary": [ "simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/9aa3b97f74cd6f7444789fd15cc48ee2d0891ef2efe588359add97d6eb3981b5.png", "alt": "Mario Vasquez" } ], "content": [ { "html": "simonhearne.com/2019/2020-pred\u2026
", "value": "simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Christopher Goldberg" ], "summary": [ "Six Web Performance Technologies to Watch in 2020 bt @simonhearne simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/90887d20ea0ea5e961bdedbbf40a4f8976f17f9e2904a8a3e45c4f0fd8507538.png", "alt": "Christopher Goldberg" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020 bt @simonhearne simonhearne.com/2019/2020-pred\u2026
", "value": "Six Web Performance Technologies to Watch in 2020 bt @simonhearne simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Marielle Lange" ], "summary": [ "Six Web Performance Technologies to Watch in 2020 - simonhearne.com/2019/2020-pred\u2026 JAMstack, Web Assembly, Edge Compute, Observability, Browser Platform Improvements, Web Monetisation" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/44ec032b691d5f6532f5fd8d3a6f6df58c6cf2fb2065cc1a5e2219769fa304eb.png", "alt": "Marielle Lange" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020 - simonhearne.com/2019/2020-pred\u2026 JAMstack, Web Assembly, Edge Compute, Observability, Browser Platform Improvements, Web Monetisation
", "value": "Six Web Performance Technologies to Watch in 2020 - simonhearne.com/2019/2020-pred\u2026 JAMstack, Web Assembly, Edge Compute, Observability, Browser Platform Improvements, Web Monetisation", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "\u30a8\u30f3\u30d7\u30ec\ud83c\udfd4\ufe0f\u26c4\ufe0f\u5c71\u306b\u767b\u308a\u30a2\u30d7\u30ea\u3082\u4f5c\u308b\ud83c\udf3f\u90fd\u9053\u5e9c\u770c\u5b66\u7fd2\u30a2\u30d7\u30ea\u3042\u308b\u3088\ud83d\ude03" ], "summary": [ "\uff12\uff10\uff12\uff10\u5e74\u306b\u6ce8\u76ee\u3059\u3079\u304d\uff16\u3064\u306eweb\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c6\u30af\u30ce\u30ed\u30b8\u30fc simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/bdf239692476118583f69b69e996b9be45e07538a5555941ffde97d69bf510e0.jpg", "alt": "\u30a8\u30f3\u30d7\u30ec\ud83c\udfd4\ufe0f\u26c4\ufe0f\u5c71\u306b\u767b\u308a\u30a2\u30d7\u30ea\u3082\u4f5c\u308b\ud83c\udf3f\u90fd\u9053\u5e9c\u770c\u5b66\u7fd2\u30a2\u30d7\u30ea\u3042\u308b\u3088\ud83d\ude03" } ], "content": [ { "html": "\uff12\uff10\uff12\uff10\u5e74\u306b\u6ce8\u76ee\u3059\u3079\u304d\uff16\u3064\u306eweb\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c6\u30af\u30ce\u30ed\u30b8\u30fc simonhearne.com/2019/2020-pred\u2026
", "value": "\uff12\uff10\uff12\uff10\u5e74\u306b\u6ce8\u76ee\u3059\u3079\u304d\uff16\u3064\u306eweb\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c6\u30af\u30ce\u30ed\u30b8\u30fc simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Fatih Hayrio\u011flu" ], "summary": [ "2020'deki web performans\u0131 \u00fczerinde \u00f6nemli bir etkisi olabilecek teknolojilerin baz\u0131lar\u0131na. Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/166b7d0568c42ab788f9402df85f2de8a48f42ae63af7cff290fbe60aa243bcb.jpg", "alt": "Fatih Hayrio\u011flu" } ], "content": [ { "html": "2020'deki web performans\u0131 \u00fczerinde \u00f6nemli bir etkisi olabilecek teknolojilerin baz\u0131lar\u0131na. Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026
", "value": "2020'deki web performans\u0131 \u00fczerinde \u00f6nemli bir etkisi olabilecek teknolojilerin baz\u0131lar\u0131na. Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "\u0645\u0631\u0634\u062f \u0647\u0646\u062f\u0633\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a" ], "summary": [ "\u062a\u0642\u0646\u064a\u0627\u062a \u0633\u062a\u0633\u0627\u0639\u062f \u0639\u0644\u0649 \u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 #\u0627\u0644\u0648\u064a\u0628 \u0641\u064a 2020 #\u0647\u0646\u062f\u0633\u0629_\u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/045df7b76b49ddd3a11cec735e5e0210d707113d03b19343acbfb670807e653c.jpg", "alt": "\u0645\u0631\u0634\u062f \u0647\u0646\u062f\u0633\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a" } ], "content": [ { "html": "\u062a\u0642\u0646\u064a\u0627\u062a \u0633\u062a\u0633\u0627\u0639\u062f \u0639\u0644\u0649 \u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 #\u0627\u0644\u0648\u064a\u0628 \u0641\u064a 2020 #\u0647\u0646\u062f\u0633\u0629_\u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a simonhearne.com/2019/2020-pred\u2026
", "value": "\u062a\u0642\u0646\u064a\u0627\u062a \u0633\u062a\u0633\u0627\u0639\u062f \u0639\u0644\u0649 \u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 #\u0627\u0644\u0648\u064a\u0628 \u0641\u064a 2020 #\u0647\u0646\u062f\u0633\u0629_\u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "PerfReviews \u26a1\ufe0f" ], "summary": [ "Six Web Performance Technologies to Watch in 2020 \u2013 \u2066@simonhearne\u2069 #webperf simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/5413715e62cb9bb26a7d60f56d3c28b215fdfd1463222ffc352f50c61fd95b78.png", "alt": "PerfReviews \u26a1\ufe0f" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020 \u2013 \u2066@simonhearne\u2069 #webperf simonhearne.com/2019/2020-pred\u2026
", "value": "Six Web Performance Technologies to Watch in 2020 \u2013 \u2066@simonhearne\u2069 #webperf simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Refresh Detroit" ], "summary": [ "Six Web Performance Technologies to Watch in 2020 simonhearne.com/2019/2020-pred\u2026 #WebPerf" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/f7eb93c8cf62ab6c9d803e25b20e4fd3c36202423c92ea1aa9c58817602e8613.gif", "alt": "Refresh Detroit" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020 simonhearne.com/2019/2020-pred\u2026 #WebPerf
", "value": "Six Web Performance Technologies to Watch in 2020 simonhearne.com/2019/2020-pred\u2026 #WebPerf", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "gaslandev" ], "summary": [ "simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/5a21cf1165895af9bb1ac4be5497df4d78b5c33d9fa0499d35940399866614d5.jpg", "alt": "gaslandev" } ], "content": [ { "html": "simonhearne.com/2019/2020-pred\u2026
", "value": "simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Frontend Daily" ], "summary": [ "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/12210af1eda8f26cc550db1ef20594d147422f836cfaeb2dcd5635bb0b6991a1.jpg", "alt": "Frontend Daily" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026
", "value": "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Theo Nicolaou" ], "summary": [ "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026 #webdevgeekout" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/6d6fe7c10de8c533538e65a8d164457d97ea45b3ae11be68e8e7649836ae4a20.jpg", "alt": "Theo Nicolaou" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026 #webdevgeekout
", "value": "Six Web Performance Technologies to Watch in 2020: simonhearne.com/2019/2020-pred\u2026 #webdevgeekout", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "cyuuuuuuu" ], "summary": [ "simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/1647568711b7ba357e054b5ea7c8c954c89303e9f4e8c63dc680dd7a5c747b3c.jpg", "alt": "cyuuuuuuu" } ], "content": [ { "html": "simonhearne.com/2019/2020-pred\u2026
", "value": "simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Armando R" ], "summary": [ "Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/614fa8eaceda6f42095716110cc2391b6b885216f6ff2385d9acc9ce48b3bda0.jpg", "alt": "Armando R" } ], "content": [ { "html": "Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026
", "value": "Six Web Performance Technologies to Watch in 2020 \u2013 Simon Hearne simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Peter M. Lance" ], "summary": [ "#webdev simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/43b2bfc4e0578e7a18de0b26f0adbdf4ad5fc453c176128c674e5c31b924ee40.jpg", "alt": "Peter M. Lance" } ], "content": [ { "html": "#webdev simonhearne.com/2019/2020-pred\u2026
", "value": "#webdev simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Jon Henshaw" ], "summary": [ "Good read on web performance initiatives by @simonhearne simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/ffe56e04f2b3010ca692d568384e409d1da57fe8ec9f4c5e9d58cc47d2b4c659.jpg", "alt": "Jon Henshaw" } ], "content": [ { "html": "Good read on web performance initiatives by @simonhearne simonhearne.com/2019/2020-pred\u2026
", "value": "Good read on web performance initiatives by @simonhearne simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Dennis Schneider" ], "summary": [ "Great article! @simonhearne simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/0a2c0b60532b5d228df77ebe2ba26a2579961bb68cfdff8bb4bd00c61b4eb34e.jpg", "alt": "Dennis Schneider" } ], "content": [ { "html": "Great article! @simonhearne simonhearne.com/2019/2020-pred\u2026
", "value": "Great article! @simonhearne simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Beko Pharm" ], "summary": [ "Looks a lot better with #microformats @simonhearne \ud83d\udc4d Gotta work on the nesting tho. Any comment is listed as author of the article \ud83d\ude09 Check other examples how to format comments / cite. Also make sure that name or value of the h-card is not empty. URL and photo is optional. http:/\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/beko.famkos.net/b11530ba6f57e9bd28ba3cbad6942b1630396c6226bbf4288c5403cfb88e518a.jpg", "alt": "Beko Pharm" } ], "content": [ { "html": "Looks a lot better with #microformats @simonhearne \ud83d\udc4d Gotta work on the nesting tho. Any comment is listed as author of the article \ud83d\ude09 Check other examples how to format comments / cite. Also make sure that name or value of the h-card is not empty. URL and photo is optional. http:/\u2026
", "value": "Looks a lot better with #microformats @simonhearne \ud83d\udc4d Gotta work on the nesting tho. Any comment is listed as author of the article \ud83d\ude09 Check other examples how to format comments / cite. Also make sure that name or value of the h-card is not empty. URL and photo is optional. http:/\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "\u3068\u3082\u3048\ud83c\udf34\u5bae\u5d0e\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30a8\u30f3\u30b8\u30cb\u30a2" ], "summary": [ "The first \"Tegeinglish\" session of 2020 done! I introduced \"Six Web Performance Technologies to Watch in 2020\" which describe about the technologies to improve web performance over 5G and HTTP/3. simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/73c1ef13e87a9643b7203cfb26a683e7b89f4130428475b8efa6387aa3468747.jpg", "alt": "\u3068\u3082\u3048\ud83c\udf34\u5bae\u5d0e\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30a8\u30f3\u30b8\u30cb\u30a2" } ], "content": [ { "html": "The first \"Tegeinglish\" session of 2020 done! I introduced \"Six Web Performance Technologies to Watch in 2020\" which describe about the technologies to improve web performance over 5G and HTTP/3. simonhearne.com/2019/2020-pred\u2026
", "value": "The first \"Tegeinglish\" session of 2020 done! I introduced \"Six Web Performance Technologies to Watch in 2020\" which describe about the technologies to improve web performance over 5G and HTTP/3. simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "\ud835\ude7e\ud835\ude95\ud835\ude92\ud835\ude9f\ud835\ude8e\ud835\ude9b \ud835\ude82\ud835\ude8c\ud835\ude91\ud835\ude8a\ud835\ude8f\ud835\ude8e\ud835\ude95\ud835\ude8d" ], "summary": [ "Predictions about #web #performance improvements and innovations in 2020 simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/99ea3ad5d8ff1a5187f492190dc64b0530ed9c1e1b77d0064b8b70d456ccfd3e.png", "alt": "\ud835\ude7e\ud835\ude95\ud835\ude92\ud835\ude9f\ud835\ude8e\ud835\ude9b \ud835\ude82\ud835\ude8c\ud835\ude91\ud835\ude8a\ud835\ude8f\ud835\ude8e\ud835\ude95\ud835\ude8d" } ], "content": [ { "html": "Predictions about #web #performance improvements and innovations in 2020 simonhearne.com/2019/2020-pred\u2026
", "value": "Predictions about #web #performance improvements and innovations in 2020 simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" }, { "type": [ "h-cite" ], "properties": { "name": [ "Laurent Hasson" ], "summary": [ "simonhearne.com/2019/2020-pred\u2026" ], "photo": [ { "value": "https://webmention.io/avatar/pbs.twimg.com/1e5f5a0756901a6cd6a44fd0ffe2bf9cdac72217231cebdbf6a26fdfc13054fe.jpg", "alt": "Laurent Hasson" } ], "content": [ { "html": "", "value": "simonhearne.com/2019/2020-pred\u2026", "lang": "en" } ] }, "lang": "en" } ], "rels": { "apple-touch-icon": [ "https://simonhearne.com/apple-touch-icon.png" ], "icon": [ "https://simonhearne.com/favicon-32x32.png", "https://simonhearne.com/favicon-16x16.png" ], "manifest": [ "https://simonhearne.com/manifest.json" ], "pingback": [ "https://webmention.io/simonhearne.com/xmlrpc" ], "webmention": [ "https://webmention.io/simonhearne.com/webmention" ], "stylesheet": [ "https://simonhearne.com/css/prism-base16-monokai.dark.css", "https://simonhearne.com/css/prism-diff.css" ], "alternate": [ "https://simonhearne.com/feed/feed.xml", "https://simonhearne.com/feed/feed.json" ], "preconnect": [ "https://simon-s-demo.apm.us-central1.gcp.cloud.es.io" ], "author": [ "https://simonhearne.com/" ], "me": [ "https://twitter.com/SimonHearne" ], "noopener": [ "https://twitter.com/SimonHearne", "https://twitter.com/simonhearne", "https://twitter.com/devthiago", "https://twitter.com/ErqunERKAN", "https://twitter.com/ibrahimcesar", "https://twitter.com/prayagverma", "https://twitter.com/gokul_i", "https://twitter.com/fchristant", "https://twitter.com/IacobanIulia", "https://twitter.com/paulcalvano", "https://twitter.com/nicj", "https://twitter.com/jgb_solutions", "https://twitter.com/MerelyJeremy", "https://twitter.com/nwbower", "https://twitter.com/tanapei000", "https://twitter.com/kremerd4", "https://twitter.com/sandersu1981", "https://twitter.com/creeation_de", "https://twitter.com/RobertGreville", "https://twitter.com/_djpogo_", "https://twitter.com/mustafaskyer", "https://twitter.com/adamzr", "https://twitter.com/mikaelainalem", "https://twitter.com/davidowitz", "https://twitter.com/jduponchelle", "https://twitter.com/sergeyche", "https://twitter.com/06b", "https://twitter.com/DaleLenard", "https://twitter.com/possible_eric", "https://twitter.com/The5Gist", "https://twitter.com/Response_Times", "https://twitter.com/mitvenkatesan", "https://twitter.com/tibotiber", "https://twitter.com/wao_io", "https://twitter.com/wp2static", "https://twitter.com/gkiersznowski", "https://twitter.com/shwetank", "https://twitter.com/svknyc", "https://twitter.com/maxbeard12", "https://twitter.com/bizofdigital", "https://twitter.com/edent", "https://twitter.com/edent/status/1209139526549020672", "https://twitter.com/JamieTanna", "https://twitter.com/JamieTanna/status/1209140330005762049", "https://twitter.com/edent/status/1209157364298985472", "https://twitter.com/BekoPharm", "https://twitter.com/BekoPharm/status/1214513236579667969", "https://twitter.com/simonhearne/status/1214615581875490816", "https://twitter.com/simonhearne/status/1199694905691516933", "https://twitter.com/datadeflator", "https://twitter.com/datadeflator/status/1205893602192310277", "https://twitter.com/marioavc", "https://twitter.com/marioavc/status/1207090100259000321", "https://twitter.com/GoldBoyChris", "https://twitter.com/GoldBoyChris/status/1207253273381670913", "https://twitter.com/widged", "https://twitter.com/widged/status/1207262297607016449", "https://twitter.com/empresarioapps", "https://twitter.com/empresarioapps/status/1207460559446130688", "https://twitter.com/fatihhayri", "https://twitter.com/fatihhayri/status/1207522522134204420", "https://twitter.com/swe_guide", "https://twitter.com/swe_guide/status/1207555393267875840", "https://twitter.com/PerfReviews_", "https://twitter.com/PerfReviews_/status/1207561593984339968", "https://twitter.com/refreshdetroit", "https://twitter.com/refreshdetroit/status/1207649299049394177", "https://twitter.com/gaslandev", "https://twitter.com/gaslandev/status/1208439892503597057", "https://twitter.com/FrontendDaily", "https://twitter.com/FrontendDaily/status/1211369294363287553", "https://twitter.com/theonico85", "https://twitter.com/theonico85/status/1212083935129280512", "https://twitter.com/cyuuuuuuu", "https://twitter.com/cyuuuuuuu/status/1213746186974154752", "https://twitter.com/arasgadi", "https://twitter.com/arasgadi/status/1213988586208411648", "https://twitter.com/statsprovenutn", "https://twitter.com/statsprovenutn/status/1214184005886713859", "https://twitter.com/henshaw", "https://twitter.com/henshaw/status/1214193793894932481", "https://twitter.com/satchmo", "https://twitter.com/satchmo/status/1214218523549011970", "https://beko.famkos.net/author/beko/", "https://beko.famkos.net/2020/01/07/simon-hearne-now-indieweb-enabled/", "https://twitter.com/tomoeine", "https://twitter.com/tomoeine/status/1214710726989766656", "https://twitter.com/oliver_schafeld", "https://twitter.com/oliver_schafeld/status/1219222768774008833", "https://twitter.com/ldhasson", "https://twitter.com/ldhasson/status/1258818553714749442" ], "external": [ "https://twitter.com/simonhearne", "https://twitter.com/devthiago", "https://twitter.com/ErqunERKAN", "https://twitter.com/ibrahimcesar", "https://twitter.com/prayagverma", "https://twitter.com/gokul_i", "https://twitter.com/fchristant", "https://twitter.com/IacobanIulia", "https://twitter.com/paulcalvano", "https://twitter.com/nicj", "https://twitter.com/jgb_solutions", "https://twitter.com/MerelyJeremy", "https://twitter.com/nwbower", "https://twitter.com/tanapei000", "https://twitter.com/kremerd4", "https://twitter.com/sandersu1981", "https://twitter.com/creeation_de", "https://twitter.com/RobertGreville", "https://twitter.com/_djpogo_", "https://twitter.com/mustafaskyer", "https://twitter.com/adamzr", "https://twitter.com/mikaelainalem", "https://twitter.com/davidowitz", "https://twitter.com/jduponchelle", "https://twitter.com/sergeyche", "https://twitter.com/06b", "https://twitter.com/DaleLenard", "https://twitter.com/possible_eric", "https://twitter.com/The5Gist", "https://twitter.com/Response_Times", "https://twitter.com/mitvenkatesan", "https://twitter.com/tibotiber", "https://twitter.com/wao_io", "https://twitter.com/wp2static", "https://twitter.com/gkiersznowski", "https://twitter.com/shwetank", "https://twitter.com/svknyc", "https://twitter.com/maxbeard12", "https://twitter.com/bizofdigital", "https://twitter.com/edent", "https://twitter.com/edent/status/1209139526549020672", "https://twitter.com/JamieTanna", "https://twitter.com/JamieTanna/status/1209140330005762049", "https://twitter.com/edent/status/1209157364298985472", "https://twitter.com/BekoPharm", "https://twitter.com/BekoPharm/status/1214513236579667969", "https://twitter.com/simonhearne/status/1214615581875490816", "https://twitter.com/simonhearne/status/1199694905691516933", "https://twitter.com/datadeflator", "https://twitter.com/datadeflator/status/1205893602192310277", "https://twitter.com/marioavc", "https://twitter.com/marioavc/status/1207090100259000321", "https://twitter.com/GoldBoyChris", "https://twitter.com/GoldBoyChris/status/1207253273381670913", "https://twitter.com/widged", "https://twitter.com/widged/status/1207262297607016449", "https://twitter.com/empresarioapps", "https://twitter.com/empresarioapps/status/1207460559446130688", "https://twitter.com/fatihhayri", "https://twitter.com/fatihhayri/status/1207522522134204420", "https://twitter.com/swe_guide", "https://twitter.com/swe_guide/status/1207555393267875840", "https://twitter.com/PerfReviews_", "https://twitter.com/PerfReviews_/status/1207561593984339968", "https://twitter.com/refreshdetroit", "https://twitter.com/refreshdetroit/status/1207649299049394177", "https://twitter.com/gaslandev", "https://twitter.com/gaslandev/status/1208439892503597057", "https://twitter.com/FrontendDaily", "https://twitter.com/FrontendDaily/status/1211369294363287553", "https://twitter.com/theonico85", "https://twitter.com/theonico85/status/1212083935129280512", "https://twitter.com/cyuuuuuuu", "https://twitter.com/cyuuuuuuu/status/1213746186974154752", "https://twitter.com/arasgadi", "https://twitter.com/arasgadi/status/1213988586208411648", "https://twitter.com/statsprovenutn", "https://twitter.com/statsprovenutn/status/1214184005886713859", "https://twitter.com/henshaw", "https://twitter.com/henshaw/status/1214193793894932481", "https://twitter.com/satchmo", "https://twitter.com/satchmo/status/1214218523549011970", "https://beko.famkos.net/author/beko/", "https://beko.famkos.net/2020/01/07/simon-hearne-now-indieweb-enabled/", "https://twitter.com/tomoeine", "https://twitter.com/tomoeine/status/1214710726989766656", "https://twitter.com/oliver_schafeld", "https://twitter.com/oliver_schafeld/status/1219222768774008833", "https://twitter.com/ldhasson", "https://twitter.com/ldhasson/status/1258818553714749442" ], "noreferrer": [ "https://twitter.com/simonhearne", "https://twitter.com/devthiago", "https://twitter.com/ErqunERKAN", "https://twitter.com/ibrahimcesar", "https://twitter.com/prayagverma", "https://twitter.com/gokul_i", "https://twitter.com/fchristant", "https://twitter.com/IacobanIulia", "https://twitter.com/paulcalvano", "https://twitter.com/nicj", "https://twitter.com/jgb_solutions", "https://twitter.com/MerelyJeremy", "https://twitter.com/nwbower", "https://twitter.com/tanapei000", "https://twitter.com/kremerd4", "https://twitter.com/sandersu1981", "https://twitter.com/creeation_de", "https://twitter.com/RobertGreville", "https://twitter.com/_djpogo_", "https://twitter.com/mustafaskyer", "https://twitter.com/adamzr", "https://twitter.com/mikaelainalem", "https://twitter.com/davidowitz", "https://twitter.com/jduponchelle", "https://twitter.com/sergeyche", "https://twitter.com/06b", "https://twitter.com/DaleLenard", "https://twitter.com/possible_eric", "https://twitter.com/The5Gist", "https://twitter.com/Response_Times", "https://twitter.com/mitvenkatesan", "https://twitter.com/tibotiber", "https://twitter.com/wao_io", "https://twitter.com/wp2static", "https://twitter.com/gkiersznowski", "https://twitter.com/shwetank", "https://twitter.com/svknyc", "https://twitter.com/maxbeard12", "https://twitter.com/bizofdigital", "https://twitter.com/edent", "https://twitter.com/edent/status/1209139526549020672", "https://twitter.com/JamieTanna", "https://twitter.com/JamieTanna/status/1209140330005762049", "https://twitter.com/edent/status/1209157364298985472", "https://twitter.com/BekoPharm", "https://twitter.com/BekoPharm/status/1214513236579667969", "https://twitter.com/simonhearne/status/1214615581875490816", "https://twitter.com/simonhearne/status/1199694905691516933", "https://twitter.com/datadeflator", "https://twitter.com/datadeflator/status/1205893602192310277", "https://twitter.com/marioavc", "https://twitter.com/marioavc/status/1207090100259000321", "https://twitter.com/GoldBoyChris", "https://twitter.com/GoldBoyChris/status/1207253273381670913", "https://twitter.com/widged", "https://twitter.com/widged/status/1207262297607016449", "https://twitter.com/empresarioapps", "https://twitter.com/empresarioapps/status/1207460559446130688", "https://twitter.com/fatihhayri", "https://twitter.com/fatihhayri/status/1207522522134204420", "https://twitter.com/swe_guide", "https://twitter.com/swe_guide/status/1207555393267875840", "https://twitter.com/PerfReviews_", "https://twitter.com/PerfReviews_/status/1207561593984339968", "https://twitter.com/refreshdetroit", "https://twitter.com/refreshdetroit/status/1207649299049394177", "https://twitter.com/gaslandev", "https://twitter.com/gaslandev/status/1208439892503597057", "https://twitter.com/FrontendDaily", "https://twitter.com/FrontendDaily/status/1211369294363287553", "https://twitter.com/theonico85", "https://twitter.com/theonico85/status/1212083935129280512", "https://twitter.com/cyuuuuuuu", "https://twitter.com/cyuuuuuuu/status/1213746186974154752", "https://twitter.com/arasgadi", "https://twitter.com/arasgadi/status/1213988586208411648", "https://twitter.com/statsprovenutn", "https://twitter.com/statsprovenutn/status/1214184005886713859", "https://twitter.com/henshaw", "https://twitter.com/henshaw/status/1214193793894932481", "https://twitter.com/satchmo", "https://twitter.com/satchmo/status/1214218523549011970", "https://beko.famkos.net/author/beko/", "https://beko.famkos.net/2020/01/07/simon-hearne-now-indieweb-enabled/", "https://twitter.com/tomoeine", "https://twitter.com/tomoeine/status/1214710726989766656", "https://twitter.com/oliver_schafeld", "https://twitter.com/oliver_schafeld/status/1219222768774008833", "https://twitter.com/ldhasson", "https://twitter.com/ldhasson/status/1258818553714749442" ], "nofollow": [ "https://twitter.com/simonhearne", "https://twitter.com/devthiago", "https://twitter.com/ErqunERKAN", "https://twitter.com/ibrahimcesar", "https://twitter.com/prayagverma", "https://twitter.com/gokul_i", "https://twitter.com/fchristant", "https://twitter.com/IacobanIulia", "https://twitter.com/paulcalvano", "https://twitter.com/nicj", "https://twitter.com/jgb_solutions", "https://twitter.com/MerelyJeremy", "https://twitter.com/nwbower", "https://twitter.com/tanapei000", "https://twitter.com/kremerd4", "https://twitter.com/sandersu1981", "https://twitter.com/creeation_de", "https://twitter.com/RobertGreville", "https://twitter.com/_djpogo_", "https://twitter.com/mustafaskyer", "https://twitter.com/adamzr", "https://twitter.com/mikaelainalem", "https://twitter.com/davidowitz", "https://twitter.com/jduponchelle", "https://twitter.com/sergeyche", "https://twitter.com/06b", "https://twitter.com/DaleLenard", "https://twitter.com/possible_eric", "https://twitter.com/The5Gist", "https://twitter.com/Response_Times", "https://twitter.com/mitvenkatesan", "https://twitter.com/tibotiber", "https://twitter.com/wao_io", "https://twitter.com/wp2static", "https://twitter.com/gkiersznowski", "https://twitter.com/shwetank", "https://twitter.com/svknyc", "https://twitter.com/maxbeard12", "https://twitter.com/bizofdigital", "https://twitter.com/edent", "https://twitter.com/JamieTanna", "https://twitter.com/BekoPharm", "https://twitter.com/datadeflator", "https://twitter.com/marioavc", "https://twitter.com/GoldBoyChris", "https://twitter.com/widged", "https://twitter.com/empresarioapps", "https://twitter.com/fatihhayri", "https://twitter.com/swe_guide", "https://twitter.com/PerfReviews_", "https://twitter.com/refreshdetroit", "https://twitter.com/gaslandev", "https://twitter.com/FrontendDaily", "https://twitter.com/theonico85", "https://twitter.com/cyuuuuuuu", "https://twitter.com/arasgadi", "https://twitter.com/statsprovenutn", "https://twitter.com/henshaw", "https://twitter.com/satchmo", "https://beko.famkos.net/author/beko/", "https://twitter.com/tomoeine", "https://twitter.com/oliver_schafeld", "https://twitter.com/ldhasson" ] }, "rel-urls": { "https://simonhearne.com/apple-touch-icon.png": { "rels": [ "apple-touch-icon" ] }, "https://simonhearne.com/favicon-32x32.png": { "type": "image/png", "rels": [ "icon" ] }, "https://simonhearne.com/favicon-16x16.png": { "type": "image/png", "rels": [ "icon" ] }, "https://simonhearne.com/manifest.json": { "rels": [ "manifest" ] }, "https://webmention.io/simonhearne.com/xmlrpc": { "rels": [ "pingback" ] }, "https://webmention.io/simonhearne.com/webmention": { "rels": [ "webmention" ] }, "https://simonhearne.com/css/prism-base16-monokai.dark.css": { "media": "print", "rels": [ "stylesheet" ] }, "https://simonhearne.com/css/prism-diff.css": { "media": "print", "rels": [ "stylesheet" ] }, "https://simonhearne.com/feed/feed.xml": { "title": "Simon Hearne", "type": "application/atom+xml", "rels": [ "alternate" ] }, "https://simonhearne.com/feed/feed.json": { "title": "Simon Hearne", "type": "application/json", "rels": [ "alternate" ] }, "https://simon-s-demo.apm.us-central1.gcp.cloud.es.io": { "rels": [ "preconnect" ] }, "https://simonhearne.com/": { "text": "Simon Hearne", "rels": [ "author" ] }, "https://twitter.com/SimonHearne": { "title": "@SimonHearne on Twitter", "text": "\n\n@SimonHearne\n", "rels": [ "me", "noopener" ] }, "https://twitter.com/simonhearne": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/devthiago": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/ErqunERKAN": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/ibrahimcesar": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/prayagverma": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/gokul_i": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/fchristant": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/IacobanIulia": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/paulcalvano": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/nicj": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/jgb_solutions": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/MerelyJeremy": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/nwbower": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/tanapei000": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/kremerd4": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/sandersu1981": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/creeation_de": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/RobertGreville": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/_djpogo_": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/mustafaskyer": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/adamzr": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/mikaelainalem": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/davidowitz": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/jduponchelle": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/sergeyche": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/06b": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/DaleLenard": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/possible_eric": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/The5Gist": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/Response_Times": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/mitvenkatesan": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/tibotiber": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/wao_io": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/wp2static": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/gkiersznowski": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/shwetank": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/svknyc": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/maxbeard12": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/bizofdigital": { "text": "\n\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/edent": { "text": "\nTerence Eden\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/edent/status/1209139526549020672": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/JamieTanna": { "text": "\nJamie Tanna | www.jvt.me\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/JamieTanna/status/1209140330005762049": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/edent/status/1209157364298985472": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/BekoPharm": { "text": "\nBeko Pharm\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/BekoPharm/status/1214513236579667969": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/simonhearne/status/1214615581875490816": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/simonhearne/status/1199694905691516933": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/datadeflator": { "text": "\nGabriel Lew\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/datadeflator/status/1205893602192310277": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/marioavc": { "text": "\nMario Vasquez\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/marioavc/status/1207090100259000321": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/GoldBoyChris": { "text": "\nChristopher Goldberg\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/GoldBoyChris/status/1207253273381670913": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/widged": { "text": "\nMarielle Lange\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/widged/status/1207262297607016449": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/empresarioapps": { "text": "\n\u30a8\u30f3\u30d7\u30ec\ud83c\udfd4\ufe0f\u26c4\ufe0f\u5c71\u306b\u767b\u308a\u30a2\u30d7\u30ea\u3082\u4f5c\u308b\ud83c\udf3f\u90fd\u9053\u5e9c\u770c\u5b66\u7fd2\u30a2\u30d7\u30ea\u3042\u308b\u3088\ud83d\ude03\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/empresarioapps/status/1207460559446130688": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/fatihhayri": { "text": "\nFatih Hayrio\u011flu\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/fatihhayri/status/1207522522134204420": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/swe_guide": { "text": "\n\u0645\u0631\u0634\u062f \u0647\u0646\u062f\u0633\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0627\u062a\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/swe_guide/status/1207555393267875840": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/PerfReviews_": { "text": "\nPerfReviews \u26a1\ufe0f\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/PerfReviews_/status/1207561593984339968": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/refreshdetroit": { "text": "\nRefresh Detroit\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/refreshdetroit/status/1207649299049394177": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/gaslandev": { "text": "\ngaslandev\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/gaslandev/status/1208439892503597057": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/FrontendDaily": { "text": "\nFrontend Daily\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/FrontendDaily/status/1211369294363287553": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/theonico85": { "text": "\nTheo Nicolaou\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/theonico85/status/1212083935129280512": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/cyuuuuuuu": { "text": "\ncyuuuuuuu\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/cyuuuuuuu/status/1213746186974154752": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/arasgadi": { "text": "\nArmando R\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/arasgadi/status/1213988586208411648": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/statsprovenutn": { "text": "\nPeter M. Lance\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/statsprovenutn/status/1214184005886713859": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/henshaw": { "text": "\nJon Henshaw\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/henshaw/status/1214193793894932481": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/satchmo": { "text": "\nDennis Schneider\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/satchmo/status/1214218523549011970": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://beko.famkos.net/author/beko/": { "text": "\nBeko Pharm\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://beko.famkos.net/2020/01/07/simon-hearne-now-indieweb-enabled/": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/tomoeine": { "text": "\n\u3068\u3082\u3048\ud83c\udf34\u5bae\u5d0e\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30a8\u30f3\u30b8\u30cb\u30a2\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/tomoeine/status/1214710726989766656": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/oliver_schafeld": { "text": "\n\ud835\ude7e\ud835\ude95\ud835\ude92\ud835\ude9f\ud835\ude8e\ud835\ude9b \ud835\ude82\ud835\ude8c\ud835\ude91\ud835\ude8a\ud835\ude8f\ud835\ude8e\ud835\ude95\ud835\ude8d\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/oliver_schafeld/status/1219222768774008833": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] }, "https://twitter.com/ldhasson": { "text": "\nLaurent Hasson\n", "rels": [ "external", "nofollow", "noopener", "noreferrer" ] }, "https://twitter.com/ldhasson/status/1258818553714749442": { "text": "View original post", "rels": [ "external", "noopener", "noreferrer" ] } }, "debug": { "package": "https://packagist.org/packages/mf2/mf2", "source": "https://github.com/indieweb/php-mf2", "version": "v0.5.0", "note": [ "This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2", "Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues", "Using the Masterminds HTML5 parser" ] } }