native-update 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/Readme.md +28 -14
  2. package/android/manifest-additions.xml +28 -0
  3. package/android/src/main/AndroidManifest.xml +3 -7
  4. package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundNotificationManager.kt +21 -13
  5. package/android/src/main/java/com/aoneahsan/nativeupdate/LiveUpdatePlugin.kt +196 -29
  6. package/android/src/main/java/com/aoneahsan/nativeupdate/NativeUpdatePlugin.kt +21 -36
  7. package/cli/AGENTS.md +15 -1
  8. package/cli/CLAUDE.md +15 -1
  9. package/cli/commands/backend-create.js +56 -15
  10. package/cli/commands/bundle-create.js +39 -7
  11. package/cli/commands/monitor.js +72 -51
  12. package/cli/index.js +10 -24
  13. package/cli/package.json +11 -3
  14. package/dist/esm/app-review/app-review-manager.js +0 -1
  15. package/dist/esm/app-review/index.js +0 -1
  16. package/dist/esm/app-review/platform-review-handler.js +0 -1
  17. package/dist/esm/app-review/review-conditions-checker.js +0 -1
  18. package/dist/esm/app-review/review-rate-limiter.js +0 -1
  19. package/dist/esm/app-review/types.js +0 -1
  20. package/dist/esm/app-update/app-update-checker.js +0 -1
  21. package/dist/esm/app-update/app-update-installer.d.ts +1 -0
  22. package/dist/esm/app-update/app-update-installer.js +19 -8
  23. package/dist/esm/app-update/app-update-manager.js +0 -1
  24. package/dist/esm/app-update/app-update-notifier.js +0 -1
  25. package/dist/esm/app-update/index.js +0 -1
  26. package/dist/esm/app-update/platform-app-update.js +12 -3
  27. package/dist/esm/app-update/types.js +0 -1
  28. package/dist/esm/background-update/background-scheduler.js +0 -1
  29. package/dist/esm/background-update/index.js +0 -1
  30. package/dist/esm/background-update/notification-manager.js +0 -1
  31. package/dist/esm/config/support.js +0 -1
  32. package/dist/esm/core/analytics.d.ts +13 -0
  33. package/dist/esm/core/analytics.js +15 -1
  34. package/dist/esm/core/cache-manager.js +0 -1
  35. package/dist/esm/core/config.d.ts +0 -15
  36. package/dist/esm/core/config.js +0 -4
  37. package/dist/esm/core/errors.d.ts +1 -0
  38. package/dist/esm/core/errors.js +1 -1
  39. package/dist/esm/core/event-emitter.d.ts +0 -3
  40. package/dist/esm/core/event-emitter.js +8 -3
  41. package/dist/esm/core/logger.js +0 -1
  42. package/dist/esm/core/performance.js +0 -1
  43. package/dist/esm/core/plugin-manager.js +3 -1
  44. package/dist/esm/core/security.d.ts +11 -0
  45. package/dist/esm/core/security.js +27 -1
  46. package/dist/esm/definitions.d.ts +0 -11
  47. package/dist/esm/definitions.js +0 -1
  48. package/dist/esm/index.d.ts +3 -2
  49. package/dist/esm/index.js +3 -1
  50. package/dist/esm/live-update/bundle-manager.d.ts +8 -0
  51. package/dist/esm/live-update/bundle-manager.js +20 -1
  52. package/dist/esm/live-update/certificate-pinning.js +0 -1
  53. package/dist/esm/live-update/delta-processor.d.ts +1 -1
  54. package/dist/esm/live-update/delta-processor.js +3 -1
  55. package/dist/esm/live-update/download-manager.js +9 -2
  56. package/dist/esm/live-update/rollout-checker.d.ts +1 -1
  57. package/dist/esm/live-update/rollout-checker.js +5 -6
  58. package/dist/esm/live-update/update-manager.js +0 -1
  59. package/dist/esm/live-update/version-manager.d.ts +0 -12
  60. package/dist/esm/live-update/version-manager.js +0 -68
  61. package/dist/esm/plugin.js +69 -43
  62. package/dist/esm/security/crypto.js +11 -7
  63. package/dist/esm/security/validator.js +0 -1
  64. package/dist/esm/types/rollout.d.ts +85 -0
  65. package/dist/esm/types/rollout.js +25 -0
  66. package/dist/esm/web.d.ts +8 -0
  67. package/dist/esm/web.js +148 -54
  68. package/dist/plugin.cjs.js +1 -2
  69. package/dist/plugin.esm.js +1 -2
  70. package/dist/plugin.js +2 -3
  71. package/docs/CHANGELOG.md +124 -0
  72. package/docs/CLAUDE.md +1 -1
  73. package/docs/MANUAL-TASKS.md +17 -0
  74. package/docs/MARKETING_WEBSITE_TRACKER.md +18 -2
  75. package/docs/MIGRATION.md +83 -0
  76. package/docs/PACKAGES.md +167 -0
  77. package/docs/PERFORMANCE.md +110 -0
  78. package/docs/PROJECT_COMPLETION_TRACKER.md +4 -35
  79. package/docs/README.md +0 -1
  80. package/docs/REMAINING_FEATURES.md +123 -76
  81. package/docs/ROADMAP.md +200 -120
  82. package/docs/SECURITY-IF-REPO-PUBLIC.md +232 -0
  83. package/docs/TESTING_REQUIREMENTS.md +1 -112
  84. package/docs/ai-knowledge-base/00-project-profile.md +38 -0
  85. package/docs/ai-knowledge-base/01-features.md +46 -0
  86. package/docs/ai-knowledge-base/02-routes.md +72 -0
  87. package/docs/ai-knowledge-base/03-tech-stack.md +57 -0
  88. package/docs/ai-knowledge-base/README.md +23 -0
  89. package/docs/analytics-tracking.md +37 -0
  90. package/docs/capacitor-official-plugins.md +46 -0
  91. package/docs/capawesome-plugins.md +29 -0
  92. package/docs/deployment/HOSTINGER_DEPLOY.md +75 -34
  93. package/docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md +184 -0
  94. package/docs/docs-site/plan.md +201 -0
  95. package/docs/docs-site/scope.md +127 -0
  96. package/docs/docs-site/tracker.json +235 -0
  97. package/docs/error-handling-tracking.md +37 -0
  98. package/docs/guides/testing-guide.md +15 -41
  99. package/docs/package-audit.md +41 -0
  100. package/docs/play-store/ASO-METADATA.md +5 -0
  101. package/docs/play-store/DATA-SAFETY.md +5 -0
  102. package/docs/play-store/DECLARATIONS.md +5 -0
  103. package/docs/play-store/README.md +27 -0
  104. package/docs/play-store/RELEASE-NOTES.md +99 -0
  105. package/docs/play-store/RELEASE-STEPS.md +6 -0
  106. package/docs/play-store/STORE-LISTING.md +7 -0
  107. package/docs/play-store/SUBMISSION-CHECKLIST.md +5 -0
  108. package/docs/production-readiness.md +1 -1
  109. package/docs/project-audit/2026-05-16/00-FINALIZATION-PLAN.md +123 -0
  110. package/docs/project-audit/2026-05-16/01-BATCH-PLAN.md +227 -0
  111. package/docs/project-audit/2026-05-16/02-AUDIT-FINDINGS.md +144 -0
  112. package/docs/project-audit/2026-05-16/sessions/batch-01.md +42 -0
  113. package/docs/project-audit/2026-05-16/sessions/batch-02.md +74 -0
  114. package/docs/project-audit/2026-05-16/sessions/batch-03.md +71 -0
  115. package/docs/project-audit/2026-05-16/sessions/batch-04.md +88 -0
  116. package/docs/project-audit/2026-05-16/sessions/batch-05.md +63 -0
  117. package/docs/project-audit/2026-05-16/sessions/batch-06.md +103 -0
  118. package/docs/project-audit/2026-05-16/sessions/batch-07.md +61 -0
  119. package/docs/project-audit/2026-05-16/sessions/batch-08.md +101 -0
  120. package/docs/project-audit/2026-05-16/sessions/batch-09.md +105 -0
  121. package/docs/project-audit/2026-05-16/sessions/batch-10.md +102 -0
  122. package/docs/project-audit/AUDIT-HISTORY.md +74 -0
  123. package/docs/project-audit/BATCH-PLAN.md +168 -0
  124. package/docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md +73 -0
  125. package/docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md +275 -0
  126. package/docs/project-finalization/00-tracker.json +60 -0
  127. package/docs/project-knowledge-base/01-system-overview.md +39 -30
  128. package/docs/project-knowledge-base/02-routes-pages-forms-users.md +87 -81
  129. package/docs/project-knowledge-base/03-tech-stack-modules-services.md +140 -108
  130. package/docs/project-knowledge-base/04-data-models-integrations.md +191 -254
  131. package/docs/project-knowledge-base/05-docs-corpus-inventory.md +83 -20
  132. package/docs/project-knowledge-base/06-operations-testing-legal-content.md +67 -29
  133. package/docs/project-knowledge-base/README.md +27 -14
  134. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md +81 -0
  135. package/docs/rules-tracker.md +102 -0
  136. package/docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md +116 -0
  137. package/docs/social-media-marketing/README.md +81 -0
  138. package/docs/social-media-marketing/posts-batch-01.md +613 -0
  139. package/docs/social-media-marketing/posts-batch-02.md +528 -0
  140. package/docs/social-media-marketing/whatsapp-messages-batch-01.md +458 -0
  141. package/docs/social-media-marketing/whatsapp-status-batch-01.md +355 -0
  142. package/docs/tracking/finalization-2026-05-16-tracker.json +346 -0
  143. package/docs/tracking/full-audit-tracker.json +121 -0
  144. package/docs/tracking/production-readiness-audit-tracker.json +429 -0
  145. package/ios/Plugin/BackgroundUpdate/BackgroundUpdatePlugin.swift +16 -3
  146. package/ios/Plugin/LiveUpdate/LiveUpdatePlugin.swift +71 -47
  147. package/ios/Plugin/NativeUpdatePlugin.swift +14 -9
  148. package/package.json +29 -29
  149. package/cli/node_modules/.yarn-integrity +0 -16
  150. package/cli/node_modules/commander/LICENSE +0 -22
  151. package/cli/node_modules/commander/Readme.md +0 -1148
  152. package/cli/node_modules/commander/esm.mjs +0 -16
  153. package/cli/node_modules/commander/index.js +0 -26
  154. package/cli/node_modules/commander/lib/argument.js +0 -145
  155. package/cli/node_modules/commander/lib/command.js +0 -2179
  156. package/cli/node_modules/commander/lib/error.js +0 -43
  157. package/cli/node_modules/commander/lib/help.js +0 -462
  158. package/cli/node_modules/commander/lib/option.js +0 -329
  159. package/cli/node_modules/commander/lib/suggestSimilar.js +0 -100
  160. package/cli/node_modules/commander/package-support.json +0 -16
  161. package/cli/node_modules/commander/package.json +0 -80
  162. package/cli/node_modules/commander/typings/esm.d.mts +0 -3
  163. package/cli/node_modules/commander/typings/index.d.ts +0 -884
  164. package/cli/yarn.lock +0 -8
  165. package/dist/esm/__tests__/bundle-manager.test.d.ts +0 -1
  166. package/dist/esm/__tests__/bundle-manager.test.js +0 -151
  167. package/dist/esm/__tests__/bundle-manager.test.js.map +0 -1
  168. package/dist/esm/__tests__/config.test.d.ts +0 -1
  169. package/dist/esm/__tests__/config.test.js +0 -70
  170. package/dist/esm/__tests__/config.test.js.map +0 -1
  171. package/dist/esm/__tests__/delta-processor.test.d.ts +0 -1
  172. package/dist/esm/__tests__/delta-processor.test.js +0 -77
  173. package/dist/esm/__tests__/delta-processor.test.js.map +0 -1
  174. package/dist/esm/__tests__/firestore-schema.test.d.ts +0 -1
  175. package/dist/esm/__tests__/firestore-schema.test.js +0 -74
  176. package/dist/esm/__tests__/firestore-schema.test.js.map +0 -1
  177. package/dist/esm/__tests__/integration.test.d.ts +0 -1
  178. package/dist/esm/__tests__/integration.test.js +0 -78
  179. package/dist/esm/__tests__/integration.test.js.map +0 -1
  180. package/dist/esm/__tests__/manifest-reader.test.d.ts +0 -1
  181. package/dist/esm/__tests__/manifest-reader.test.js +0 -271
  182. package/dist/esm/__tests__/manifest-reader.test.js.map +0 -1
  183. package/dist/esm/__tests__/rollout-checker.test.d.ts +0 -1
  184. package/dist/esm/__tests__/rollout-checker.test.js +0 -210
  185. package/dist/esm/__tests__/rollout-checker.test.js.map +0 -1
  186. package/dist/esm/__tests__/security-enforcement.test.d.ts +0 -1
  187. package/dist/esm/__tests__/security-enforcement.test.js +0 -95
  188. package/dist/esm/__tests__/security-enforcement.test.js.map +0 -1
  189. package/dist/esm/__tests__/security.test.d.ts +0 -1
  190. package/dist/esm/__tests__/security.test.js +0 -54
  191. package/dist/esm/__tests__/security.test.js.map +0 -1
  192. package/dist/esm/__tests__/version-manager.test.d.ts +0 -1
  193. package/dist/esm/__tests__/version-manager.test.js +0 -45
  194. package/dist/esm/__tests__/version-manager.test.js.map +0 -1
  195. package/dist/esm/app-review/app-review-manager.js.map +0 -1
  196. package/dist/esm/app-review/index.js.map +0 -1
  197. package/dist/esm/app-review/platform-review-handler.js.map +0 -1
  198. package/dist/esm/app-review/review-conditions-checker.js.map +0 -1
  199. package/dist/esm/app-review/review-rate-limiter.js.map +0 -1
  200. package/dist/esm/app-review/types.js.map +0 -1
  201. package/dist/esm/app-update/app-update-checker.js.map +0 -1
  202. package/dist/esm/app-update/app-update-installer.js.map +0 -1
  203. package/dist/esm/app-update/app-update-manager.js.map +0 -1
  204. package/dist/esm/app-update/app-update-notifier.js.map +0 -1
  205. package/dist/esm/app-update/index.js.map +0 -1
  206. package/dist/esm/app-update/platform-app-update.js.map +0 -1
  207. package/dist/esm/app-update/types.js.map +0 -1
  208. package/dist/esm/background-update/background-scheduler.js.map +0 -1
  209. package/dist/esm/background-update/index.js.map +0 -1
  210. package/dist/esm/background-update/notification-manager.js.map +0 -1
  211. package/dist/esm/config/support.js.map +0 -1
  212. package/dist/esm/core/analytics.js.map +0 -1
  213. package/dist/esm/core/cache-manager.js.map +0 -1
  214. package/dist/esm/core/config.js.map +0 -1
  215. package/dist/esm/core/errors.js.map +0 -1
  216. package/dist/esm/core/event-emitter.js.map +0 -1
  217. package/dist/esm/core/logger.js.map +0 -1
  218. package/dist/esm/core/performance.js.map +0 -1
  219. package/dist/esm/core/plugin-manager.js.map +0 -1
  220. package/dist/esm/core/security.js.map +0 -1
  221. package/dist/esm/definitions.js.map +0 -1
  222. package/dist/esm/firestore/firestore-client.d.ts +0 -109
  223. package/dist/esm/firestore/firestore-client.js +0 -264
  224. package/dist/esm/firestore/firestore-client.js.map +0 -1
  225. package/dist/esm/firestore/index.d.ts +0 -11
  226. package/dist/esm/firestore/index.js +0 -11
  227. package/dist/esm/firestore/index.js.map +0 -1
  228. package/dist/esm/firestore/manifest-reader.d.ts +0 -87
  229. package/dist/esm/firestore/manifest-reader.js +0 -294
  230. package/dist/esm/firestore/manifest-reader.js.map +0 -1
  231. package/dist/esm/firestore/schema.d.ts +0 -507
  232. package/dist/esm/firestore/schema.js +0 -73
  233. package/dist/esm/firestore/schema.js.map +0 -1
  234. package/dist/esm/index.js.map +0 -1
  235. package/dist/esm/live-update/bundle-manager.js.map +0 -1
  236. package/dist/esm/live-update/certificate-pinning.js.map +0 -1
  237. package/dist/esm/live-update/delta-processor.js.map +0 -1
  238. package/dist/esm/live-update/download-manager.js.map +0 -1
  239. package/dist/esm/live-update/rollout-checker.js.map +0 -1
  240. package/dist/esm/live-update/update-manager.js.map +0 -1
  241. package/dist/esm/live-update/version-manager.js.map +0 -1
  242. package/dist/esm/plugin.js.map +0 -1
  243. package/dist/esm/security/crypto.js.map +0 -1
  244. package/dist/esm/security/validator.js.map +0 -1
  245. package/dist/esm/web.js.map +0 -1
  246. package/dist/plugin.cjs.js.map +0 -1
  247. package/dist/plugin.esm.js.map +0 -1
  248. package/dist/plugin.js.map +0 -1
  249. package/docs/FIREBASE_INTEGRATION_TRACKER.md +0 -321
  250. package/docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md +0 -221
  251. package/docs/examples/firebase-backend-example.md +0 -27
  252. package/docs/features/laravel-nova-backend/credentials.ignore.md +0 -34
  253. package/docs/guides/no-cost-backend-implementation-plan.md +0 -77
  254. package/docs/guides/no-cost-firestore-google-drive-backend.md +0 -60
  255. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md +0 -454
  256. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-24.md +0 -66
  257. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-25.md +0 -67
  258. /package/docs/{MARKETING_WEBSITE_PLAN.md → archive/MARKETING_WEBSITE_PLAN.md} +0 -0
