Breethe is a Progressive Web App built by simplabs. We build custom web and mobile solutions for our clients to rely on.
Improving Understanding of Air Quality Across the World
Breethe allows instant access to up to date air quality data for locations
across the world. Pollution and global warming are getting worse, rather than better, and it affects everyone's daily lives - easily accessible data on how bad things are might help to raise attention and awareness.
The data is retrieved from the openaq API - be sure to check that project out!
Breethe is built with Glimmer.js, the lightning fast UI components library backed by Ember.js' rendering engine Glimmer VM. The data layer is based on Orbit.js and uses json:api to communicate with the server. Styles are compiled with css-blocks.
We built Breethe for maximum efficiency and performance. The main JS bundle weighs in at just over 50KB and we use server-side-prerendering to provide users with a meaningful response already while they wait for the app to start. Of course the app is functional offline, using a Service Worker and IndexedDB via Orbit.js.
This project is still in a relatively early stage and there are likely still bugs and there is definitely lots of room for even more improvement. If you run into any problems, would like to give feedback or help improve this, please reach out on github!
You will need the following things properly installed on your computer.
git clone firstname.lastname@example.org:simplabs/breethe-client.git
Running / Development
- Visit your app at http://localhost:4200.
ember build --environment production(production)
ember test --server(unit tests)
API_HOST=http://localhost:3001 ember b && yarn test-integration(integration tests using puppeteer)
Further Reading / Useful Links
Breethe is developed by and © simplabs GmbH and contributors. While we invite everyone to use this for inspiration and reference, we do not grant a license to reuse or redistribute this in any form.
If you would like to use this for educational or charitable purposes, please reach out at email@example.com