All Projects → google → Amp Pwa Demo

google / Amp Pwa Demo

Licence: apache-2.0
A simple, dependency-free blog that uses a Progressive Web App (PWA) to show Accellerated Mobile Pages (AMP).

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Amp Pwa Demo

Vuefront
VueFront Core. Turn your old-fashioned CMS website in to a SPA & PWA in 5 minutes
Stars: ✭ 316 (+203.85%)
Mutual labels:  amp, pwa
Markdown Electron
⚛️Electron version of Markdown app
Stars: ✭ 99 (-4.81%)
Mutual labels:  pwa
Colors App
🎨 A PWA for copying values from popular color palettes. Supports HEX, RGB, and HSL formats.
Stars: ✭ 90 (-13.46%)
Mutual labels:  pwa
Generator Ngx Rocket
🚀 Extensible Angular 11+ enterprise-grade project generator
Stars: ✭ 1,329 (+1177.88%)
Mutual labels:  pwa
Meteor Apollo Starter Kit
Meteor, Apollo, React, PWA, Styled-Components boilerplate
Stars: ✭ 91 (-12.5%)
Mutual labels:  pwa
Vue Pwa Asset Generator
PWA asset generator perfect with VueJS framework (but useful for all PWA!)
Stars: ✭ 97 (-6.73%)
Mutual labels:  pwa
Ryosuke Gatsby Blog
Static PWA React-powered portfolio and blog built with GatsbyJS
Stars: ✭ 90 (-13.46%)
Mutual labels:  pwa
Kawachat2 Client
Angular 4 Chat App using Socket.IO 2.0
Stars: ✭ 100 (-3.85%)
Mutual labels:  pwa
Leaf Ui
🍃 Leaf-UI: A react component library built using styled-components
Stars: ✭ 98 (-5.77%)
Mutual labels:  amp
Rowing Monitor
The Rowing Monitor is a Progressive Web App that uses Web Bluetooth to connect to a PM5 Monitor and track exercises.
Stars: ✭ 94 (-9.62%)
Mutual labels:  pwa
Ngx Pwa Offline
RxJS operator and other utils catching offline errors in Angular apps (= async pipe everywhere!)
Stars: ✭ 94 (-9.62%)
Mutual labels:  pwa
Next Offline
make your Next.js application work offline using service workers via Google's workbox
Stars: ✭ 1,306 (+1155.77%)
Mutual labels:  pwa
Magento Docker
Docker environment dedicated for ScandiPWA theme development
Stars: ✭ 98 (-5.77%)
Mutual labels:  pwa
Stencil
A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
Stars: ✭ 9,880 (+9400%)
Mutual labels:  pwa
Vueneue
DEPRECATED: go to UVue
Stars: ✭ 99 (-4.81%)
Mutual labels:  pwa
Offline Gallery
🎈 A 16kb Preact & Redux based Progressive Web App that offers an offline gallery experience of external images.
Stars: ✭ 90 (-13.46%)
Mutual labels:  pwa
Capacitorgoogleauth
Capacitor plugin for Google Auth. Lightweight & no dependencies.
Stars: ✭ 92 (-11.54%)
Mutual labels:  pwa
Absolute
Absolute is a web-based O2O(Online to Offline) platform like Siren-Order for Starbucks. We are focused on creating the platform that is portable, cheaper, easier, decentralized and appless.
Stars: ✭ 96 (-7.69%)
Mutual labels:  pwa
Thyme
Simple time logging web app
Stars: ✭ 101 (-2.88%)
Mutual labels:  pwa
Milligram
A minimalist CSS framework.
Stars: ✭ 9,568 (+9100%)
Mutual labels:  amp

AMP+PWA Demo for Blog and News Sites

A simple, dependency-free blog that uses a Progressive Web App (PWA) to show Accelerated Mobile Pages (AMP). This is not an official Google product.

Setup

This project requires Node.js and NPM.

In the root of this repo, run npm install to download all dependencies, and then npm start to start the server. You can visit the site at localhost:8080.

Note that this is just a demo site. Some features (e.g. push notifications) require a more complex backend that is not implemented here.

Implementation Details

Our site uses AMP and PWA to create a site that loads as fast as possible, while still allowing users to take advantage of some of the most recent web platform features like push notifications and offline browsing.

The front end consists of three main components:

  • AMP templates: All pages are valid AMP pages. We'll only have to maintain a single set of templates (rather than a conventional version and a separate AMP version).
  • App Shell: This is an empty HTML page that contains some scripts to download content.
  • Service Worker

The first pageview will always be an AMP page. If visitors are coming from Google search results, this page will be loaded directly from the Google AMP cache. In the background, the AMP page will install the service worker, which in turn will cache the app shell page and some other resources.

Any further pageview will be intercepted by the service worker. It returns the app shell, rather than the requested page, and the app shell will then load the actual content using AJAX.

While the content shown inside the app shell is still valid AMP, we can now use custom JavaScript to add functionality that is not (yet) supported by AMP. Note however that this functionality will not be available on the first pageview, or in browsers that don't support service workers. The App Shell can also intercept link clicks and use the web history API to create a "single page app".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].