{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "@id": "https://www.vidyasource.com/blog/vidya-reloaded/",
  "url": "https://www.vidyasource.com/blog/vidya-reloaded/",
  "mainEntityOfPage": "https://www.vidyasource.com/blog/vidya-reloaded/",
  "headline": "Vidya Reloaded",
  "description": "Our new website is a Progressive Web Application. Here's why that's cool.",
  "datePublished": "2017-09-10T00:00:00.000Z",
  "author": {
    "@type": "Person",
    "name": "Neil Chaudhuri",
    "jobTitle": "President",
    "url": "https://www.linkedin.com/in/neil-chaudhuri/",
    "sameAs": "https://www.linkedin.com/in/neil-chaudhuri/"
  },
  "publisher": {
    "@id": "https://www.vidyasource.com/#organization"
  },
  "image": "https://www.vidyasource.com/img/blog/matrix.jpg",
  "keywords": [
    "Go",
    "Java",
    "Hugo",
    "PWA",
    "JavaScript",
    "React",
    "VueJS",
    "Android",
    "iOS",
    "Mobile",
    "Accessibility",
    "Open Source",
    "Security",
    "Testing"
  ],
  "articleBody": "Welcome to the first new post on our brand new website! Thank you for checking it out.\n\nAt Vidya we pride ourselves on embracing emerging technologies and helping our clients leverage them to realize their\npotential. This website proves we practice what we preach. We built it with [Hugo](https://gohugo.io/),\na stunningly fast static-site generator built on Google's popular Go programming language, which continues\nto shoot up the [Tiobe Index](https://www.tiobe.com/tiobe-index/go/).\n\nAs great as Hugo and Go are, the really cool thing about our new website is that it is a Progressive Web Application (PWA).\nThe kids love PWAs. We identified PWAs as a \"trend in software engineering\" in our [last talk](https://www.vidyasource.com/blog/speaking-at-code-writers-workshop-2017/).\nGoogle, Twitter, Starbucks, Pinterest, Alibaba, Microsoft, and numerous other mom-and-pop shops have invested in PWAs, and a quick\nGoogle search will show you why.\nHenrik Joreteg's [ode to PWAs](https://joreteg.com/blog/betting-on-the-web) is very informative, but since\nhis post is so long it might cause your mobile carrier to\n[throttle your data](https://www.engadget.com/2017/08/22/verizon-video-throttling-net-neutrality-unfair-to-customers/),\nhere is an explanation that is less long.\n\n## PWAs are the future of the mobile web.\n\n[Originating at Google](https://developers.google.com/web/progressive-web-apps/), PWAs are built like any other website (*i.e.* with HTML, CSS, and JavaScript), but they are endowed\nwith [service workers](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers) that allow mobile users\nwith supporting browsers (more on this later) to enjoy a rich, native-app-like experience. Service workers use JavaScript `Promises` to\nenable push notifications and caching for rapid and offline access. They can access native hardware as well to varying degrees by browser.\n\nA PWA also enables mobile users to add a home screen icon like a native app. Henrik dismisses that as a \"glorified bookmark,\" but I think\nthat's cool. Eye candy or not, one day we will be able to set permissions for PWAs, view their battery consumption,\nand do other things we take for granted with native apps. [WebAPKs](https://www.xda-developers.com/webapks-chrome-nightly-builds/)\nare just starting to enable this on Android.\n\nFrom a business perspective, [mobile traffic exceeded desktop traffic for the first time in late 2016](http://gs.statcounter.com/press/mobile-and-tablet-internet-usage-exceeds-desktop-for-first-time-worldwide),\nso the speed and offline availability of PWAs are attractive. Mobile consumers are the most loyal but are also downloading fewer apps.\nPWAs reconcile those trends by bringing customers to your business as directly as possible--without hops to an app store and waiting\nfor downloads and installations--and improving their experience once they arrive. Consequently, businesses like [Alibaba](https://developers.google.com/web/showcase/2016/alibaba) are seeing huge increases in conversions through PWAs.\n\nFrom a developer perspective, [Create React App](https://github.com/facebookincubator/create-react-app), which builds\na scaffold for getting started with React, creates PWAs by default, so Facebook is on board. PWAs in Vue are\nsimilarly made possible by the [vue-cli](https://github.com/vuejs/vue-cli). Developing a PWA also forces you to think about\nsecurity *from the start*. Service workers are very powerful, and [with great power comes great responsibility](https://www.youtube.com/watch?v=b23wrRfy7SM).\nA man-in-the-middle could\nuse them [to do a lot of bad things](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers#you_need_https) to your PWA.\nPWAs therefore *require* HTTPS. Don't worry. Things work fine\nwhen you're developing on `localhost`. When it comes time to deploy to production, many leading hosts offer\nautomated, one-click HTTPS. If they don't, you can use [Let's Encrypt](https://letsencrypt.org/) to create and deploy\nyour own [TLS certificates](https://www.globalsign.com/en/blog/ssl-vs-tls-difference/) for free. Besides, PWA or not, [Google is making you move to HTTPS anyway](https://seo-hacker.com/google-adopt-https/).\nFinally, you can test your PWA by using [Lighthouse](https://developers.google.com/web/tools/lighthouse/) either from the\ncommand line or as a Chrome plugin. Lighthouse grades your PWA on its speed, [configuration](https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/),\nsecurity, and accessibility\nwith the help of [Axe](https://www.deque.com/products/axe/).\n\nAs you probably figured, it isn't all roses with PWAs, and it's primarily because of browser variability. Isn't it always?\nNot every browser supports service workers--notably Safari. After all,\nApple makes a lot of money from its App Store, but they will come around. I mean [Microsoft Edge](https://www.thurrott.com/windows/windows-10/116101/microsoft-said-progressive-web-apps-build)\nis about to roll out PWA support. Microsoft! Innovating in the browser! Still, even among progressive browsers, you have to be wary. Chrome gives\nyou access to the camera on the device; will Edge? You have to be mindful of what your [target browsers can do](https://whatwebcando.today/).\nAlso the tooling is in its infancy. The more complex your PWA (*e.g.* the more static assets to\ncache and/or the more frequent your updates and pushes) the more you will need good tools to help.\n\nIt always takes time to sort out browser issues. But just as browser applications all but overtook native desktop applications\nfrom when [The Fresh Prince originally aired](https://www.thesun.co.uk/tvandshowbiz/4164081/the-fresh-prince-of-bel-air-to-return-with-will-smith-20-years-after-it-last-aired-according-to-jazzy-jeff/),\nyou can bet on the web to win once again and overtake native mobile applications as well.\n\nWe are excited that we could take a step toward that future with our new website. Please check it out and [let us know what you think](https://www.vidyasource.com/contact/)."
}