# react-native-nfc-kit > Modern, typed NFC for React Native and Expo. New Architecture native, Swift and Kotlin, sessions that cannot leak. - [react-native-nfc-kit](https://react-native-nfc-kit.mintlify.app/index.md): Modern, typed NFC for React Native and Expo. New Architecture native, Swift and Kotlin, sessions that cannot leak. - [Installation](https://react-native-nfc-kit.mintlify.app/installation.md): Install into an Expo or a bare React Native project, and get a development build that can actually see a tag. - [Quickstart](https://react-native-nfc-kit.mintlify.app/quickstart.md): From an empty project to a working scan screen: read a tag, write a tag, and handle the four errors that are ordinary life. - [Sessions](https://react-native-nfc-kit.mintlify.app/concepts/sessions.md): The three ways to get a tag, which to reach for, and why a session that closes itself is the whole point. - [Tags](https://react-native-nfc-kit.mintlify.app/concepts/tags.md): Narrowing a tag to a technology, what each one gives you, the platform facets, and how long a tag stays valid. - [Setup](https://react-native-nfc-kit.mintlify.app/setup/overview.md): Most NFC support questions are setup questions. One page per use case, with both the Expo plugin option and the exact plist and manifest XML for a bare project. - [Reading and writing NDEF](https://react-native-nfc-kit.mintlify.app/setup/ndef.md): The default setup: the entitlement, the usage description and the manifest a tag read needs. - [Sending APDUs (ISO 7816)](https://react-native-nfc-kit.mintlify.app/setup/iso7816.md): DESFire, JavaCard applets and transit cards, and the AID declaration iOS will not deliver a tag without. - [Reading FeliCa](https://react-native-nfc-kit.mintlify.app/setup/felica.md): Suica, PASMO and Octopus, and the system codes iOS filters on at the radio. - [MIFARE Classic](https://react-native-nfc-kit.mintlify.app/setup/mifare-classic.md): Why it is impossible on iOS, chipset-dependent on Android, and what to use instead. - [Background tag reading](https://react-native-nfc-kit.mintlify.app/setup/background-reading.md): Handling a tag tapped while the app is closed, and the Android 17 permission that decides whether it arrives. - [Card emulation (HCE)](https://react-native-nfc-kit.mintlify.app/setup/hce.md): Answering a terminal as though the phone were a card, and holding it silent until the user confirms. - [Reading an Apple Wallet pass](https://react-native-nfc-kit.mintlify.app/setup/vas.md): The till side of Value Added Service, and the entitlement Apple grants case by case. - [Web NFC](https://react-native-nfc-kit.mintlify.app/setup/web.md): The same API in a browser, what a browser can actually do, and what it refuses rather than guessing. - [Bare React Native](https://react-native-nfc-kit.mintlify.app/setup/bare-react-native.md): Installing without the Expo SDK, and writing by hand what prebuild would have written. - [The NDEF codec](https://react-native-nfc-kit.mintlify.app/ndef.md): Building and parsing NDEF messages, with no native dependency, in a bundler or in Node. - [Tag protocols](https://react-native-nfc-kit.mintlify.app/protocols.md): ISO 7816, ISO 15693, FeliCa and NTAG/Ultralight as plain TypeScript over one transceive primitive. - [React hooks](https://react-native-nfc-kit.mintlify.app/react.md): useNfcAvailability, useNfcScan and useNfcTagStream — and the three mistakes they exist to prevent. - [Error reference](https://react-native-nfc-kit.mintlify.app/errors.md): Every NfcErrorCode, what causes it, and what to do about it. - [Device matrix](https://react-native-nfc-kit.mintlify.app/device-matrix.md): A reproducible checklist for validating this library on a device, tag type or chipset. - [Where the antenna is, and what the settings allow](https://react-native-nfc-kit.mintlify.app/antenna-location.md): Two things only the device can answer: where its NFC antenna physically sits, and whether NFC is restricted to an unlocked screen. - [Migrating from react-native-nfc-manager](https://react-native-nfc-kit.mintlify.app/migrating-from-nfc-manager.md): An API equivalence table, the six differences that will change your code, and a worked example.