@@ -0,0 +1,355 @@
1
+ # Native Update — WhatsApp Status Batch 01
2
+
3
+ 30 ultra-short status messages. Each: **240–400 chars (~40–60 words)**. One heading, one CTA, 5 hashtags.
4
+
5
+ Mark consumed: `USED — Status NN — …`.
6
+
7
+ ---
8
+
9
+ ## Status 01 — 7-day fix → 60 seconds
10
+
11
+ A 1-line JS fix takes 7 days through App Store review. Native Update changes that to 60 seconds. MIT Capacitor plugin. Hash-verified. Atomic swap. Auto-rollback on crash.
12
+
13
+ `yarn add native-update`
14
+
15
+ 👉 https://nativeupdate.aoneahsan.com
16
+
17
+ #NativeUpdate #CapacitorPlugin #OTAUpdates #Aoneahsan #TopFree
18
+
19
+ ---
20
+
21
+ ## Status 02 — Whole ecosystem, one repo
22
+
23
+ Plugin + native Kotlin/Swift + Laravel/Nova backend + CLI + 3 example apps + dashboard. All MIT. All in one monorepo. No paywall. Self-host the backend.
24
+
25
+ 👉 https://nativeupdate.aoneahsan.com
26
+
27
+ #NativeUpdate #OpenSource #Capacitor #Aoneahsan #BestOpenSourceCommunityProject
28
+
29
+ ---
30
+
31
+ ## Status 03 — One CLI command
32
+
33
+ ```
34
+ nativeupdate release --channel production --rollout 10 --binary "2.4.x"
35
+ ```
36
+
37
+ Build, hash, upload, register, set rollout %, pin binary version. One command. Devices apply on next launch.
38
+
39
+ 👉 https://nativeupdate.aoneahsan.com
40
+
41
+ #NativeUpdate #DevOps #CLI #Aoneahsan #TopFree
42
+
43
+ ---
44
+
45
+ ## Status 04 — Stale-binary nudge
46
+
47
+ Users on v1.0 still asking why the v3.0 feature doesn't work? 10-line store-version check fixes it. Soft banner or hard gate. Backend rules, not hardcoded.
48
+
49
+ 👉 https://nativeupdate.aoneahsan.com
50
+
51
+ #NativeUpdate #AppStoreUpdates #MobileDev #Aoneahsan #SaaSApp
52
+
53
+ ---
54
+
55
+ ## Status 05 — 5-star review, the polite way
56
+
57
+ ```ts
58
+ if (await NativeUpdate.canRequestReview()) {
59
+ await NativeUpdate.requestReview();
60
+ }
61
+ ```
62
+
63
+ iOS + Android native prompt. OS-rate-limited. Inline. The prompt users already trust.
64
+
65
+ 👉 https://nativeupdate.aoneahsan.com
66
+
67
+ #NativeUpdate #InAppReview #MobileUX #Aoneahsan #SaaSApp
68
+
69
+ ---
70
+
71
+ ## Status 06 — MIT, no asterisks
72
+
73
+ Plugin: MIT. Backend: MIT. CLI: MIT. Examples: MIT.
74
+
75
+ Self-host, fork, embed in commercial apps. No "free for non-commercial." No "free for first 1,000 users." Forever yours.
76
+
77
+ 👉 https://nativeupdate.aoneahsan.com
78
+
79
+ #NativeUpdate #MIT #OpenSource #Aoneahsan #BestOpenSourceCommunityProject
80
+
81
+ ---
82
+
83
+ ## Status 07 — Honest framing
84
+
85
+ OTA replaces JS/HTML/CSS bundles. That's it. Doesn't replace native code, add Capacitor plugins, change manifests, add permissions, or bypass App Store policy.
86
+
87
+ Stay inside the boundary; OTA is great.
88
+
89
+ 👉 https://nativeupdate.aoneahsan.com
90
+
91
+ #NativeUpdate #HonestSoftware #MobileDev #Aoneahsan #TopFree
92
+
93
+ ---
94
+
95
+ ## Status 08 — Rollback as a feature
96
+
97
+ `nativeupdate rollback <release-id>` flips the channel back. Devices pull prior bundle on next launch.
98
+
99
+ Plus auto-rollback if a new bundle crashes on boot. Atomic swap keeps the prior bundle on disk.
100
+
101
+ 👉 https://nativeupdate.aoneahsan.com
102
+
103
+ #NativeUpdate #IncidentResponse #ReleaseManagement #Aoneahsan #TopFree
104
+
105
+ ---
106
+
107
+ ## Status 09 — Channels, plain English
108
+
109
+ A channel = the label that decides which release a device pulls. Most teams use 3: production, staging, canary. Pin devices, push releases, ramp gradually. That's the model.
110
+
111
+ 👉 https://nativeupdate.aoneahsan.com
112
+
113
+ #NativeUpdate #DevOps #ContinuousDelivery #Aoneahsan #TopFree
114
+
115
+ ---
116
+
117
+ ## Status 10 — 5-step integration
118
+
119
+ 1. `yarn add native-update && npx cap sync`
120
+ 2. Configure capacitor.config.ts
121
+ 3. `checkForUpdate()` on launch
122
+ 4. `nativeupdate release --channel staging --rollout 100`
123
+ 5. Restart app
124
+
125
+ You're on the new bundle.
126
+
127
+ 👉 https://nativeupdate.aoneahsan.com
128
+
129
+ #NativeUpdate #GettingStarted #CapacitorPlugin #Aoneahsan #TopFree
130
+
131
+ ---
132
+
133
+ ## Status 11 — SHA-256 verification
134
+
135
+ Every bundle hashed at upload. Plugin re-verifies on the device. MITM attacker on hostile Wi-Fi? Hash mismatch → rejected. Corrupted download? Rejected. Quiet correctness.
136
+
137
+ 👉 https://nativeupdate.aoneahsan.com
138
+
139
+ #NativeUpdate #Security #MobileDev #Aoneahsan #SaaSApp
140
+
141
+ ---
142
+
143
+ ## Status 12 — Three example apps
144
+
145
+ react-capacitor (canonical) + node-express (your-own-backend reference) + firebase-backend (Firebase wrapper). Each tests a different backend posture. Don't trust a plugin without example apps.
146
+
147
+ 👉 https://nativeupdate.aoneahsan.com
148
+
149
+ #NativeUpdate #Capacitor #OpenSource #Aoneahsan #BestOpenSourceCommunityProject
150
+
151
+ ---
152
+
153
+ ## Status 13 — Sentry combo
154
+
155
+ OTA + Sentry. New bundle throws on a subset → Sentry catches it within minutes (release ID tagged) → `nativeupdate rollback` → users pull prior bundle on next launch.
156
+
157
+ 3-hour P0 → 5-minute fix.
158
+
159
+ 👉 https://nativeupdate.aoneahsan.com
160
+
161
+ #NativeUpdate #Sentry #ErrorMonitoring #Aoneahsan #SaaSApp
162
+
163
+ ---
164
+
165
+ ## Status 14 — v3.0.0 shipped
166
+
167
+ Removed Firestore backend (-3,000 LOC). Single Laravel HTTP backend. Test matrix collapsed 40%. Docs halved.
168
+
169
+ Sometimes the best feature is the one you delete.
170
+
171
+ 👉 https://nativeupdate.aoneahsan.com
172
+
173
+ #NativeUpdate #BuildInPublic #BreakingChanges #Aoneahsan #BestOpenSourceCommunityProject
174
+
175
+ ---
176
+
177
+ ## Status 15 — Why bundle a backend
178
+
179
+ Most live-update plugins make you BYOB then sell you a paid one. Native Update ships a Laravel + Nova backend in the same MIT repo. Self-host. No license fee.
180
+
181
+ 👉 https://nativeupdate.aoneahsan.com
182
+
183
+ #NativeUpdate #Laravel #LaravelNova #Aoneahsan #SaaSApp
184
+
185
+ ---
186
+
187
+ ## Status 16 — Mandatory vs optional
188
+
189
+ Optional → applies on next natural restart. Default. Use 95% of the time.
190
+
191
+ Mandatory → blocks app entry. Reserve for security patches and emergencies. Users hate forced updates. Save the lever for fires.
192
+
193
+ 👉 https://nativeupdate.aoneahsan.com
194
+
195
+ #NativeUpdate #MobileUX #ReleaseManagement #Aoneahsan #TopFree
196
+
197
+ ---
198
+
199
+ ## Status 17 — A/B test without an A/B SDK
200
+
201
+ Two bundles, two channels, slice your devices. Measure via your existing analytics. The variants ARE the bundles. No extra SDK. No runtime cost. Promote the winner.
202
+
203
+ 👉 https://nativeupdate.aoneahsan.com
204
+
205
+ #NativeUpdate #ABTesting #ProductExperimentation #Aoneahsan #TopFree
206
+
207
+ ---
208
+
209
+ ## Status 18 — Three independent capabilities
210
+
211
+ OTA + store-version check + in-app review. Independent APIs. Adopt one, two, or all three. Lowest-risk first: in-app review. 5-line change. Zero backend.
212
+
213
+ 👉 https://nativeupdate.aoneahsan.com
214
+
215
+ #NativeUpdate #IncrementalAdoption #CapacitorPlugin #Aoneahsan #TopFree
216
+
217
+ ---
218
+
219
+ ## Status 19 — Real native code
220
+
221
+ Real Kotlin in `/android/`. Real Swift in `/ios/`. TypeScript bridge in `/src/`. 81 unit tests. Detox E2E on real devices. Not a JS shim pretending to be native.
222
+
223
+ 👉 https://nativeupdate.aoneahsan.com
224
+
225
+ #NativeUpdate #Kotlin #Swift #Aoneahsan #BestOpenSourceCommunityProject
226
+
227
+ ---
228
+
229
+ ## Status 20 — Telemetry: who's on what
230
+
231
+ Each device reports back: release, applied state, last-seen, platform. Nova admin shows the distribution. Spot stuck devices, failure spikes, rollouts ramping in real time.
232
+
233
+ 👉 https://nativeupdate.aoneahsan.com
234
+
235
+ #NativeUpdate #Observability #Telemetry #Aoneahsan #SaaSApp
236
+
237
+ ---
238
+
239
+ ## Status 21 — Capacitor + Native Update
240
+
241
+ Web stack you know (React/Vue/Svelte/Angular) + Capacitor for native bridging + Native Update for OTA = a deploy loop closer to a web app than a native app.
242
+
243
+ The hybrid stack just got faster.
244
+
245
+ 👉 https://nativeupdate.aoneahsan.com
246
+
247
+ #NativeUpdate #Capacitor #HybridApps #Aoneahsan #TopFree
248
+
249
+ ---
250
+
251
+ ## Status 22 — Eats its own dog food
252
+
253
+ Native Update is consumed by other projects in the author's portfolio. Abandoning it would break the author's own apps. Strong continuity signal. Pick plugins the author themselves uses.
254
+
255
+ 👉 https://nativeupdate.aoneahsan.com
256
+
257
+ #NativeUpdate #DogFooding #OpenSource #Aoneahsan #BestOpenSourceCommunityProject
258
+
259
+ ---
260
+
261
+ ## Status 23 — The release ritual
262
+
263
+ Build → staging 100% → QA 24h → prod 5% → watch 1h → 50% → 100%. 26 hours from "ready" to "everyone's on it." Sounds slow. Beats weekly fire drills.
264
+
265
+ 👉 https://nativeupdate.aoneahsan.com
266
+
267
+ #NativeUpdate #ReleaseManagement #DevOps #Aoneahsan #TopFree
268
+
269
+ ---
270
+
271
+ ## Status 24 — The v3.0.0 lesson
272
+
273
+ If you maintain "two right ways" inside one library and one wins on every axis (tests, docs, ops, integrator velocity), the other isn't a feature — it's a tax. We deleted the tax.
274
+
275
+ 👉 https://nativeupdate.aoneahsan.com
276
+
277
+ #NativeUpdate #SoftwareArchitecture #LessonsLearned #Aoneahsan #BestOpenSourceCommunityProject
278
+
279
+ ---
280
+
281
+ ## Status 25 — Cold-launch check, fewer tickets
282
+
283
+ Store-version check on cold launch + soft nudge with changelog: "We fixed the sign-in bug you hit yesterday." Converts 5x better than "An update is available." Cuts tickets in a week.
284
+
285
+ 👉 https://nativeupdate.aoneahsan.com
286
+
287
+ #NativeUpdate #SupportReduction #MobileDev #Aoneahsan #TopFree
288
+
289
+ ---
290
+
291
+ ## Status 26 — Cost reality
292
+
293
+ Plugin/CLI/examples: free, MIT. Backend: free, MIT, self-host. VPS: ~$5–10/month. Bandwidth scales with DAU × bundle size — use a CDN.
294
+
295
+ No per-user fees. No per-release fees.
296
+
297
+ 👉 https://nativeupdate.aoneahsan.com
298
+
299
+ #NativeUpdate #FreeTier #OpenSource #Aoneahsan #TopFree
300
+
301
+ ---
302
+
303
+ ## Status 27 — When to ask for a review
304
+
305
+ Don't: on first open / after errors / during checkout.
306
+
307
+ Do: after a successful repeated user action / after 3+ sessions / never twice in one session.
308
+
309
+ `requestReview()` honors OS rate limits anyway.
310
+
311
+ 👉 https://nativeupdate.aoneahsan.com
312
+
313
+ #NativeUpdate #InAppReview #UXTips #Aoneahsan #SaaSApp
314
+
315
+ ---
316
+
317
+ ## Status 28 — Atomic swap, not "hope it works"
318
+
319
+ New bundle either fully verified, fully written, fully ready → atomic swap on next start. Or something fails → prior bundle on disk gets reverted to. No half-applied state. Ever.
320
+
321
+ 👉 https://nativeupdate.aoneahsan.com
322
+
323
+ #NativeUpdate #ReliabilityEngineering #MobileDev #Aoneahsan #TopFree
324
+
325
+ ---
326
+
327
+ ## Status 29 — Honest comparison
328
+
329
+ CodePush + RN: mature, Microsoft, RN-only. Native Update + Capacitor: MIT, multi-framework, self-hosted backend.
330
+
331
+ Both valid. Pick by stack, not hype. On Capacitor? This is the OTA story.
332
+
333
+ 👉 https://nativeupdate.aoneahsan.com
334
+
335
+ #NativeUpdate #Capacitor #ReactNative #Aoneahsan #TopFree
336
+
337
+ ---
338
+
339
+ ## Status 30 — Closing share
340
+
341
+ If you ship Capacitor apps and you've waited a week for App Store review on a 1-line fix:
342
+
343
+ `yarn add native-update`
344
+
345
+ MIT. Self-hosted backend included. Native Kotlin + Swift. 5-minute integration.
346
+
347
+ 👉 https://nativeupdate.aoneahsan.com
348
+
349
+ #NativeUpdate #CapacitorPlugin #OpenSource #Aoneahsan #TopFree
350
+
351
+ ---
352
+
353
+ ## End of WhatsApp Status Batch 01
354
+
355
+ 30 statuses, each 240–400 chars. Mark `USED —` once shared.