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.
- package/Readme.md +28 -14
- package/android/manifest-additions.xml +28 -0
- package/android/src/main/AndroidManifest.xml +3 -7
- package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundNotificationManager.kt +21 -13
- package/android/src/main/java/com/aoneahsan/nativeupdate/LiveUpdatePlugin.kt +196 -29
- package/android/src/main/java/com/aoneahsan/nativeupdate/NativeUpdatePlugin.kt +21 -36
- package/cli/AGENTS.md +15 -1
- package/cli/CLAUDE.md +15 -1
- package/cli/commands/backend-create.js +56 -15
- package/cli/commands/bundle-create.js +39 -7
- package/cli/commands/monitor.js +72 -51
- package/cli/index.js +10 -24
- package/cli/package.json +11 -3
- package/dist/esm/app-review/app-review-manager.js +0 -1
- package/dist/esm/app-review/index.js +0 -1
- package/dist/esm/app-review/platform-review-handler.js +0 -1
- package/dist/esm/app-review/review-conditions-checker.js +0 -1
- package/dist/esm/app-review/review-rate-limiter.js +0 -1
- package/dist/esm/app-review/types.js +0 -1
- package/dist/esm/app-update/app-update-checker.js +0 -1
- package/dist/esm/app-update/app-update-installer.d.ts +1 -0
- package/dist/esm/app-update/app-update-installer.js +19 -8
- package/dist/esm/app-update/app-update-manager.js +0 -1
- package/dist/esm/app-update/app-update-notifier.js +0 -1
- package/dist/esm/app-update/index.js +0 -1
- package/dist/esm/app-update/platform-app-update.js +12 -3
- package/dist/esm/app-update/types.js +0 -1
- package/dist/esm/background-update/background-scheduler.js +0 -1
- package/dist/esm/background-update/index.js +0 -1
- package/dist/esm/background-update/notification-manager.js +0 -1
- package/dist/esm/config/support.js +0 -1
- package/dist/esm/core/analytics.d.ts +13 -0
- package/dist/esm/core/analytics.js +15 -1
- package/dist/esm/core/cache-manager.js +0 -1
- package/dist/esm/core/config.d.ts +0 -15
- package/dist/esm/core/config.js +0 -4
- package/dist/esm/core/errors.d.ts +1 -0
- package/dist/esm/core/errors.js +1 -1
- package/dist/esm/core/event-emitter.d.ts +0 -3
- package/dist/esm/core/event-emitter.js +8 -3
- package/dist/esm/core/logger.js +0 -1
- package/dist/esm/core/performance.js +0 -1
- package/dist/esm/core/plugin-manager.js +3 -1
- package/dist/esm/core/security.d.ts +11 -0
- package/dist/esm/core/security.js +27 -1
- package/dist/esm/definitions.d.ts +0 -11
- package/dist/esm/definitions.js +0 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -1
- package/dist/esm/live-update/bundle-manager.d.ts +8 -0
- package/dist/esm/live-update/bundle-manager.js +20 -1
- package/dist/esm/live-update/certificate-pinning.js +0 -1
- package/dist/esm/live-update/delta-processor.d.ts +1 -1
- package/dist/esm/live-update/delta-processor.js +3 -1
- package/dist/esm/live-update/download-manager.js +9 -2
- package/dist/esm/live-update/rollout-checker.d.ts +1 -1
- package/dist/esm/live-update/rollout-checker.js +5 -6
- package/dist/esm/live-update/update-manager.js +0 -1
- package/dist/esm/live-update/version-manager.d.ts +0 -12
- package/dist/esm/live-update/version-manager.js +0 -68
- package/dist/esm/plugin.js +69 -43
- package/dist/esm/security/crypto.js +11 -7
- package/dist/esm/security/validator.js +0 -1
- package/dist/esm/types/rollout.d.ts +85 -0
- package/dist/esm/types/rollout.js +25 -0
- package/dist/esm/web.d.ts +8 -0
- package/dist/esm/web.js +148 -54
- package/dist/plugin.cjs.js +1 -2
- package/dist/plugin.esm.js +1 -2
- package/dist/plugin.js +2 -3
- package/docs/CHANGELOG.md +124 -0
- package/docs/CLAUDE.md +1 -1
- package/docs/MANUAL-TASKS.md +17 -0
- package/docs/MARKETING_WEBSITE_TRACKER.md +18 -2
- package/docs/MIGRATION.md +83 -0
- package/docs/PACKAGES.md +167 -0
- package/docs/PERFORMANCE.md +110 -0
- package/docs/PROJECT_COMPLETION_TRACKER.md +4 -35
- package/docs/README.md +0 -1
- package/docs/REMAINING_FEATURES.md +123 -76
- package/docs/ROADMAP.md +200 -120
- package/docs/SECURITY-IF-REPO-PUBLIC.md +232 -0
- package/docs/TESTING_REQUIREMENTS.md +1 -112
- package/docs/ai-knowledge-base/00-project-profile.md +38 -0
- package/docs/ai-knowledge-base/01-features.md +46 -0
- package/docs/ai-knowledge-base/02-routes.md +72 -0
- package/docs/ai-knowledge-base/03-tech-stack.md +57 -0
- package/docs/ai-knowledge-base/README.md +23 -0
- package/docs/analytics-tracking.md +37 -0
- package/docs/capacitor-official-plugins.md +46 -0
- package/docs/capawesome-plugins.md +29 -0
- package/docs/deployment/HOSTINGER_DEPLOY.md +75 -34
- package/docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md +184 -0
- package/docs/docs-site/plan.md +201 -0
- package/docs/docs-site/scope.md +127 -0
- package/docs/docs-site/tracker.json +235 -0
- package/docs/error-handling-tracking.md +37 -0
- package/docs/guides/testing-guide.md +15 -41
- package/docs/package-audit.md +41 -0
- package/docs/play-store/ASO-METADATA.md +5 -0
- package/docs/play-store/DATA-SAFETY.md +5 -0
- package/docs/play-store/DECLARATIONS.md +5 -0
- package/docs/play-store/README.md +27 -0
- package/docs/play-store/RELEASE-NOTES.md +99 -0
- package/docs/play-store/RELEASE-STEPS.md +6 -0
- package/docs/play-store/STORE-LISTING.md +7 -0
- package/docs/play-store/SUBMISSION-CHECKLIST.md +5 -0
- package/docs/production-readiness.md +1 -1
- package/docs/project-audit/2026-05-16/00-FINALIZATION-PLAN.md +123 -0
- package/docs/project-audit/2026-05-16/01-BATCH-PLAN.md +227 -0
- package/docs/project-audit/2026-05-16/02-AUDIT-FINDINGS.md +144 -0
- package/docs/project-audit/2026-05-16/sessions/batch-01.md +42 -0
- package/docs/project-audit/2026-05-16/sessions/batch-02.md +74 -0
- package/docs/project-audit/2026-05-16/sessions/batch-03.md +71 -0
- package/docs/project-audit/2026-05-16/sessions/batch-04.md +88 -0
- package/docs/project-audit/2026-05-16/sessions/batch-05.md +63 -0
- package/docs/project-audit/2026-05-16/sessions/batch-06.md +103 -0
- package/docs/project-audit/2026-05-16/sessions/batch-07.md +61 -0
- package/docs/project-audit/2026-05-16/sessions/batch-08.md +101 -0
- package/docs/project-audit/2026-05-16/sessions/batch-09.md +105 -0
- package/docs/project-audit/2026-05-16/sessions/batch-10.md +102 -0
- package/docs/project-audit/AUDIT-HISTORY.md +74 -0
- package/docs/project-audit/BATCH-PLAN.md +168 -0
- package/docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md +73 -0
- package/docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md +275 -0
- package/docs/project-finalization/00-tracker.json +60 -0
- package/docs/project-knowledge-base/01-system-overview.md +39 -30
- package/docs/project-knowledge-base/02-routes-pages-forms-users.md +87 -81
- package/docs/project-knowledge-base/03-tech-stack-modules-services.md +140 -108
- package/docs/project-knowledge-base/04-data-models-integrations.md +191 -254
- package/docs/project-knowledge-base/05-docs-corpus-inventory.md +83 -20
- package/docs/project-knowledge-base/06-operations-testing-legal-content.md +67 -29
- package/docs/project-knowledge-base/README.md +27 -14
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md +81 -0
- package/docs/rules-tracker.md +102 -0
- package/docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md +116 -0
- package/docs/social-media-marketing/README.md +81 -0
- package/docs/social-media-marketing/posts-batch-01.md +613 -0
- package/docs/social-media-marketing/posts-batch-02.md +528 -0
- package/docs/social-media-marketing/whatsapp-messages-batch-01.md +458 -0
- package/docs/social-media-marketing/whatsapp-status-batch-01.md +355 -0
- package/docs/tracking/finalization-2026-05-16-tracker.json +346 -0
- package/docs/tracking/full-audit-tracker.json +121 -0
- package/docs/tracking/production-readiness-audit-tracker.json +429 -0
- package/ios/Plugin/BackgroundUpdate/BackgroundUpdatePlugin.swift +16 -3
- package/ios/Plugin/LiveUpdate/LiveUpdatePlugin.swift +71 -47
- package/ios/Plugin/NativeUpdatePlugin.swift +14 -9
- package/package.json +29 -29
- package/cli/node_modules/.yarn-integrity +0 -16
- package/cli/node_modules/commander/LICENSE +0 -22
- package/cli/node_modules/commander/Readme.md +0 -1148
- package/cli/node_modules/commander/esm.mjs +0 -16
- package/cli/node_modules/commander/index.js +0 -26
- package/cli/node_modules/commander/lib/argument.js +0 -145
- package/cli/node_modules/commander/lib/command.js +0 -2179
- package/cli/node_modules/commander/lib/error.js +0 -43
- package/cli/node_modules/commander/lib/help.js +0 -462
- package/cli/node_modules/commander/lib/option.js +0 -329
- package/cli/node_modules/commander/lib/suggestSimilar.js +0 -100
- package/cli/node_modules/commander/package-support.json +0 -16
- package/cli/node_modules/commander/package.json +0 -80
- package/cli/node_modules/commander/typings/esm.d.mts +0 -3
- package/cli/node_modules/commander/typings/index.d.ts +0 -884
- package/cli/yarn.lock +0 -8
- package/dist/esm/__tests__/bundle-manager.test.d.ts +0 -1
- package/dist/esm/__tests__/bundle-manager.test.js +0 -151
- package/dist/esm/__tests__/bundle-manager.test.js.map +0 -1
- package/dist/esm/__tests__/config.test.d.ts +0 -1
- package/dist/esm/__tests__/config.test.js +0 -70
- package/dist/esm/__tests__/config.test.js.map +0 -1
- package/dist/esm/__tests__/delta-processor.test.d.ts +0 -1
- package/dist/esm/__tests__/delta-processor.test.js +0 -77
- package/dist/esm/__tests__/delta-processor.test.js.map +0 -1
- package/dist/esm/__tests__/firestore-schema.test.d.ts +0 -1
- package/dist/esm/__tests__/firestore-schema.test.js +0 -74
- package/dist/esm/__tests__/firestore-schema.test.js.map +0 -1
- package/dist/esm/__tests__/integration.test.d.ts +0 -1
- package/dist/esm/__tests__/integration.test.js +0 -78
- package/dist/esm/__tests__/integration.test.js.map +0 -1
- package/dist/esm/__tests__/manifest-reader.test.d.ts +0 -1
- package/dist/esm/__tests__/manifest-reader.test.js +0 -271
- package/dist/esm/__tests__/manifest-reader.test.js.map +0 -1
- package/dist/esm/__tests__/rollout-checker.test.d.ts +0 -1
- package/dist/esm/__tests__/rollout-checker.test.js +0 -210
- package/dist/esm/__tests__/rollout-checker.test.js.map +0 -1
- package/dist/esm/__tests__/security-enforcement.test.d.ts +0 -1
- package/dist/esm/__tests__/security-enforcement.test.js +0 -95
- package/dist/esm/__tests__/security-enforcement.test.js.map +0 -1
- package/dist/esm/__tests__/security.test.d.ts +0 -1
- package/dist/esm/__tests__/security.test.js +0 -54
- package/dist/esm/__tests__/security.test.js.map +0 -1
- package/dist/esm/__tests__/version-manager.test.d.ts +0 -1
- package/dist/esm/__tests__/version-manager.test.js +0 -45
- package/dist/esm/__tests__/version-manager.test.js.map +0 -1
- package/dist/esm/app-review/app-review-manager.js.map +0 -1
- package/dist/esm/app-review/index.js.map +0 -1
- package/dist/esm/app-review/platform-review-handler.js.map +0 -1
- package/dist/esm/app-review/review-conditions-checker.js.map +0 -1
- package/dist/esm/app-review/review-rate-limiter.js.map +0 -1
- package/dist/esm/app-review/types.js.map +0 -1
- package/dist/esm/app-update/app-update-checker.js.map +0 -1
- package/dist/esm/app-update/app-update-installer.js.map +0 -1
- package/dist/esm/app-update/app-update-manager.js.map +0 -1
- package/dist/esm/app-update/app-update-notifier.js.map +0 -1
- package/dist/esm/app-update/index.js.map +0 -1
- package/dist/esm/app-update/platform-app-update.js.map +0 -1
- package/dist/esm/app-update/types.js.map +0 -1
- package/dist/esm/background-update/background-scheduler.js.map +0 -1
- package/dist/esm/background-update/index.js.map +0 -1
- package/dist/esm/background-update/notification-manager.js.map +0 -1
- package/dist/esm/config/support.js.map +0 -1
- package/dist/esm/core/analytics.js.map +0 -1
- package/dist/esm/core/cache-manager.js.map +0 -1
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/errors.js.map +0 -1
- package/dist/esm/core/event-emitter.js.map +0 -1
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/core/performance.js.map +0 -1
- package/dist/esm/core/plugin-manager.js.map +0 -1
- package/dist/esm/core/security.js.map +0 -1
- package/dist/esm/definitions.js.map +0 -1
- package/dist/esm/firestore/firestore-client.d.ts +0 -109
- package/dist/esm/firestore/firestore-client.js +0 -264
- package/dist/esm/firestore/firestore-client.js.map +0 -1
- package/dist/esm/firestore/index.d.ts +0 -11
- package/dist/esm/firestore/index.js +0 -11
- package/dist/esm/firestore/index.js.map +0 -1
- package/dist/esm/firestore/manifest-reader.d.ts +0 -87
- package/dist/esm/firestore/manifest-reader.js +0 -294
- package/dist/esm/firestore/manifest-reader.js.map +0 -1
- package/dist/esm/firestore/schema.d.ts +0 -507
- package/dist/esm/firestore/schema.js +0 -73
- package/dist/esm/firestore/schema.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/live-update/bundle-manager.js.map +0 -1
- package/dist/esm/live-update/certificate-pinning.js.map +0 -1
- package/dist/esm/live-update/delta-processor.js.map +0 -1
- package/dist/esm/live-update/download-manager.js.map +0 -1
- package/dist/esm/live-update/rollout-checker.js.map +0 -1
- package/dist/esm/live-update/update-manager.js.map +0 -1
- package/dist/esm/live-update/version-manager.js.map +0 -1
- package/dist/esm/plugin.js.map +0 -1
- package/dist/esm/security/crypto.js.map +0 -1
- package/dist/esm/security/validator.js.map +0 -1
- package/dist/esm/web.js.map +0 -1
- package/dist/plugin.cjs.js.map +0 -1
- package/dist/plugin.esm.js.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/docs/FIREBASE_INTEGRATION_TRACKER.md +0 -321
- package/docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md +0 -221
- package/docs/examples/firebase-backend-example.md +0 -27
- package/docs/features/laravel-nova-backend/credentials.ignore.md +0 -34
- package/docs/guides/no-cost-backend-implementation-plan.md +0 -77
- package/docs/guides/no-cost-firestore-google-drive-backend.md +0 -60
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md +0 -454
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-24.md +0 -66
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-25.md +0 -67
- /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.
|