⭐️ Star us on GitHub — it helps!
iPWA
Create isomorphic progressive web/native app monorepos which you can deploy in the cloud with ease.
Salient Features
- Frontend in React
- Backend in Node
- Native in Expo
- Isomorphic Web Apps
- Progressive Web Apps
- Unit testing using Jest
- Code coverage reports using Codecov
- Regression testing using Cypress, Puppeteer & Percy
- Docker containers
- Helm charts deployable in a Kubernetes Cluster
- Fully automated pipeline using Github actions
- Deployable in Dockerhub and Github Container Registry
- Deployable in Google Container Registry using Terraform(WIP)
- Deployable in npm and Github Package Register as npm package.
- Integrated with Google Analytics
- Integrated with Sentry
How this works
All you need to do is spin up a new project, sign up to a few providers, set the tokens and secrets correctly and the rest is all magic. When you push code to master, it will just be deployed everywhere in 10 minutes after a series of checks.
Setup Project
- Install ipwa
npm i -g ipwa
- Spawn a new ipwa app.
ipwa my-app
-
You need to sign up for: Codecov, Cypress, Percy, Dockerhub, Heroku, Firebase and npm and get the respective tokens.
-
Set the environment secrets in Github.
-
Push
Run locally normally
Make sure npm dependencies are installed.
npm run dev
in one shell,
npm run nodemon
in another.
Run locally as a docker container
- Set the following environment variables locally.
npm run build-docker
Run locally as a helm app
Make sure minikube and helm are installed.
Run locally:
npm run build:helm
npm run build:helm:uninstall
Run unit tests locally
npm run test
Setup Github actions
Set up the secrets given in the sections below.
Setup Codecov
- Sign up in Codecov and integrate it with your project.
- Set the following environment secrets.
Run locally:
npm run test:codecov
Run in CI: See workflow file.
Setup Cypress
- Sign up in Cypress and integrate it with your project.
- Set the following environment secrets.
CYPRESS_PROJECT_ID
CYPRESS_TOKEN
Run locally:
npm run test:cypress:run
Run in CI: See workflow file.
Setup Percy
- Sign up in Percy and integrate it with your project.
- Set the following environment secrets.
Run locally:
npm run test:percy
Run in CI: See workflow file.
Setup Puppeteer
Run locally:
npm run test:puppeteer
Run in CI: See workflow file.
Setup Heroku Deployment
Run locally:
npm run release:heroku
Run in CI: See workflow file.
Setup Firebase deployment
- Sign up in Firebase and integrate it with your project.
- Set the following environment variables locally.
Run locally:
npm run release:firebase
Run in CI: See workflow file.
Setup Github Container Registry release
Run locally: -
Run in CI: See workflow file.
Setup Dockerhub Container Registry release
Run locally: -
Run in CI: See workflow file.
Setup npm publishing
- Sign up in npm and integrate it with your project.
- Set the following environment secret.
Run locally: -
Run in CI: See workflow file.
Setup Expo
Run locally:
expo:start
expo:android
expo:ios
expo:web
expo:eject