Welcome! This is a community-maintained fork of Notifee, officially recommended by Invertase as the drop-in replacement for @notifee/react-native. Contributions are welcome — but this is a single-maintainer project with no SLA, so please be patient with reviews.
- Bugs — open an issue using the Bug Report template first. Do not send PRs for bugs that haven't been triaged.
- Features — open a Feature Request first to discuss scope. Unsolicited feature PRs may be closed.
- Questions — use Discussions Q&A, not issues.
- Security — use private vulnerability reporting, never public issues.
This fork actively develops react-native-notify-kit with both bug fixes and new features. Most changes — fixes, new APIs, behavior improvements — live in the React Native bridge layer (packages/react-native/), because that's where the public API surface and the platform-specific glue code sit.
Rationale: keeping NotifeeCore (the native engine in android/ and ios/) minimally changed preserves API compatibility with the original @notifee/react-native and makes the fork easier to audit against upstream history.
However, since the upstream Notifee repository was archived by Invertase in April 2026, NotifeeCore will no longer receive updates from upstream. Modifications to the core are therefore fully allowed when the bridge layer isn't the right place — for example:
- Bug fixes in core notification logic
- New features that require native engine changes (new notification styles, new Android/iOS platform APIs, new trigger types)
- Security fixes
- Support for new Android/iOS platform requirements
PRs that modify NotifeeCore should:
- Explain in the PR description why the change belongs in the core rather than the bridge
- Be as focused as possible — one logical change per PR
- Include manual device verification (platform, OS version, device model)
- Update the relevant section of the CHANGELOG
packages/react-native/— TypeScript bridge, validators, types (the npm-published package)android/— NotifeeCore Android (Java)ios/— NotifeeCore iOS (Objective-C)apps/smoke/— React Native 0.84 smoke test app for manual testing- Monorepo managed with Yarn 4 + Lerna
- Node >= 22
- Yarn 4.6.0 (corepack-managed)
- Java 17
- Xcode 15+ (iOS)
- Android SDK with API 35
yarn install
yarn build:all # Build everything (native core + TypeScript)yarn test:all # Jest + Android JUnityarn smoke:start # Start Metro bundler
yarn smoke:android # Run on Android device/emulator
yarn smoke:ios # Run on iOS simulatoryarn build:rn:watchFor local linking into a consumer app, use yalc.
- All PRs must pass
yarn test:all - New bridge functionality requires accompanying Jest tests in
packages/react-native/__tests__/ - For native bridge changes, manual verification on a real device is strongly preferred — note the platform and device tested in the PR description
Use Conventional Commits format:
<type>(<scope>): <subject>
Types: feat, fix, docs, chore, refactor, test, build, ci
Scope is optional but encouraged for platform-specific changes: android, ios
Rules: imperative mood, lowercase, no trailing period.
Examples:
fix(android): handle null context in NotificationAlarmReceiverfeat(ios): add setNotificationConfig opt-out flagdocs: update migration guide
- Fork the repo and create a branch from
dev(notmain) - Branch naming:
fix/<short-description>orfeat/<short-description> - Keep PRs focused — one logical change per PR
- Update
CHANGELOG.mdunder the[Unreleased]section with a brief entry - Run
yarn format:all && yarn validate:allbefore pushing - PRs must pass CI checks (lint, type check, Jest, JUnit)
- Be patient — review may take days or weeks depending on maintainer availability
- TypeScript/JavaScript — ESLint 9 flat config + Prettier 3 (single quotes, trailing commas, 100 char width, 2-space indent). Run
yarn format:allandyarn validate:allbefore submitting. - Kotlin (Android bridge) — standard Kotlin conventions, no specific linter enforced.
- Objective-C++ (iOS bridge) — Google style via clang-format. Run
yarn format:rn:ios.
This project is licensed under Apache-2.0, inherited from upstream Notifee. By contributing, you agree that your contributions are licensed under Apache-2.0.
No CLA or DCO sign-off is currently required.