diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdcfbcc..54dad53 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,23 @@
# Changelog
+## [1.0.0-rc] - 2026-05-27
+
+> **First release candidate for the 1.x line.** From `1.0.0` forward, the library follows strict semver: breaking changes ship only on a major version bump. Three surfaces are explicitly frozen for the 1.x line: (1) the public TypeScript surface (named exports from `src/index.tsx`), (2) the TurboModule Codegen spec (`src/NativeBackgroundLocation.ts`), and (3) the native event names emitted via `NativeEventEmitter` (`onLocationUpdate`, `onLocationError`, `onLocationWarning`, `onNotificationAction`, `onGeofenceTransition`). No native (Android/iOS) code changes and no public TypeScript API changes since `0.17.0` this release candidate exists to declare API stability, not to introduce behavior.
+
+### Changed
+
+- README rewritten for the 1.0 launch: leaner top-level navigation, clearer install/setup path, and consolidated examples. No content was removed in a way that affects behavior; the deep-dive material remains addressable via [documentation](https://gabriel-sisjr.github.io/react-native-background-location) referenced from the README.
+- `package.json` version bumped from `0.17.0` to `1.0.0-rc`. No dependency, peer-dependency, or build-config changes.
+
+### Notes
+
+- **No public API or native behavior changed since `0.17.0`.** This RC is a stability declaration only -- consumers on `0.17.0` can upgrade with zero code changes.
+- For migration context from earlier pre-1.0 versions, see the breaking-change history already documented in this file: `0.17.0` (iOS default `LocationActivityType` changed from `.automotiveNavigation` to `.other`; auto-resume in `didPauseLocationUpdates`), `0.14.0` (default export removed from `src/index.tsx`; named exports only), and `0.12.0` (`PermissionState` restructured to the granular shape; flat `notification*` fields on `TrackingOptions` consolidated into `notificationOptions`).
+- The 1.x line will continue to maintain backward compatibility within the major; any breaking change requires a `2.0.0` bump.
+
## [0.17.0] - 2026-05-24
-> ⚠️ **Behavioral change (iOS default activity type):** apps relying on the previous `.automotiveNavigation` default may observe pause/auto-resume timing differences. See the [Migrating from v0.16.0 to v0.17.0](README.md#migrating-from-v0160-to-v0170) section in the README. No API or type changes.
+> ⚠️ **Behavioral change (iOS default activity type):** apps relying on the previous `.automotiveNavigation` default may observe pause/auto-resume timing differences. See the [Migrating from v0.16.0 to v0.17.0](https://gabriel-sisjr.github.io/react-native-background-location/docs/migration/v0-17-0) section in the DOCS. No API or type changes.
### Added
diff --git a/README.md b/README.md
index 9642823..cca0461 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-# @gabriel-sisjr/react-native-background-location
+# react-native-background-location
+
+Background GPS tracking and geofencing for React Native, built on the New Architecture.
[](https://www.npmjs.com/package/@gabriel-sisjr/react-native-background-location)
[](https://www.npmjs.com/package/@gabriel-sisjr/react-native-background-location/v/beta)
@@ -15,589 +17,69 @@


-A cross-platform React Native library for background location tracking built on TurboModules (New Architecture). Tracks user location reliably on both Android and iOS even when the app is minimized, with persistent storage, crash recovery, and platform-native behavior.
+A TurboModule for the React Native New Architecture. Drives a foreground service on Android and `CLLocationManager` on iOS, persists every fix to Room and Core Data, and ships native geofencing plus crash recovery so trips survive process death.
**[Read the full documentation](https://gabriel-sisjr.github.io/react-native-background-location/)**
-
-
-## Table of Contents
-
-- [Features](#features)
-- [Installation](#installation)
-- [Quick Start](#quick-start)
-- [Hooks](#hooks)
-- [API Reference](#api-reference)
-- [Types](#types)
-- [Enums](#enums)
-- [Notification Customization](#notification-customization)
-- [Documentation](#documentation)
-- [Platform Support](#platform-support)
-- [Contributing](#contributing)
-- [License](#license)
-
## Features
-- Cross-platform background location tracking (Android and iOS)
-- Real-time event-driven location updates on both platforms
-- Crash recovery with automatic session restoration (WorkManager on Android, significant location monitoring on iOS)
-- Configurable accuracy levels and update intervals for battery efficiency
-- Distance filtering and callback throttling
-- Session-based tracking organized by trip IDs
-- Persistent storage: Room Database (Android) / Core Data (iOS)
-- Full notification customization on Android: icons, colors, action buttons, dynamic updates
-- Static notification defaults via AndroidManifest or convention drawables (Android)
-- Android 14/15 compliance (foreground service type, timeout handling)
-- Provider abstraction with Google Play Services primary and fallback provider (Android)
-- CLLocationManager with WhenInUse and Always authorization levels (iOS)
-- Foreground-only mode (no background permission required)
-- Fully typed TypeScript API with unified cross-platform hooks
+- Background tracking with configurable accuracy and distance filter
+- Native geofencing (GeofencingClient on Android, CLCircularRegion on iOS)
+- Persistent location storage (Room on Android, Core Data on iOS)
+- Crash recovery via WorkManager and significant location monitoring
+- React hooks: `useBackgroundLocation`, `useLocationPermissions`, `useLocationUpdates`, `useLocationTracking`
+- Expo config plugin for managed workflows
-## Installation
+## Requirements
-```sh
-npm install @gabriel-sisjr/react-native-background-location
-# or
-yarn add @gabriel-sisjr/react-native-background-location
-```
-
-### Android Setup
-
-Add the required permissions to `android/app/src/main/AndroidManifest.xml`:
-
-```xml
-
-
-
-
-
-
-
-```
+| Requirement | Version |
+| -------------- | ---------------------------------- |
+| React Native | >=0.73 (New Architecture required) |
+| iOS | >=16.0 |
+| Android minSdk | 24 |
-> On Android 11+, background location must be requested **separately** from foreground permissions. See the [Quick Start Guide](https://gabriel-sisjr.github.io/react-native-background-location/docs/getting-started/quick-start) for the full permission flow and the [Installation Guide](https://gabriel-sisjr.github.io/react-native-background-location/docs/getting-started/installation) for detailed setup in existing apps.
-
-### iOS Setup
+## Installation
-1. Add the following keys to your `Info.plist`:
+### Bare React Native (recommended)
-```xml
-NSLocationWhenInUseUsageDescription
-We need your location to track your trips.
-NSLocationAlwaysAndWhenInUseUsageDescription
-We need your location in the background to continue tracking your trips.
+```bash
+yarn add @gabriel-sisjr/react-native-background-location
+cd ios && pod install
```
-2. Enable the **Location updates** Background Mode in your Xcode project under Signing & Capabilities.
-
-3. Run `pod install` in your `ios/` directory.
-
-> **iOS:** Unlike Android, iOS does not use a foreground notification for background tracking. Instead, the system shows a blue status bar indicator when the app is using location in the background. See the [iOS Setup Guide](https://gabriel-sisjr.github.io/react-native-background-location/docs/getting-started/ios-setup) for full details and App Store compliance requirements.
+Autolinking handles Android manifest merging and iOS pod registration. Bare iOS apps must still add `NSLocationWhenInUseUsageDescription`, `NSLocationAlwaysAndWhenInUseUsageDescription`, `NSLocationAlwaysUsageDescription`, and a `UIBackgroundModes` entry containing `location` to their `Info.plist`. See the [iOS setup guide](https://gabriel-sisjr.github.io/react-native-background-location/docs/getting-started/ios-setup) for full details.
## Quick Start
-```typescript
+```tsx
import {
- useLocationPermissions,
- useBackgroundLocation,
+ startTracking,
useLocationUpdates,
- LocationAccuracy,
} from '@gabriel-sisjr/react-native-background-location';
-function TrackingScreen() {
- const { permissionStatus, requestPermissions } = useLocationPermissions();
- const { startTracking, stopTracking, isTracking } = useBackgroundLocation();
- const { locations, lastLocation } = useLocationUpdates({
- onLocationUpdate: (loc) => console.log('New:', loc.latitude, loc.longitude),
- });
-
- if (!permissionStatus.hasAllPermissions) {
- return ;
- }
+function App() {
+ const { locations } = useLocationUpdates();
return (
-
- Status: {isTracking ? 'Tracking' : 'Stopped'}
- Points: {locations.length}
- {lastLocation && Last: {lastLocation.latitude}, {lastLocation.longitude}}
-
+