All Projects → RemeJuan → progressive-web-app-starter

RemeJuan / progressive-web-app-starter

Licence: other
Preact based starter kit for making a Progressive Web App (PWA).

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
EJS
674 projects

Projects that are alternatives of or similar to progressive-web-app-starter

Preact Minimal
🚀 Minimal preact structure
Stars: ✭ 136 (+615.79%)
Mutual labels:  preact, progressive-web-app, starter-kit
Preact Starter
Webpack3 boilerplate for building SPA / PWA / offline front-end apps with Preact
Stars: ✭ 384 (+1921.05%)
Mutual labels:  preact, progressive-web-app, starter-kit
PreactSimpleStarter
PWA Simple Starter with Preact, Preact-mdl and Webpack2 🔥🔥🔥
Stars: ✭ 65 (+242.11%)
Mutual labels:  preact, progressive-web-app, starter-kit
Colors App
🎨 A PWA for copying values from popular color palettes. Supports HEX, RGB, and HSL formats.
Stars: ✭ 90 (+373.68%)
Mutual labels:  preact, progressive-web-app
Whack A Mole
Offline-first arcade game for children
Stars: ✭ 40 (+110.53%)
Mutual labels:  preact, progressive-web-app
Cloudflare Worker Preact Pwa
Cloudflare worker running a Preact Progressive Web App
Stars: ✭ 57 (+200%)
Mutual labels:  preact, progressive-web-app
Preact Cli
😺 Your next Preact PWA starts in 30 seconds.
Stars: ✭ 4,510 (+23636.84%)
Mutual labels:  preact, starter-kit
angular-pwa-starter
Lightweight starter 'ng init' with added app shell features (sw-precache, web app manifest).
Stars: ✭ 22 (+15.79%)
Mutual labels:  manifest, starter-kit
Vaporboy
Gameboy / Gameboy Color Emulator PWA built with Preact. ⚛️ Powered by wasmBoy. 🎮Themed with VaporWave. 🌴🐬
Stars: ✭ 182 (+857.89%)
Mutual labels:  preact, progressive-web-app
Awesome Meta And Manifest
⚡ Awesome collection of meta tags & manifest properties.
Stars: ✭ 499 (+2526.32%)
Mutual labels:  manifest, progressive-web-app
Service Worker Detector
This extension detects if a website registers a Service Worker.
Stars: ✭ 124 (+552.63%)
Mutual labels:  manifest, progressive-web-app
Slidecontrol
Slidecontrol enables you to control your slides with your phone 📱
Stars: ✭ 30 (+57.89%)
Mutual labels:  preact, progressive-web-app
Fuel Price
⛽ Check fuel prices daily in most of the states in India
Stars: ✭ 20 (+5.26%)
Mutual labels:  preact, progressive-web-app
Preact Redux Typescript Rollup Starter
Smallest "React-like" + Redux starter EVER - 13KB min&gzip
Stars: ✭ 24 (+26.32%)
Mutual labels:  preact, starter-kit
Pwa Asset Generator
Automates PWA asset generation and image declaration. Automatically generates icon and splash screen images, favicons and mstile images. Updates manifest.json and index.html files with the generated images according to Web App Manifest specs and Apple Human Interface guidelines.
Stars: ✭ 1,787 (+9305.26%)
Mutual labels:  manifest, progressive-web-app
Jfa Pwa Toolkit
⚡️ PWA Features to Any Website (very Fast & Easy)
Stars: ✭ 245 (+1189.47%)
Mutual labels:  manifest, progressive-web-app
java-pwa
Progressive Web Apps in Java
Stars: ✭ 48 (+152.63%)
Mutual labels:  manifest, progressive-web-app
fly-kit-preact
A starter kit for building offline / SPA / PWA apps with Preact
Stars: ✭ 28 (+47.37%)
Mutual labels:  preact, starter-kit
Vue Pwa Asset Generator
PWA asset generator perfect with VueJS framework (but useful for all PWA!)
Stars: ✭ 97 (+410.53%)
Mutual labels:  manifest, progressive-web-app
browser-extension
Browser Extension Template with ESbuild builds, support for React, Preact, Typescript, Tailwind, Manifest V3/V2 support and multi browser build including Chrome, Firefox, Safari, Edge, Brave.
Stars: ✭ 535 (+2715.79%)
Mutual labels:  preact, starter-kit

Progressive Web App Starter Kit

A simple style-less scaffold for quickly starting up new react apps.

This application is already configured with offline and PWA support, with Redux Persist all state is automatically stored to the users machine in either IndexDB or LocaStorage and restored on refresh.

Manifest and ServiceWorker are all generated by WebPack, automatically all assets run through webpack will be added to the cache manifest, so images, js, css, etc.

CSS Modules is configured with css class minification, eg:

import React from 'react';

import styles from './styles.scss';

const comp = () => (<div className="this-is-a-really-long-class-name" />);

becomes:

<div> class="b_d"></div>

For simplicity, webpack is setup to exclude SASS files from modules, so for using global styles, like a framework or grid system, you can simply include these in any SASS file, src/core/app.sass; SASS files should not be used for local styles or component styles.

Setup

  • Clone down the repo
  • rim -rf .git
  • git init
  • git remote add origin NEW-REPO-PATH
  • yarn install

Config

config/config.js contains most of what you would need to handle the configuration.

Here you would add the application friendly title, URL and PWA config.

HOC's

Higher Order Components are located in src/core/hoc

AsyncLoader

An async loader is included for use with router based bundling, an example of usage can be seen commented out in src/core/router.js.

This will cause webpack to split the JS into additional bundles beyond simply app and vendor, when used you will also see x.hash.js, where x is a number representing a route.

Each route loaded async will get its unique code split into a separate bundle file which will be loaded when that route is accessed ensuring the main bundle only contains globally required code and that for your main route(s).

It does verge off a bit from true SPA, but available for use at your discretion. If however your app is locked down to authorized users then, initial performance can be gained by having the additional routes only loaded to users browsers after they are logged in.

Bundle

This is setup as a react app, however it uses Preact and Preact-Compat for a more optimal bundle size, I however do not know exactly how much of a drop in replacement Preact really is, which is why I set it up like this, if you run into any issues you can simply install react and react-dom, however I felt this an optimal route as it takes nearly 60% off the vendor bundle size.

Testing

Testing is handled by Jest, testing commands are:

  • yarn test
  • yarn test:watch
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].