Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Bumps [url-parse]( from 1.5.1 to 1.5.10.
- [Release notes](
- [Commits](unshiftio/url-parse@1.5.1...1.5.10)

- dependency-name: url-parse
  dependency-type: indirect

Signed-off-by: dependabot[bot] <>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

oss image

Sh**t! I Smoke

Know how many cigarettes you smoke based on the pollution of your location

Github Actions david-dm codeclimate spectrum

app-store google-play

screenshot-1 screenshot-2 screenshot-3 screenshot-4 screenshot-5

📱 Try it on Expo

This app is bootstrapped with Expo, you can download the Expo app on the App Store or Play Store, and enter the url provided below. We have 2 release channels:

Release Channel Version Description Url
Production v1.8.10 Same version as Sh**t! I Smoke on the App Store and Play Store.
Staging v1.8.10 Latest version currently in development: newest features, may contain bugs.

🔨 Build it yourself

Run the following commands:

# Clone this repo
git clone && cd shoot-i-smoke
# Install dependencies
yarn install

# Copy the file that contains secrets
cp app.example.json app.json

# Run the app with Expo
yarn start

The Expo packager will show, and you can either:

  • install the Expo app, scan the displayed QR code, and run the app on your mobile phone directly.
  • open the Android simulator.
  • open the iOS simulator.

Use your own API tokens

All required API tokens are already pre-filled in app.example.json. If you want to use your own API tokens, then in app.json, replace all the placeholders with the ones you generated for yourself. For those that are optional, you can just put null (without quotes).

Service Url Comments
Sh**t! I Smoke Backend Required. Pre-filled with a staging token.
World Air Quality Index Required. You can use the public one in app.example.json for development.
Google Maps for iOS Optional in development.
Google Maps for Android Optional in development.
Sentry Bug Tracking Optional.
Amplitude Analytics Optional. Note: we never track PII.

🙋 Contribute

If you find a bug, or if you have an idea for this app, please file an issue here. We really appreciate feedback and inputs!

🇬🇧🇫🇷🇪🇸🇨🇳 You may also contribute with translations with our online tool POEditor. If you need context for some terms, here are some screenshots.

For code contribution, the codebase heavily relies on functional programming principles via the fp-ts library. The codebase itself is quite simple, so even if you're beginner to functional programming, it shouldn't be hard to follow along. You can start with these easy tasks.

More information on contributing here.

🔬 Tests

The codebase unfortunately isn't much covered by tests. Check out the *.spec.ts files in the project for tests. If you're interested to help out, have a look at issue #19.

📰 License

GPL-3.0. See LICENSE file for more information.


Created with pride by Marcelo & Amaury.

A huge thanks to the following contributors for their amazing work:

Sh**t! I Smoke - See your city's air pollution measured in daily cigarettes. | Product Hunt Embed