36 |
├── .gitignore
├── lib
├── templates
│ ├── starter-pwa
│ │ ├── _config.yml
│ │ ├── build
│ │ │ ├── styles
│ │ │ │ └── style.css
│ │ │ ├── fonts
│ │ │ │ └── roboto
│ │ │ │ │ ├── Roboto-Bold.woff
│ │ │ │ │ ├── Roboto-Bold.woff2
│ │ │ │ │ ├── Roboto-Light.woff
│ │ │ │ │ ├── Roboto-Thin.woff
│ │ │ │ │ ├── Roboto-Thin.woff2
│ │ │ │ │ ├── Roboto-Light.woff2
│ │ │ │ │ ├── Roboto-Medium.woff
│ │ │ │ │ ├── Roboto-Medium.woff2
│ │ │ │ │ ├── Roboto-Regular.woff
│ │ │ │ │ └── Roboto-Regular.woff2
│ │ │ ├── images
│ │ │ │ └── icons
│ │ │ │ │ ├── icon-128x128.png
│ │ │ │ │ ├── icon-144x144.png
│ │ │ │ │ ├── icon-152x152.png
│ │ │ │ │ ├── icon-192x192.png
│ │ │ │ │ └── icon-256x256.png
│ │ │ ├── scripts
│ │ │ │ └── app.js
│ │ │ ├── manifest.json
│ │ │ ├── service-worker.js
│ │ │ └── index.html
│ │ ├── .gitignore
│ │ ├── images
│ │ │ └── template-progressive-web-app.png
│ │ ├── server.js
│ │ ├── package.json
│ │ └── package-lock.json
│ ├── react-pwa
│ │ ├── .babelrc
│ │ ├── build
│ │ │ ├── favicon.ico
│ │ │ ├── img
│ │ │ │ ├── forge-144.png
│ │ │ │ ├── forge-196.png
│ │ │ │ ├── forge-384.png
│ │ │ │ ├── forge-48.png
│ │ │ │ └── forge-96.png
│ │ │ ├── manifest.json
│ │ │ ├── index.html
│ │ │ ├── sw.js
│ │ │ └── bundle.js
│ │ ├── .gitignore
│ │ ├── client
│ │ │ ├── index.js
│ │ │ ├── Header.jsx
│ │ │ ├── app.scss
│ │ │ └── App.jsx
│ │ ├── server.js
│ │ ├── webpack.config.js
│ │ └── package.json
│ └── beginners-guide
│ │ ├── build
│ │ ├── favicon.ico
│ │ ├── forge-bg.jpg
│ │ ├── theForge.png
│ │ ├── img
│ │ │ ├── forge-48.png
│ │ │ ├── forge-96.png
│ │ │ ├── forge-144.png
│ │ │ ├── forge-196.png
│ │ │ └── forge-384.png
│ │ ├── chromeDevTools.png
│ │ ├── manifest.json
│ │ ├── styles.css
│ │ ├── sw.js
│ │ └── index.html
│ │ ├── .gitignore
│ │ ├── server.js
│ │ ├── package.json
│ │ └── package-lock.json
├── init
│ ├── AWS
│ │ ├── .ebextensions
│ │ │ └── nodecommand.config
│ │ └── .elasticbeanstalk
│ │ │ └── config.yml
│ └── Firebase
│ │ └── firebase.json
├── commands.js
├── firebase.js
├── generator.js
├── aws.js
└── inquirer.js
├── test
├── index.js
└── js
│ ├── aws-test.js
│ ├── firebase-test.js
│ └── generator-test.js
├── postinstall.js
├── package.json
├── README.md
└── index.js
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-minimal
--------------------------------------------------------------------------------
/lib/templates/react-pwa/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "react", "stage-2"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | require('./js/aws-test');
2 | require('./js/firebase-test');
3 | require('./js/generator-test');
4 |
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/favicon.ico
--------------------------------------------------------------------------------
/lib/init/AWS/.ebextensions/nodecommand.config:
--------------------------------------------------------------------------------
1 | option_settings:
2 | aws:elasticbeanstalk:container:nodejs:
3 | NodeCommand: "npm start"
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/styles/style.css:
--------------------------------------------------------------------------------
1 | .card {
2 | margin: 15px;
3 | }
4 |
5 | .container {
6 | text-align: center;
7 | }
8 |
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/favicon.ico
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/img/forge-144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/img/forge-144.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/img/forge-196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/img/forge-196.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/img/forge-384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/img/forge-384.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/img/forge-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/img/forge-48.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/build/img/forge-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/react-pwa/build/img/forge-96.png
--------------------------------------------------------------------------------
/postinstall.js:
--------------------------------------------------------------------------------
1 | console.log('\nThank you for downloading the Forge! 🔥 🔥 🔥\n');
2 | console.log('For help on getting started, run forge -h\n');
3 |
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/forge-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/forge-bg.jpg
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/theForge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/theForge.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/img/forge-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/img/forge-48.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/img/forge-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/img/forge-96.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/chromeDevTools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/chromeDevTools.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/img/forge-144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/img/forge-144.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/img/forge-196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/img/forge-196.png
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/build/img/forge-384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/beginners-guide/build/img/forge-384.png
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Bold.woff
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Bold.woff2
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Light.woff
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Thin.woff
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Thin.woff2
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/images/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/images/icons/icon-128x128.png
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/images/icons/icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/images/icons/icon-144x144.png
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/images/icons/icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/images/icons/icon-152x152.png
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/images/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/images/icons/icon-192x192.png
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/images/icons/icon-256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/images/icons/icon-256x256.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | # Elastic Beanstalk Files
4 | .elasticbeanstalk/*
5 | !.elasticbeanstalk/*.cfg.yml
6 | !.elasticbeanstalk/*.global.yml
7 |
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | # Elastic Beanstalk Files
4 | .elasticbeanstalk/*
5 | !.elasticbeanstalk/*.cfg.yml
6 | !.elasticbeanstalk/*.global.yml
7 |
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Light.woff2
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Medium.woff
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Medium.woff2
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Regular.woff
--------------------------------------------------------------------------------
/lib/templates/beginners-guide/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | # Elastic Beanstalk Files
4 | .elasticbeanstalk/*
5 | !.elasticbeanstalk/*.cfg.yml
6 | !.elasticbeanstalk/*.global.yml
7 |
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/build/fonts/roboto/Roboto-Regular.woff2
--------------------------------------------------------------------------------
/lib/templates/starter-pwa/images/template-progressive-web-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/forgepwa/the_forge/HEAD/lib/templates/starter-pwa/images/template-progressive-web-app.png
--------------------------------------------------------------------------------
/lib/templates/react-pwa/client/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from 'react-dom';
3 |
4 | import App from './App.jsx';
5 | import styles from "./app.scss";
6 |
7 | render(
6 | Please enjoy the Forge!
10 |36 |
7 |
8 |
21 |
22 |
32 |
33 |
37 |
38 |
22 |
29 | The term Progressive Web Application (PWA) refers to a collection of paradigms and best practices for making a website or web application that functions similarly to a native mobile application.
31 |All Progressive Web Apps are:
32 |Progressive Web Apps need to have the following properties:
43 |Here is a quick guide to get you familiar with what's going on in the browser and codebase we just forged for you.
56 |In Chrome, open the developers tools with Cmd + Option + J (Mac) or Ctrl + Shift + J (Windows).
58 |Navigate to the "Application" tab in the dev tools. On the left hand side, under the Application sub menu, click on "Service Workers".
60 |
61 | Click on "Unregister" to remove the service worker that was installed when you loaded this HTML page. Refreshing the page should automatically reinstall the service worker.
64 |If you open up the directory we forged for you, you'll see a "client" folder. In that folder, there is a file named "sw.js". This file is your service worker.
66 |Back in the Application tab of dev tools, you can find a section labeled "Cache". Click on "Cache Storage" and select "beginners-guide" to see the cached files. For now, there is only one HTML file and one CSS file. Your service workers can cache up to 30 MB of files (depending on your browser)!
68 |Just under the "Service Workers" on the Application tab, click the "Clear Storage" option. At the bottom, you can click "Clear site data" to both clear all cached files and unregister your service workers.
70 |Try turning off your WiFi and refreshing the page. Notice that you can still navigate the site. This is because of the service workers in sw.js! If you deployed using AWS, you'll have to configure HTTPS routing and obtain an SSL certificate to enable this feature.
75 | Service Worker Cache Information 76 |If you'd like to learn more about PWAs, check out these links:
80 | 87 |
90 |